R在打开netcdf文件时崩溃

Posted

技术标签:

【中文标题】R在打开netcdf文件时崩溃【英文标题】:R crashes while opening netcdf file 【发布时间】:2019-01-25 10:48:02 【问题描述】:

我下载了一个 netcdf 文件并尝试在 R 中打开它。这是我的代码

download.file("https://data.giss.nasa.gov/impacts/agmipcf/agmerra/AgMERRA_1980_prate.nc4",destfile = "AgMERRA_1980_prate.nc4", method="libcurl")

我想用 R 打开 netcdf 文件

library(ncdf4)
my.file <- nc_open("AgMERRA_1980_prate.nc4")

但是,每次我这样做时,R 都会崩溃。

我的代码有问题还是 R studio 有问题?

会话信息() R 版本 3.5.0 (2018-04-23) 平台:x86_64-w64-mingw32/x64(64位) 运行于:Windows 7 x64 (build 7601) Service Pack 1

矩阵产品:默认

编辑

如果我手动下载文件,我可以打开它。所以我下载它的方式一定有问题。有什么建议吗?

【问题讨论】:

【参考方案1】:

我怀疑这个问题与Downloading NetCDF files with R: Manually works, download.file produces error 重复。 @Luis 关于使用 mode = "wb" 而不是默认的 mode = "w" 的建议成功地避免了 R 4.0.2、RStudio 1.3.959 和 ncdf 1.17 对我造成的 nc_open() 崩溃。 wb 告诉 download.file() 将文件视为二进制文件,与 netCDF 格式一致。

对于这里感兴趣的数据,应该是

download.file("https://data.giss.nasa.gov/impacts/agmipcf/agmerra/AgMERRA_1980_prate.nc4", destfile = "AgMERRA_1980_prate.nc4", method = "libcurl", mode = "wb")

【讨论】:

非常有用!使用model = "wb",它适用于 Windows 上的任何方法。【参考方案2】:

我不确定这里发生了什么,可能是特定于 Windows 的。我尝试在没有参数method="libcurl" 的情况下下载,它似乎可以工作。

download.file("https://data.giss.nasa.gov/impacts/agmipcf/agmerra/AgMERRA_1980_prate.nc4",
destfile = "AgMERRA_1980_prate.nc4")



library(ncdf4)
my.file <- nc_open("AgMERRA_1980_prate.nc4")


File AgMERRA_1980_prate.nc4 (NC_FORMAT_NETCDF4):

     1 variables (excluding dimension variables):
        short prate[longitude,latitude,time]   (Chunking: [1440,720,1])  (Compression: level 9)
            _FillValue: 32767
            description: Precipitation Rate
            units: mm/day
            add_offset: 0
            scale_factor: 0.100000001490116
            vMin_original_data: 0
            vMax_original_data: 457.399993896484
            vRange: 457.399993896484

     3 dimensions:
        time  Size:366   *** is unlimited ***
            units: days since 1980 01-01-01 12:00:00
        latitude  Size:720
            units: degrees_north
        longitude  Size:1440
            units: degrees_east

    4 global attributes:
        history: Tue Aug 12 16:42:13 EDT 2014
        source: AgMIP / Alex Ruane
        title: AgMERRA v1.1 Precipitation Rate
        center: NASA GISS

我的会话信息 -

R version 3.5.0 (2018-04-23)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6

【讨论】:

以上是关于R在打开netcdf文件时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何从 R 中的 netCDF 文件中提取变量名?

如何r语言生成netcdf格式文件

绘制 NetCDF 的部分并覆盖形状文件-R

使用 R 扩展 netCDF 文件中的尺寸

在 R 中创建多维 NetCDF

[Errno -101] NetCDF:打开 netcdf 文件时出现 HDF 错误