我有几千个.nc文件,每个文件都需要修剪以匹配另一组文件的大小(lat / lon)。我只想要70-90N的数据,但长文件包含全局数据。在longFile1.nc上运行ncdump会给出
dimensions:
altitude = 40
dim = 55890;
nv = 2;
在shortFile1.nc上运行ncdump给出
dimensions:
fakeDim14 = 8111;
fakeDim15 = 1;
longFile1.nc需要减少,以便dim = 8111.每个文件的短文件维度长度都会发生变化。我知道我需要每个长文件的开头,但每次结束点都不同。
我可以用
修剪longFile1.nc ncks -C -d it,0,8010 -v lat,lon,instant_cloud_phase longFile1.nc -o trimmedLongFile1.nc
但我不知道如何为所有这些做这件事,特别是因为长度随着每个文件而变化。我还必须从指数0-8010开始,以保持正确的纬度范围。有没有办法从每个短文件中读取第一个维度,然后在上面的nco命令中为每个相应的长文件使用它?那个nco命令甚至是最好的方法吗?
提前致谢!
答案 0 :(得分:0)
使用NCO过滤器ncdmnsz并将整个过程放在文件循环中:
for fl in `ls longFile*.nc`; do
dmnsz=`ncdmnsz fakeDim14 $fl`
ncks -F -d it,,$dmnsz -v ...
done
注意使用-F表示基于1的索引。