如何重新排列维度?

3

我正在处理降水数据。我需要重新排列NetCDF文件中的维度。我的文件中的维度顺序为(time, lat, lon)。我需要它们按照(lat, lon, time)的顺序排列。

我尝试了以下方法:

ncpdq -a lat,lon,time infile.nc outfile.nc   

现在我得到了我想要的维度顺序,即(纬度,经度,时间)

然而,纬度维度变成了UNLIMITED,这是错误的。时间维度应该是UNLIMITED维度。这就是我得到的:

dimensions: 
   lon = 720 ;
   lat = UNLIMITED ; // (360 currently)
   time = 1404 ;

如何将维度从(time, lat, lon)重新排序为(lat, lon, time)

1个回答

3
我检查了一下,重新排序看起来是有效的。我用ncdump -h inputfile.ncncdump -h outputfile.nc检查了文件信息,并且比较如下:Comparison of file info before and after the re-order 正如您所见,已进行了重新排序,第一维是我的情况下的latc,变成无限制的。
幸运的是,你可以这样修复纬度:
ncks --fix_rec_dmn lat output.nc -o outfixed.nc ; mv outfixed.nc outputfile.nc

并且重新将时间设为无限制:
ncks --mk_rec_dmn time outputfile.nc -o outunlim.nc ; mv outunlim.nc outputfile.nc

现在,输出文件应该没问题了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接