我正在尝试在项目中使用此文件(MOD13.A2010.unaccum.nc4)中的数据。我已经安装并加载了 ncdf4、raster、ggplot2 和 viridis 库。我使用以下方法成功打开文件:
mcd_file <- nc_open("C:\\Program Files\\RStudio\\R\\MCD13.A2010.unaccum.nc4")
并且可以通过突出显示 mcd_file 并单击 RUN 按钮并使用以下命令访问 mcd_file 的属性:
vars <- names(my_file$var)
print(vars)
这表明 mcd_file 有 5 个变量,time_bnds 是第二个变量,数据集 NDVI 作为第三个变量。
我可以使用以下方法访问有关 time_bns 变量的正确信息:
time.layers < ncvar_get(mcd_file, "time_bnds")
但是当我尝试这个时:
NDVI <- ncvar_get(mcd_file, "NDVI")
我收到一条错误消息,内容如下:
错误:无法分配大小为 49.5 Gb 的向量
我查看了错误消息的含义,这意味着我没有足够的 RAM 来保存 NDVI 中的所有信息,但是我不知道有谁拥有超过 49.5 Gb 的 RAM。然而,人们确实使用 R 分析此文件,因此 NDVI 中的信息应该可以使用 R 以某种方式访问。
我知道光栅库中的光栅对象可用于访问太大而无法放入 RAM 的文件中的数据。但是我不知道如何从原始文件中提取 NDVI 中的信息,因此我可以将其写入文件而无需原始文件中的其他信息,这样我就可以使用光栅对象来访问它。这个:
write.csv(my_file$NDVI, file = "NDVI.csv")
创建一个名为 NDVI 的文件,但它是空的。
这个:
write.csv(as.raster(ncvar_get(my_file, "NDVI")),file = "NDVI2010.csv")
生成此错误消息:
错误:无法分配大小为 49.5 Gb 的向量
谁能帮我吗?