pyは、同じタイプの複数のncファイルを通常の名前でマージします。

  • タイトルの通り、私のデータは月ごとに1ファイル、合計72年*12ヶ月分のファイルなのですが、読むのが面倒なので、時間軸に合わせて1つのファイルにまとめたいと思っています。 A —Bまでにやってくれるといいのですが(もうやってしまいました(笑))

B

早速ですが、Little Bear のメモは次のとおりです。 

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) #将文本写入列表

ファイルのリストをフルパスで取得します。ファイルの内容は次のとおりです。

3. 新しいリストを作成し、ファイル リスト内の各ファイルの変数の xarray.DataArray を抽出し、新しいリストに追加します。

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

例外として、公式 Web サイトでは他の結合方法も提供しています。

1. 単一の次元に沿ってデータセットまたはデータ配列を結合する方法については、連結を使用します。

2. 異なる変数を含むデータセットをマージするには、merge を使用します。

3. 異なるインデックスまたは欠損値を持つデータ セットまたはデータ配列をマージする方法については、「結合」を使用します。

4. 複数の次元に沿ったデータセットまたはデータ配列の結合については、combining.multi を使用してください。

おすすめ

転載: blog.csdn.net/LHgwei/article/details/127902909