您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用python合并多個有規則命名的nc文件”,在日常操作中,相信很多人在怎么用python合并多個有規則命名的nc文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用python合并多個有規則命名的nc文件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
現有多個nc文件,命名除了年份不同外,其他皆相同。希望將多個的nc文件合并為一個。
其中,每個nc文件內包含如下內容,包含12個月均數據
因此,我們可以知道,合并兩個nc文件,time應該=‘24’,合并三個,time=‘36’。以此類推,合并x年,time=x*12。
主要通過xarray實現合并功能,并寫出合并后的nc文件:
#導入用到的庫 import xarray as xr import os #首先,利用一個循環將需要合并的年份挑選出來。我這里選擇1982-2012年的數據 file_xadv=[] for year in range(1982,2013): fn=os.path.join(path2,'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。
Combining data
附上完整實現代碼:
import xarray as xr import os path2='E:\\BaiduNetdiskDownload\\MSE_budget\\xadv\\' file_xadv=[] for year in range(1982,2013): fn=os.path.join(path2,'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文件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。