微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

合并 netCDF 文件包括先前建议的失败尝试

如何解决合并 netCDF 文件包括先前建议的失败尝试

感谢您对我的帖子感兴趣,因为我知道这个问题已在 SO 上被问过几次。 由于我相对较新,因此我在编码方面不是很有经验,因此如果我问了一些明显的问题,我真的很抱歉。

我已经尝试了大部分建议,除了 cdo,因为它似乎需要安装某些软件。

虽然我有 135 个文件要合并,但我相信必须有一种方法可以使用代码而不是其他软件来合并它们。

以下是我的尝试和错误

尝试 1

import netCDF4
from netCDF4 import Dataset

year1 = netCDF4.MFDataset(['HMA_Glacier_dH_1975-2000_RGI50_14_15366.nc','HMA_Glacier_dH_1975-2000_RGI50_14_14990.nc','HMA_Glacier_dH_1975-2000_RGI50_14_11685.nc','HMA_Glacier_dH_1975-2000_RGI50_14_11696.nc','HMA_Glacier_dH_1975-2000_RGI50_14_11724.nc','HMA_Glacier_dH_1975-2000_RGI50_14_11748.nc','HMA_Glacier_dH_1975-2000_RGI50_14_11760.nc'])

#error: 主数据集 HMA_Glacier_dH_1975-2000_RGI50_14_15366.nc 没有聚合维度

尝试 2

test = xr.open_mfdataset(['HMA_Glacier_dH_1975-2000_RGI50_14_15366.nc','HMA_Glacier_dH_1975-2000_RGI50_14_11760.nc'])

#error: 结果对象没有沿维度时间戳的单调全局索引

尝试 4

ds = xarray.merge([xarray.open_dataset(f) for f in glob.glob('path/to/file/.*nc')])

#error: 名称 'xarray' 未定义

尝试 5

ds = xr.merge([xarray.open_dataset(f) for f in glob.glob('path/to/file/.*nc')])

#error: 名称 'glob' 未定义

尝试 4 和 5 可能是代码错误,例如更改

ds = xr.merge([xarray.open_dataset(f) for f in glob.glob('path/to/file/.*nc')])

ds = xr.merge([xarray.open_dataset(f) for f in glob.glob('1975 - 2016/.*nc')])

其中 1975 - 2016 是文件名,但它不起作用这就是为什么我怀疑这可能是由于我的编码不佳

尝试 6

import nctoolkit as nc
# read in the files

DATA2.drop(DATA1.variables)
# merge the files
DATA1.append(DATA2)
DATA1.merge()
# save the files as a netcdf file
DATA1.to_nc("merged.nc")

#error: 没有名为“nctoolkit”的模块

我衷心感谢您的帮助!如果您需要有关代码文件的任何进一步信息,请告诉我! 谢谢!

已编辑

感谢 spencerkclark 的帮助! 这是它的样子

output of xr.open_dataset('HMA_Glacier_dH_1975-2000_RGI50_14_15366.nc)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。