使用 unix 中另一个文件的维度提取许多 netcdf 文件的一部分
Extract part of many netcdf files using dimensions from another file in unix
我有几千个 .nc 文件,每个文件都需要 trimmed 以匹配另一组文件的大小 (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。短文件维度长度随每个文件而变化。我知道我需要每个长文件的开头,但每次结束点都会不同。
我可以 trim longFile1.nc 和
ncks -C -d it,0,8010 -v lat,lon,instant_cloud_phase longFile1.nc -o trimmedLongFile1.nc
但我不知道如何对所有文件执行此操作,尤其是因为每个文件的长度都不同。我还必须从索引 0-8010 开始,以保持正确的纬度范围。有没有办法从每个短文件中读取第一维,然后在上面的 nco 命令中为每个相应的长文件使用它? nco 命令是执行此操作的最佳方法吗?
提前致谢!
使用 NCO 过滤器 ncdmnsz 并将整个内容放在文件循环中:
for fl in `ls longFile*.nc`; do
dmnsz=`ncdmnsz fakeDim14 $fl`
ncks -F -d it,,$dmnsz -v ...
done
注意 -F 用于基于 1 的索引。
我有几千个 .nc 文件,每个文件都需要 trimmed 以匹配另一组文件的大小 (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。短文件维度长度随每个文件而变化。我知道我需要每个长文件的开头,但每次结束点都会不同。
我可以 trim longFile1.nc 和
ncks -C -d it,0,8010 -v lat,lon,instant_cloud_phase longFile1.nc -o trimmedLongFile1.nc
但我不知道如何对所有文件执行此操作,尤其是因为每个文件的长度都不同。我还必须从索引 0-8010 开始,以保持正确的纬度范围。有没有办法从每个短文件中读取第一维,然后在上面的 nco 命令中为每个相应的长文件使用它? nco 命令是执行此操作的最佳方法吗?
提前致谢!
使用 NCO 过滤器 ncdmnsz 并将整个内容放在文件循环中:
for fl in `ls longFile*.nc`; do
dmnsz=`ncdmnsz fakeDim14 $fl`
ncks -F -d it,,$dmnsz -v ...
done
注意 -F 用于基于 1 的索引。