【发布时间】:2022-10-06 10:27:45
【问题描述】:
我在尝试从 R 中的 links 读取加 2Gb NetCDF 文件时遇到问题
如果我尝试读取整个文件 R 返回我没有足够内存的消息,
\'Error: cannot allocate vector of size 31.3 Gb\'
正如帖子link所报道的那样
根据这篇文章的建议,我决定根据给定区域的地理坐标仅读取文件的一部分。这是我的代码:
#load any packages
library(ncdf4)
设置路径和文件名
ncpath <- \"C:\\Users\\Me\\Documents\\Science\\GIS\\Global Land Cover\\\"
ncname <- \"C3S-LC-L4-LCCS-Map-300m-P1Y-2018-v2.1.1\"
ncfname <- paste(ncpath, ncname, \".nc\", sep=\"\")
dname <-\"lccs_class\"
打开一个 netCDF 文件
ncin <- nc_open(ncfname)
print(ncin)
获取经度和纬度
lon <- ncvar_get(ncin,\"lon\")
nlon <- dim(lon)
head(lon)
lat <- ncvar_get(ncin,\"lat\")
nlat <- dim(lat) head(lat)
print(c(nlon,nlat))
#\' create a bounding box to work with a subset
LonIdx <- c(841, 842, 844,845,846,847,848)
LatIdx <- c(93,94,95,96)
但是,当我尝试执行子集的代码时:
Susbset <- ncvar_get(ncin, dname,
start = c(LatIdx[1], LonIdx[1]),
count = c(length(LatIdx),length(LonIdx)))
我得到错误:
> Error in ncvar_get_inner(ncid2use, varid2use, nc$var[[li]]$missval,
> addOffset, : Error: variable has 3 dims, but start has 2 entries. They
> must match!
谁能帮我?非常感激。