我想在此之前复制一个NetCDF文件:
( a)更新第二个文件中变量的值,和/或
( b)向第二个文件中添加一个新变量,该文件对应于原文件中变量的结构。
我已经可以做这种复制了,但是我的过程很繁琐,感觉很零碎,所以我想知道是否有一个更优雅、更简单的解决方案。例如,我希望生成的NetCDF文件包含作为原始NetCDF文件的所有全局属性、坐标维度、坐标变量,以及可能的数据变量。
然后,我想在第二个NetCDF中创建另一个变量,其维度与原始变量之一相同(这也是可行的,但要寻找更好的方法)。可能我正在寻找的是在Python中执行nccopy功能的一种方法。这样的函数似乎不存在于netcdf4模块中,但是也许我可以使用另一个技巧来实现这个功能呢?
也许这就像复制原始文件并在适当的地方修改副本一样简单?或者打开原始的NetCDF并使用复制模块创建第二个NetCDF?
提前感谢您的任何建议或见解。
发布于 2015-12-30 17:45:41
有了NCO,这可能就像
ncap2 -s 'new_var=old_var+20' in.nc out.nc您可以使用-v来控制是否只希望new_var和old_var,或者in.nc的所有内容都在out.nc中。
发布于 2015-12-20 17:55:36
我将提供一个xarray解决方案来解决您想要做的事情。xarray具有“往返”功能,允许您读取/写入相同的netCDF文件,因此这可能是一种很好的方式。
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')https://stackoverflow.com/questions/34359834
复制相似问题