如何缩小netCDF文件的尺寸并更改数据?
问题描述:
dimensions:
i1 = 3 ;
x = 11 ;
s1 = 1 ;
mid1 = 8 ;
mid2 = 8 ;
variables:
double Height(i1,x) ;
double Temp(s1, x) ;
short Soil(s1, x) ;
double Liq(mid1, x) ;
我有,我想减少尺寸mid1
之一的大小和替换值的netCDF文件:如何缩小netCDF文件的尺寸并更改数据?
icond <- ncdf4::nc_open('dat.nc)
#New dimensions for new file
idim <- icond$dim[['i1']]
xdim <- icond$dim[['x']]
s1dim <- icond$dim[['s1']]
mid1dim <- ncdim_def("mid1", "", 1:3) #3 layers
mid2dim <- icond$dim[['mid2']]
mv <- -9999
#Get variable data
Liqxdat <- ncvar_get(icond, 'Liq')[,1:3] #3 Layers
#Define new variable
Liqx = ncvar_def("Liq", "units", list(mid1dim, i1), mv, prec="double")
#Create netCDF file
nc = nc_create("test.nc", list(Height, Temp, Soil, Liqx)
#Write data to the NetCDF file
ncvar_put(nc, Liqx, Liqxdat)
但是,这是不是给我在输出文件中的任何数据。
答
不幸的是我无法运行你的代码。所以我只能猜测它为什么不起作用。
- 在行nc = nc_create(..)上缺少右括号。
- 高度,温度和土壤未定义。
- 用nc_create你创建一个新文件,但是你不把数据添加到现有文件中,那是你想要的吗?如果你想添加一个新的变量,你必须使用
ncvar_add()