gpt4 book ai didi

python - 如何在 python 中将一个 netcdf 文件中的变量添加到另一个 netcdf 文件中?

转载 作者:太空宇宙 更新时间:2023-11-03 20:23:28 24 4
gpt4 key购买 nike

我正在使用来自 ECMWF 的 ERA-Interim 数据,其中我需要的变量分布在多个文件中。如何将一个文件中的变量添加到现有文件中,以便最终获得一个包含我需要的所有变量的文件?

到目前为止,我已经尝试了append()、concatenate() 和merge 函数,但没有任何效果。

p_data = anapath1+'/'+yyyy+'/'+mm+'/'+'P'+date 
b_data = anapath1+'/'+yyyy+'/'+mm+'/'+'B'+date
g_data = anapath1+'/'+yyyy+'/'+mm+'/'+'G'+date


#Open/Read netCDF files
inpcst = xr.open_dataset(cstfile)
inp1 = xr.open_dataset(p_data)
inp2 = xr.open_dataset(b_data)
inp3 = xr.open_dataset(g_data)

这些是我正在使用的一些数据文件。我将它们加载到 python 中。

  cdo merge inp1 inp2 inp 

我尝试使用此方法合并两个数据文件,但出现以下错误:

  File "<ipython-input-12-667af80d1ae4>", line 49
cdo merge inp1 inp2 inp
^
SyntaxError: invalid syntax

我以前见过这段代码,和这里的完全一样,所以我不知道为什么会有语法错误。在 Matlab 中这非常简单,因为您可以这样做:

  inp = inp1
inp.a = inp2.a
inp.b = inp3.b

其中 a 和 b 是我想要添加到 inp 的 inp2 和 inp3 变量

我只是想将某些变量从一个文件复制到另一个文件

最佳答案

欢迎来到SO,如果您不熟悉 NETCDF 处理,我强烈建议您使用 CDO 和 NCO 的命令行操作符来执行此类任务...例如,您可以从文件中选择特定变量并将其放入在它自己的文件中,如下所示:

cdo selvar,varname in.nc out.nc 

然后您可以将文件放在一起以创建一个组合文件,如下所示:

cdo cat file1.nc file2.nc cat_file.nc

然后两个包中都有一大堆运算符来执行时间平均值、平均值、最大值、百分位数等...

查看此处的文档:https://code.mpimet.mpg.de/projects/cdo/wiki/Cdo#Documentation

如果您使用的是 linux ubuntu 或 mint,您可以简单地安装它:

cdo apt-get install cdo

ncrcat 还可以对 netcdf 文件进行聚合,详细信息请参见此处:https://linux.die.net/man/1/ncrcat

关于python - 如何在 python 中将一个 netcdf 文件中的变量添加到另一个 netcdf 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58004780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com