- タイトルの通り、私のデータは月ごとに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 を使用してください。