py合并多个同类型有规律命名的nc文件

  • 如题,我的数据是每个月份一个文件,总共有72年*12个月的文件量,但是这读起来也太累了,希望把它们按时间维度合并成一个文件,希望能够做到由A—B(我已经做到了嘿嘿)

A

B

话不多说,小熊笔记如下 

1.配置包

不用多说了,都懂

2.将所有文件的路径及文件名写入列表中

path='/home/***/directory_name/' #文件夹路径
file=[]#新建列表

for year in range(1950,2022):
    for month in range(1,13):
        fn=os.path.join(path,'daily_mean_u_component_of_wind'+
'%04.0f'%year+'%02.0f'%month+'.nc')# 将路径与有规律的文件名拼接起来
        file.append(fn) #将文本写入列表

得到所有完整路径的文件列表,file中内容如下图所示

3.新建列表,提取文件列表中每一个文件的变量的xarray.DataArray,并append到新的列表中

file_new=[]
for i in range(len(file)):
     u=xr.open_dataset(file[i])['u']
     file_new.append((u))

file_new内容如下

 4.最后一步,按时间维合并,并导出新的nc文件

new_file=xr.concat(file_new,dim='time')#合并

new_file.to_netcdf('/home/sss/users/***/50_021.nc')#输出合并后的nc文件

运行后发现时间维变了,合并成功

 【补充】xarray.concat()官方介绍如下:

xarray.concat

例外,官网也给出了其他的合并方式

1、有关沿单个维度组合数据集或数据数组的信息,使用 concatenate。

2、有关合并具有不同变量的数据集,使用 merge。

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

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

猜你喜欢

转载自blog.csdn.net/LHgwei/article/details/127902909