首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python/ NetCDF 4:如何复制NetCDF文件?

Python/ NetCDF 4:如何复制NetCDF文件?
EN

Stack Overflow用户
提问于 2015-12-18 16:22:02
回答 2查看 1.3K关注 0票数 3

我想在此之前复制一个NetCDF文件:

( a)更新第二个文件中变量的值,和/或

( b)向第二个文件中添加一个新变量,该文件对应于原文件中变量的结构。

我已经可以做这种复制了,但是我的过程很繁琐,感觉很零碎,所以我想知道是否有一个更优雅、更简单的解决方案。例如,我希望生成的NetCDF文件包含作为原始NetCDF文件的所有全局属性、坐标维度、坐标变量,以及可能的数据变量。

然后,我想在第二个NetCDF中创建另一个变量,其维度与原始变量之一相同(这也是可行的,但要寻找更好的方法)。可能我正在寻找的是在Python中执行nccopy功能的一种方法。这样的函数似乎不存在于netcdf4模块中,但是也许我可以使用另一个技巧来实现这个功能呢?

也许这就像复制原始文件并在适当的地方修改副本一样简单?或者打开原始的NetCDF并使用复制模块创建第二个NetCDF?

提前感谢您的任何建议或见解。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-30 17:45:41

有了NCO,这可能就像

代码语言:javascript
复制
ncap2 -s 'new_var=old_var+20' in.nc out.nc

您可以使用-v来控制是否只希望new_var和old_var,或者in.nc的所有内容都在out.nc中。

票数 4
EN

Stack Overflow用户

发布于 2015-12-20 17:55:36

我将提供一个xarray解决方案来解决您想要做的事情。xarray具有“往返”功能,允许您读取/写入相同的netCDF文件,因此这可能是一种很好的方式。

代码语言:javascript
复制
import xarray as xr

# open your dataset
ds = xr.open_dataset('your_original_file.nc')

# change an existing variable
ds.your_var += 20

# add a new variable
ds['new_var'] = xr.DataArray([1, 2, 3, 4], dims=('new_dim', ))

# write to a new file
ds.to_netcdf('your_new_file.nc')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34359834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档