【发布时间】:2012-05-21 08:47:33
【问题描述】:
我正在尝试使用 R 包 ncdf 创建多维 NetCDF 文件。我正在对一组 1500 个点进行气候日常观测,每个点的观测数约为 18250。 问题是NetCDF文件的结构(create.ncdf)占用4Gb,每个点使文件大小增加3Gb以上(put.var.ncdf em>)
这是我正在使用的代码:
# Make a few dimensions we can use
dimX <- dim.def.ncdf( "Long", "degrees", Longvector )
dimY <- dim.def.ncdf( "LAT", "degrees", Latvector )
dimT <- dim.def.ncdf( "Time", "days", 1:18250, unlim=FALSE )
# Make varables of various dimensionality, for illustration purposes
mv <- -9999 # missing value to use
var1d <- var.def.ncdf( "var1d", "units", dimX, mv,prec="double" )
var2d <- var.def.ncdf( "var2d", "units", list(dimX,dimY), mv,prec="double" )
var3d <- var.def.ncdf( "var3d", "units", list(dimX,dimY,dimT), mv,prec="double" )
# Create the test file
nc <- create.ncdf( "writevals.nc", list(var1d,var2d,var3d) )
# !!Creates a nc file with + 4 Gb
# Adding the complete time series for one point (the first point in the list of the dataset)
put.var.ncdf( nc, var3d,dataset[[1]], start=c(Longvector[1],Latvector[1],1), count=c(1,1,-1))
Longvector 和 Latvector 是从每个点的 Long 和 Lat 矩阵中获取的向量。数据集是一个列表格式,对于每个点我都有一个数值列表。
dataset[[1]]=c(0,0,0,9.7,0,7.5,3.6,2.9,0,0.5,....)
是我遗漏了什么还是应该尝试其他软件包??
【问题讨论】:
-
Longvector 和 Latvector 的长度是多少?你能提供它们吗,也许是调用 seq() 或者只是转储代码以使用 dput() 重新创建它们。
-
请编辑问题以包含缺失的信息
-
建议移动已接受的答案 ncdf4 解决方案,因为 ncdf 现在已经过时 - 现在大多数软件都使用 netcdf4 约定。