Download.file() 与手动下载不一致

Download.file() incongruent with Manual Download

我正在处理以下数据: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 中 运行。

根据@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")