Python 将netcdf文件与多个';记录';尺寸 我们考虑这两个文件: from netCDF4 import Dataset as dset for i in range(2): with dset('test_{}.nc'.format(i),'w') as f: f.createDimension('A',5) f.createDimension('B',8) f.createVariable('v1',float,('A',)) f.createVariable('v2',float,('B',)) f['v1'][:] = range(i*5,i*5+5) f['v2'][:] = range(i*8,i*8+8)

Python 将netcdf文件与多个';记录';尺寸 我们考虑这两个文件: from netCDF4 import Dataset as dset for i in range(2): with dset('test_{}.nc'.format(i),'w') as f: f.createDimension('A',5) f.createDimension('B',8) f.createVariable('v1',float,('A',)) f.createVariable('v2',float,('B',)) f['v1'][:] = range(i*5,i*5+5) f['v2'][:] = range(i*8,i*8+8),python,nco,ncks,Python,Nco,Ncks,如果两个维度不受限制,ncrcat将直接工作,并沿B连接v2,沿A连接v1 ncrcat test_0.nc test_1.nc test_01.nc 但是,如果维度是固定大小的,就像上面的例子一样,我必须依次将A和B设置为记录维度,使它们不受限制,然后连接 ncks --mk_rec_dmn A test_0.nc test_0u.nc ; mv test_0u.nc test_0.nc ncks --mk_rec_dmn B test_0.nc test_0u.nc ; mv test_0

如果两个维度不受限制,ncrcat将直接工作,并沿B连接v2,沿A连接v1

ncrcat test_0.nc test_1.nc test_01.nc
但是,如果维度是固定大小的,就像上面的例子一样,我必须依次将A和B设置为记录维度,使它们不受限制,然后连接

ncks --mk_rec_dmn A test_0.nc test_0u.nc ; mv test_0u.nc test_0.nc
ncks --mk_rec_dmn B test_0.nc test_0u.nc ; mv test_0u.nc test_0.nc
ncks --mk_rec_dmn A test_1.nc test_1u.nc ; mv test_1u.nc test_1.nc
ncks --mk_rec_dmn B test_1.nc test_1u.nc ; mv test_1u.nc test_1.nc
ncrcat test_0.nc test_1.nc test_01.nc
有没有其他方法可以用更少的线来实现这一点

不幸的
--mk_rec_dmn
每次调用只更改一个维度。将多个固定维度更改为记录维度在我们的待办事项列表中(#1129)。但是,您可以通过使用
-O
的覆盖功能来消除
mv
语句:

ncks -O --mk_rec_dmn A test_0.nc test_0.nc
ncks -O --mk_rec_dmn B test_0.nc test_0.nc
ncks -O --mk_rec_dmn A test_1.nc test_1.nc
ncks -O --mk_rec_dmn B test_1.nc test_1.nc
ncrcat test_0.nc test_1.nc test_01.nc
嗯,, cz