我正在尝试从一个 .csv 文件创建一个 NetCDF 文件。我已经阅读了这里和其他地方的几个教程,并且仍然有一些疑问。
我有一个表格如下:
lat,long,time,rh,temp
41,-109,6,1,1
40,-107,18,2,2
39,-105,6,3,3
41,-103,18,4,4
40,-109,6,5,2
39,-107,18,6,4
我使用R中的ncdf4包创建NetCDF文件。
xvals <- data$lon
yvals <- data$lat
nx <- length(xvals)
ny <- length(yvals)
lon1 <- ncdim_def("longitude", "degrees_east", xvals)
lat2 <- ncdim_def("latitude", "degrees_north", yvals)
time <- data$time
mv <- -999 #missing value to use
var_temp <- ncvar_def("temperatura", "celsius", list(lon1, lat2, time), longname="Temp. da superfície", mv)
var_rh <- ncvar_def("humidade", "%", list(lon1, lat2, time), longname = "humidade relativa", mv )
ncnew <- nc_create(filename, list(var_temp, var_rh))
ncvar_put(ncnew, var_temp, dadostemp, start=c(1,1,1), count=c(nx,ny,nt))
当我按照流程操作时,提示NC预期的数据量是我所拥有数据的3倍。我明白为什么会这样,每个维度都需要一个矩阵,因为我声明了变量是根据经度、纬度和时间来确定的。
那么,我应该如何导入这种数据,其中每个数据采集已经有了一个Lon、Lat、Time和其他变量?
能否有人指点一下?
注:这里使用的数据不是我的真实数据,只是我在教程中使用的一些示例数据。
start
和count
属性是可靠的吗?还是使用您展示的索引更合适?两种方法都完美地工作了。我将更深入地研究无限维度,因为我认为这将是必要的。谢谢你,伙计。问候 - aoceano?ncvar_put
中有一个写入沿无限维度的三维数据的示例。 - bluefish