tl;博士
首先,重现问题的所有必要代码都在下面可用。我在grib部分遇到了一些挑战,但在 download.file() 中也遇到了更基本的问题
问题
这里有一篇关于在 R 中使用 GFS 天气数据的好文章。这将是进一步分析的一个很好的起点,但我有几个问题。这篇文章包含重现它所需的所有 R 代码,但这里是前几行,这也是让事情顺利进行的最重要部分:
#STEP 1 (doesn't work either way because of bad link)
loc=file.path("ftp://ftp.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.2009121700/gfs.t00z.sfluxgrbf03.grib2")
我的第一个问题是链接不起作用,但这是来自同一来源的相同格式文件的 url,所以这应该有效:
#PART 1 with working link (at least in google chrome):
loc=file.path("ftp://ftp.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.2015081112/gfs.t12z.sfluxgrbf00.grib2")
download.file(loc,"temp.grb",mode="wb")
#PART 2
shell("wgrib2 -s temp03.grb | grep :LAND: | wgrib2 -i temp00.grb -netcdf LAND.nc",intern=T)
#PART3
library(ncdf)
landFrac <-open.ncdf("LAND.nc")
land <- get.var.ncdf(landFrac,"LAND_surface")
x <- get.var.ncdf(landFrac,"longitude")
y <- get.var.ncdf(landFrac,"latitude")
#PART4
rgb.palette <- colorRampPalette(c("snow1","snow2","snow3","seagreen","orange","firebrick"), space = "rgb")#colors
image.plot(x,y,t2m.mean,col=rgb.palette(200),axes=F,main=as.expression(paste("GFS 24hr Average 2M Temperature",day,"00 UTC",sep="")),axes=F,legend.lab="o C")
contour(x,y,land,add=TRUE,lwd=1,levels=0.99,drawlabels=FALSE,col="grey30")
我的系统
Windows 7、64 位 Rstudio 0.99.467
问题 1 - download.file()
我在使用 download.file() 时遇到问题,即使是在 Chrome 中运行良好的链接(或 ftp 路径)也是如此。这是错误消息的一部分:
在 download.file(url = loc, destfile = "temp.grb", mode = "wb") :
InternetOpenUrl 失败:
有谁知道这是什么原因?
问题:2 - wgrib2
我已经手动下载了一个示例文件以使事情顺利进行,但在第 2 部分中再次卡住了。下面的 r 命令在命令窗口中看起来如何?
shell("wgrib2 -s temp03.grb | grep :LAND: | wgrib2 -i temp00.grb -netcdf LAND.nc",intern=T)
我已经在下面的链接下安装了必要的 dll,并且我还启动并运行了 wgrib 2(显然)。文章中提供了有关 wgrib2 的信息,可在此处获得。Windows 7的源代码。
我希望你们中的一些人觉得这很有趣!