运维开发网

如何用python合并多个有规则名称的nc文件

运维开发网 https://www.qedev.com 2022-04-22 16:13 出处:网络
在地学领域,nc格式的文件可谓随处可见,这种文件可以存储多维数字矩阵,下面这篇文章主要给大家介绍了关于如何用python合并多个有规则命名的nc文件的相关资料,需要的朋友可以参考下

在地学领域,nc格式的文件可谓随处可见,这种文件可以存储多维数字矩阵,下面这篇文章主要给大家介绍了关于如何用python合并多个有规则命名的nc文件的相关资料,需要的朋友可以参考下

除了年份不同之外,现有的nc文件具有相同的名称。希望把多个nc文件合并成一个。


其中,每个nc文件包含以下内容,包括12个月平均数据


所以我们可以知道,合并两个nc文件时,时间应该是= lsquo24rsquo,归并三,时间= lsquo36rsquo。以此类推,合并x年,时间=x*12。

合并功能主要由xarray实现,合并后的nc文件是这样写的:

#导入用到的库import xarray as xrimport os#首先,利用一个循环将需要合并的年份挑选出来。我这里选择1982-2012年的数据file_xadv=[]for year in range(1982,2013): fn=os.path.join(path1,'xadv'+'%04.0f'%year+'.mon.161x720.nc') file_xadv.append(fn)

运行后,您可以获得包含完整路径的所有文件的列表:


以下是合并:

#合并nc文件,通过xarray打开nc文件,并得到所需变量的xarray.DataArray,之后利用xarray.concat()实现合并的功能xadv_new=[]for i in range(len(file_xadv)): xadv=xr.open_dataset(file_xadv[i])['xadv'] xadv_new.append((xadv))da=xr.concat(hadv_new,dim='time')

运行并合并:


xarray.concat()的官方介绍如下:

xarray.concat

例外的是,官网也给出了其他的合并方式,大家可以根据自己的需求索取:

1.有关沿一维组合数据集或数据数组的信息,请使用concatenate。

2.要合并具有不同变量的数据集,请使用merge。

3.有关合并具有不同索引或缺少值的数据集或数据数组的信息,请使用combine。

4.有关沿多维组合数据集或数据数组的信息,请使用combining.multi

组合数据

附上完整的实现代码:

import xarray as xrimport ospath1='E:\\BaiduNetdiskDownload\\MSE_budget\\xadv\\'file_xadv=[]for year in range(1982,2013): fn=os.path.join(path1,'xadv'+'%04.0f'%year+'.mon.161x720.nc') file_xadv.append(fn)hadv_new=[]for i in range(len(file_xadv)): xadv=xr.open_dataset(file_xadv[i])['xadv'] hadv_new.append((xadv))da=xr.concat(hadv_new,dim='time')da.to_netcdf('D:\\desktopppp\\sst_olr\\interp_nan\\xadv_interp.nc')#输出合并后的nc文件

好了,今天的分析到此为止,有兴趣的朋友请尝试一下~

关于如何使用python合并多个具有常规名称的nc文件的文章到此结束。关于python合并nc文件的更多信息,请搜索源搜网之前的文章或者继续浏览下面的相关文章。希望大家以后能多支持源搜网!


0

精彩评论

暂无评论...
验证码 换一张
取 消