如何⽤python 合并多个有规则命名的nc ⽂件
现有多个nc ⽂件,命名除了年份不同外,其他皆相同。希望将多个的nc
⽂件合并为⼀个。
其中,每个nc ⽂件内包含如下内容,包含12
个⽉均数据
因此,我们可以知道,合并两个nc ⽂件,time 应该=‘24’,合并三个,time=‘36’。以此类推,合并x 年,time=x*12。主要通过xarray 实现合并功能,并写出合并后的nc ⽂件:
1
234567
#导⼊⽤到的库
import xarray as xr
import os
#⾸先,利⽤⼀个循环将需要合并的年份挑选出来。我这⾥选择1982-2012年的数据file_xadv=[]for year in range(1982,2013): fn=os.path.join(path1,'xadv'+'%04.0f'%year+'.')
file_xadv.append(fn)
运⾏后可以得到所有完整路径的⽂件列表:
下⾯就是进⾏合并啦:
12345
#合并nc
python数组合并⽂件,通过xarray 打开nc ⽂件,并得到所需变量的xarray.DataArray ,之后利⽤at()实现合并的功能xadv_new=[]for i in range(len(file_xadv)):
xadv=xr.open_dataset(file_xadv[i])['xadv']
xadv_new.append((xadv))
at(hadv_new,dim='time')运⾏发现合并好啦:
例外,官⽹也给出了其他的合并⽅式,⼤家可以按需所求:
1、有关沿单个维度组合数据集或数据数组的信息,使⽤ concatenate 。
2、有关合并具有不同变量的数据集,使⽤ merge 。
3、 有关合并具有不同索引或缺失值的数据集或数据数组的信息,使⽤ combine 。
4、有关沿多个维度组合数据集或数据数组的信息,使⽤ combining.multi 。
附上完整实现代码:
1
2345678910111213141516
import xarray as xr
import os
path1='E:\\BaiduNetdiskDownload\\MSE_budget\ adv\\'
file_xadv=[] for year in range(1982,2013): fn=os.path.join(path1,'xadv'+'%04.0f'%year+'.') 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))at(hadv_new,dim='time') da.to_netcdf('D:\\desktopppp\\sst_olr\\interp_nan\ ')#输出合并后的nc ⽂件好啦,今天的分析就到这⾥啦,感兴趣的⼩伙伴快去尝试⼀下吧~
到此这篇关于如何⽤python 合并多个有规则命名的nc ⽂件的⽂章就介绍到这了,更多相关python 合并nc ⽂件内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论