如何用python合并多個(gè)有規(guī)則命名的nc文件
現(xiàn)有多個(gè)nc文件,命名除了年份不同外,其他皆相同。希望將多個(gè)的nc文件合并為一個(gè)。
其中,每個(gè)nc文件內(nèi)包含如下內(nèi)容,包含12個(gè)月均數(shù)據(jù)
因此,我們可以知道,合并兩個(gè)nc文件,time應(yīng)該=‘24’,合并三個(gè),time=‘36’。以此類推,合并x年,time=x*12。
主要通過xarray實(shí)現(xiàn)合并功能,并寫出合并后的nc文件:
#導(dǎo)入用到的庫 import xarray as xr import os #首先,利用一個(gè)循環(huán)將需要合并的年份挑選出來。我這里選擇1982-2012年的數(shù)據(jù) file_xadv=[] for year in range(1982,2013): fn=os.path.join(path1,'xadv'+'%04.0f'%year+'.mon.161x720.nc') file_xadv.append(fn)
運(yùn)行后可以得到所有完整路徑的文件列表:
下面就是進(jìn)行合并啦:
#合并nc文件,通過xarray打開nc文件,并得到所需變量的xarray.DataArray,之后利用xarray.concat()實(shí)現(xiàn)合并的功能 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')
運(yùn)行發(fā)現(xiàn)合并好啦:
xarray.concat()官方介紹如下:
例外,官網(wǎng)也給出了其他的合并方式,大家可以按需所求:
1、有關(guān)沿單個(gè)維度組合數(shù)據(jù)集或數(shù)據(jù)數(shù)組的信息,使用 concatenate。
2、有關(guān)合并具有不同變量的數(shù)據(jù)集,使用 merge。
3、 有關(guān)合并具有不同索引或缺失值的數(shù)據(jù)集或數(shù)據(jù)數(shù)組的信息,使用 combine。
4、有關(guān)沿多個(gè)維度組合數(shù)據(jù)集或數(shù)據(jù)數(shù)組的信息,使用 combining.multi。
附上完整實(shí)現(xiàn)代碼:
import xarray as xr import os path1='E:\\BaiduNetdiskDownload\\MSE_budget\\xadv\\' file_xadv=[] for year in range(1982,2013): fn=os.path.join(path1,'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文件
好啦,今天的分析就到這里啦,感興趣的小伙伴快去嘗試一下吧~
到此這篇關(guān)于如何用python合并多個(gè)有規(guī)則命名的nc文件的文章就介紹到這了,更多相關(guān)python合并nc文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 基于wxpy庫實(shí)現(xiàn)微信添加好友功能(簡潔)
這篇文章主要介紹了Python 基于wxpy庫實(shí)現(xiàn)微信添加好友功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11Python數(shù)據(jù)可視化之分析熱門話題“丁克家庭都怎么樣了”
今天小編就以一個(gè)數(shù)據(jù)分析師的視角來向大家講述一下年輕人群體對(duì)于丁克的態(tài)度以及那些丁克家庭他們的想法是怎么樣的?他們是否有過后悔當(dāng)初的決定,需要的朋友可以參考下2021-06-06Python3.5面向?qū)ο蟪绦蛟O(shè)計(jì)之類的繼承和多態(tài)詳解
這篇文章主要介紹了Python3.5面向?qū)ο蟪绦蛟O(shè)計(jì)之類的繼承和多態(tài),結(jié)合實(shí)例形式詳細(xì)分析了Python3.5面向?qū)ο蟪绦蛟O(shè)計(jì)中類的繼承與多態(tài)常見用法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-04-04Python實(shí)用庫 PrettyTable 學(xué)習(xí)筆記
這篇文章主要介紹了Python實(shí)用庫 PrettyTable 學(xué)習(xí)筆記,結(jié)合實(shí)例形式分析了Python表格操作庫PrettyTable的安裝、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-08-08python如何求取指定范圍內(nèi)的質(zhì)數(shù)
這篇文章主要介紹了python如何求取指定范圍內(nèi)的質(zhì)數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python使用Cv2模塊識(shí)別驗(yàn)證碼的操作方法
這篇文章主要介紹了Python使用Cv2模塊識(shí)別驗(yàn)證碼,使用Cv2模塊、pytesseract模塊進(jìn)行操作,pytesseract模塊將智能識(shí)別圖片字體數(shù)字,用于打印出來,本文通過代碼案例給大家詳細(xì)講解,需要的朋友可以參考下2023-01-01Django中celery的使用項(xiàng)目實(shí)例
Celery是?個(gè) 基于python開發(fā)的分布式異步消息任務(wù)隊(duì)列,通過它可以輕松的實(shí)現(xiàn)任務(wù)的異步處理,下面這篇文章主要給大家介紹了關(guān)于Django中celery使用的相關(guān)資料,需要的朋友可以參考下2022-07-07