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

如何使用NCO将不同维度大小的netCDF文件合并为单个文件

合并维度大小不一致的netCDF文件解决方案

报错原因

你使用ncecat默认要求所有非拼接维度的大小完全一致,你的文件中vertex index、bond index两个维度在不同文件中大小不同,因此触发报错。

可行方案

方案1:使用NCO命令行工具

添加--allow_mismatch参数允许非拼接维度大小不一致,同时指定输出为支持可变维度的netCDF4格式即可,命令如下:

ncecat -u time --allow_mismatch -7 network????.vm.nc merged.nc

其中-7参数指定输出为netCDF4经典压缩格式,兼顾兼容性和文件体积。

方案2:使用Python xarray库(更灵活可控)

如果NCO命令不符合你的需求,可以用xarray自定义合并逻辑,能直接使用文件中自带的Network::time作为合并维度的取值,避免自动生成的时间序号不符合实际业务逻辑。

  1. 先安装依赖:
pip install xarray netcdf4
  1. 运行如下合并脚本:
import xarray as xr
import glob

# 按文件名排序读取所有待合并文件
file_list = sorted(glob.glob("network????.vm.nc"))
ds_list = []
for file_path in file_list:
    ds = xr.open_dataset(file_path)
    # 以文件自带的时间值为依据,扩展time维度
    ds = ds.expand_dims(time=[ds["Network::time"].item()])
    ds_list.append(ds)

# 合并时允许维度大小不一致
merged_ds = xr.concat(
    ds_list,
    dim="time",
    compat="override",
    join="outer"
)
# 导出合并后的文件
merged_ds.to_netcdf("merged.nc")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:06:11