手动下载

时间:2015-09-11 20:44:44

标签: r curl grib

我正在处理来自Environment Canada

的数据

我正在使用download.file()来获取此数据。当我使用时:

download.file(url="http://dd.weather.gc.ca/model_gem_global/25km/grib2/lat_lon/00/000/CMC_glb_VGRD_ISBL_1000_latlon.24x.24_2015091100_P000.grib2",destfile = "Local_Grib.grib2")
GribInfo(grib.file = "Local_File.grib2",file.type = "grib2")

它产生:

$inventory
[1] ""                                                                "*** FATAL ERROR: rd_grib2_msg, missing end section ('7777') ***"
[3] ""                                                               
attr(,"status")
[1] 8

$grid
[1] ""                                                                "*** FATAL ERROR: rd_grib2_msg, missing end section ('7777') ***"
[3] ""                                                               
attr(,"status")
[1] 8

Warning messages:
1: running command 'wgrib2 Local_File.grib2 -inv -' had status 8 
2: running command 'wgrib2 Local_File.grib2 -grid' had status 8 

虽然手动下载后跟着:

GribInfo(grib.file = "CMC_glb_TMP_ISBL_985_latlon.24x.24_2015091100_P000.grib2",file.type = "grib2")

收率:

$inventory
[1] "1:0:d=2015091100:TMP:985 mb:anl:"

$grid
[1] "1:0:grid_template=0:winds(N/S):"                                        "\tlat-lon grid:(1500 x 751) units 1e-06 input WE:SN output WE:SN res 48"
[3] "\tlat -90.000000 to 90.000000 by 0.240000"                               "\tlon 180.000000 to 179.760000 by 0.240000 #points=1126500"    

我尝试在download.file()中使用Curl和Wget方法但是它们无法提供非退出错误。我可以使用wget批处理文件获取这些文件,但是,我希望我的整个系统在R中运行,以保持一致性和易用性。

1 个答案:

答案 0 :(得分:0)

根据@Martin Morgan。下载为二进制文件将绕过此问题。再次感谢马丁。

download.file(url="http://dd.weather.gc.ca/model_gem_global/25km/grib2/lat_lon/00/000/CMC_glb_VGRD_ISBL_1000_latlon.24x.24_2015091100_P000.grib2",destfile = "Local_Grib.grib2", mode="wb")
GribInfo(grib.file = "Local_File.grib2",file.type = "grib2")