You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NCO拼接TerraClimate逐年netCDF数据出现取值异常问题求解

问题原因

你现有流程出错的核心原因是操作顺序不符合NCO工具的拼接逻辑:

  • 当你先把维度重排为lat,lon,time,再将time设为记录维度后,ncrcat拼接时无法正确识别非首位置的记录维度的变量切片映射关系,尤其是原始pet变量为带scale_factor、add_offset的压缩存储类型时,拼接过程中缩放参数传递错误,最终仅写入维度元数据、实际数值全部为填充值,所以输出文件体积远小于预期。

最优解决方法

你之前已经通过cdo mergetime得到了数据正常的100GB拼接文件,直接对该文件做维度重排即可,无需重复处理单文件再拼接,仅需一行命令:

# NCO方案重排维度
ncpdq -a lat,lon,time 你之前拼好的正常文件.nc -O TerraClimate_pet_1958_2020.nc

# 也可以用CDO方案完成重排,效果一致
cdo permuteaxis,2,3,1 你之前拼好的正常文件.nc TerraClimate_pet_1958_2020.nc

如果需要适配Windows分析工具的读取要求,避免压缩属性识别异常,可以加解包参数直接输出为float类型:

ncpdq --unpack -a lat,lon,time 你之前拼好的正常文件.nc -O TerraClimate_pet_1958_2020.nc

如果你必须走单文件处理再拼接的流程,按以下顺序修正操作:

  1. 先对所有单文件将time设为记录维度,无需提前重排维度:
for fl in *.nc; do ncks -O --mk_rec_dmn time $fl $fl; done
  1. 拼接所有文件得到全时间序列结果:
ncrcat -h TerraClimate_*.nc -O TerraClimate_pet_1958_2020_tmp.nc
  1. 对拼接好的完整文件执行维度重排:
ncpdq -a lat,lon,time TerraClimate_pet_1958_2020_tmp.nc -O TerraClimate_pet_1958_2020.nc

内容的提问来源于stack exchange,提问作者user97103

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:36:03