使用 R 下载 NetCDF 文件:手动工作,但下载的文件较小

Downloading NetCDF files with R: Manually works but the downloaded file is smaller

提问人:gianca 提问时间:11/8/2023 更新时间:11/8/2023 访问量:40

问:

我正在尝试从以下位置下载 NetCDF 文件: https://ftp.cpc.ncep.noaa.gov/NMME/prob/netcdf/

当我手动下载文件时,我得到了一个大约 5000 KB 的文件,当它使用下面的代码下载时,我得到了一个 119 Kb 的文件,它不可用。

now <- as.Date(Sys.Date())
now <- paste0(substr(now,1,4),substr(now,6,7))
filename <- paste0('prate.',now,'.prob.adj.seas',".nc")
root <- 'https://ftp.cpc.ncep.noaa.gov/NMME/prob/netcdf/'
download.file(root, filename,mode = "wb")

有什么建议吗?谢谢

r 下载 netcdf

评论


答:

1赞 Friede 11/8/2023 #1

您错误地使用了 的参数。尝试download.file()

## your code
now <- as.Date(Sys.Date())
now <- paste0(substr(now,1,4),substr(now,6,7))
filename <- paste0('prate.',now,'.prob.adj.seas',".nc")
root <- 'https://ftp.cpc.ncep.noaa.gov/NMME/prob/netcdf/' # main_url

## changes
path <- getwd() # example of donwload directory
download.file(url = paste0(root, filename), 
              destfile = file.path(path, basename(filename)))

?download.file

  1. 的第一个参数是 ,即 。download.file()url"https://ftp.cpc.ncep.noaa.gov/NMME/prob/netcdf/prate.202311.prob.adj.seas.nc"
  2. 然后指定 ,即本地路径,下载目录和文件名的组合。在 Mac OS X 上,它看起来像 .destfile"/Users/YourUsername/Desktop/prate.202311.prob.adj.seas.nc"
download.file(url = paste0(root, filename), 
              destfile = file.path(path, basename(filename)))

等于

download.file(
  url = "https://ftp.cpc.ncep.noaa.gov/NMME/prob/netcdf/prate.202311.prob.adj.seas.nc",
  destfile = "/Users/YourUsername/Desktop/prate.202311.prob.adj.seas.nc")

我认为没有必要。还没检查过。mode = "wb"

评论

1赞 margusl 11/8/2023
省略的效果仅在 Windows 中可见,其中以文本模式存储文件(默认)会损坏二进制文件。mode = "wb"