王家樂,銀 笛
(內(nèi)蒙古氣象信息中心,內(nèi)蒙古 呼和浩特 010051)
近年來,氣象現(xiàn)代化建設(shè)推進(jìn)迅速,天、地、空多種類的氣象觀測(cè)、探測(cè)設(shè)備日益豐富,氣象信息的精度和時(shí)空密度都發(fā)生了根本性的改變。目前,內(nèi)蒙古觀測(cè)沙塵暴數(shù)據(jù)的觀測(cè)臺(tái)站僅有11個(gè),大部分集中在中西部地區(qū),分布不均勻。因此需要結(jié)合衛(wèi)星數(shù)據(jù)協(xié)同對(duì)沙塵暴天氣過程進(jìn)行監(jiān)測(cè)。風(fēng)云四號(hào)衛(wèi)星是中國(guó)新一代靜止氣象衛(wèi)星[1],裝載了多通道掃描成像輻射計(jì)(AGRI),具備從高空檢測(cè)沙塵的能力,且在天氣晴朗無云的條件下沙塵天氣檢測(cè)效率非常高,且下發(fā)了jpg格式的沙塵檢測(cè)產(chǎn)品圖片,但是制作的圖片產(chǎn)品底圖是純黑色且不能著重凸顯內(nèi)蒙古區(qū)域的沙塵現(xiàn)象,產(chǎn)品如圖1所示。因此,本文以L2通道下NC格式的FY-4A氣象衛(wèi)星的沙塵檢測(cè)產(chǎn)品為研究對(duì)象,分析沙塵指標(biāo),繪制內(nèi)蒙古區(qū)域的沙塵檢測(cè)圖。
圖1 沙塵檢測(cè)jpg產(chǎn)品圖
文中選用的是風(fēng)云四號(hào)衛(wèi)星L2通道的全圓盤沙塵檢測(cè)產(chǎn)品,產(chǎn)品格式為NC格式,分辨率為4 km,主要應(yīng)用產(chǎn)品的沙塵分?jǐn)?shù)(DST)數(shù)據(jù),沙塵產(chǎn)品采用的是積分制,分?jǐn)?shù)越高,則表示沙塵出現(xiàn)的概率越大[2]。產(chǎn)品文件名命名規(guī)則如下:
Python語言是跨平臺(tái)的開源編程語言[3],是公認(rèn)的全球5大流行語言之一,在云計(jì)算、大數(shù)據(jù)及人工智能領(lǐng)域都得到了廣泛的應(yīng)用,其語法簡(jiǎn)單、功能強(qiáng)大且簡(jiǎn)潔易讀,可在Linux、Windows等多個(gè)平臺(tái)無縫連接,社區(qū)活躍,集眾人之力發(fā)布了很多標(biāo)準(zhǔn)庫及功能類庫,極大地提升了開發(fā)效率,文中主要應(yīng)用了處理數(shù)據(jù)的Pandas類庫,解析NC格式文件的netCDF4類庫及繪制專題圖的Basemap類庫。
NetCDF數(shù)據(jù)集(簡(jiǎn)稱NC)是一種自描述的二進(jìn)制數(shù)據(jù)格式,包含維(dimensions)、變量(variables)和屬性(attributes)三種數(shù)據(jù)類型[4],變量存儲(chǔ)的表征其物力性質(zhì)的真實(shí)數(shù)據(jù),維則對(duì)應(yīng)的是變量的維度信息,屬性則是變量輔助信息屬性,主要用于存儲(chǔ)氣象科學(xué)中的氣象數(shù)據(jù),文中主要應(yīng)用Python語言的netCDF4類庫對(duì)NC數(shù)據(jù)集進(jìn)行解析。
風(fēng)云4A產(chǎn)品存儲(chǔ)的位置信息是成像儀標(biāo)稱行列號(hào),無實(shí)際的經(jīng)緯度數(shù)據(jù),需要讀取標(biāo)稱網(wǎng)格文件,沙塵檢測(cè)產(chǎn)品對(duì)應(yīng)的經(jīng)緯度文件為FullMask_Grid_4000_1047.raw,文件是一個(gè)2 748×2 748的規(guī)則網(wǎng)格,從北向南、從西向東依次填寫,每個(gè)網(wǎng)格存儲(chǔ)的是16個(gè)字節(jié),前8字節(jié)為經(jīng)度值,后8字節(jié)為緯度值,數(shù)據(jù)類型為double。文章研究的內(nèi)蒙古區(qū)域 經(jīng) 度 范 圍 是97.3°E—126.2°E、緯 度 范 圍 是37.3°N—53.4°N,編寫Matlab程序,生成內(nèi)蒙古區(qū)域標(biāo)稱行列號(hào)與經(jīng)緯度匹配表,具體代碼如下所示:
4.2.1 經(jīng)緯度數(shù)據(jù)預(yù)處理
成像儀標(biāo)稱行列號(hào)與經(jīng)緯度匹配表存儲(chǔ)的數(shù)據(jù)格式是“行號(hào),列號(hào),經(jīng)度,緯度”,需要經(jīng)過預(yù)處理將一維列式存儲(chǔ)格式轉(zhuǎn)為二維網(wǎng)格存儲(chǔ),讀取匹配表中的最大和最小行列號(hào),計(jì)算橫向網(wǎng)格和縱向網(wǎng)格數(shù),然后將經(jīng)度和緯度一維數(shù)組轉(zhuǎn)換為2維網(wǎng)格數(shù)據(jù),具體代碼如下所示:
4.2.2 沙塵分?jǐn)?shù)數(shù)據(jù)預(yù)處理
利用netCDF4類庫讀取沙塵檢測(cè)產(chǎn)品的沙塵分?jǐn)?shù)數(shù)據(jù)集[5],按照內(nèi)蒙古區(qū)域范圍對(duì)沙塵分?jǐn)?shù)數(shù)據(jù)集進(jìn)行裁剪,具體代碼如下所示:
應(yīng)用Matplotlib類庫的子包Basemap繪制沙塵檢測(cè)圖,繪制步驟如下:
第一步,設(shè)置繪圖區(qū)域及投影。創(chuàng)建一個(gè)Basemap實(shí)例,用來設(shè)置繪圖區(qū)域和投影。文中繪圖區(qū)域選擇的是內(nèi)蒙古區(qū)域,投影是墨卡托投影,代碼如下所示:
m=Basemap(projection='merc',llcrnrlat=37.3,urcrnrlat=53.45,llcrnrlon=97.3,urcrnrlon=126.20,resolution='c')
第二步,經(jīng)緯度與圖像像素點(diǎn)轉(zhuǎn)換。調(diào)用map函數(shù)將預(yù)處理的經(jīng)緯度映射為繪制圖像的像素點(diǎn),代碼如下所示:x,y=m(lons,lats)
第三步,設(shè)置繪圖色標(biāo)。選用十六進(jìn)制作為設(shè)定顏色值的代碼,沙塵分?jǐn)?shù)值越大顏色越深,顏色編碼序列為
['#FFE479','#FDDD6E','#F3AC5C','#FA7935','#F45A10','#F75 60E'],設(shè)置了顏色序列,還要為每一組顏色匹配對(duì)應(yīng)的沙塵分?jǐn)?shù)范圍,沙塵分?jǐn)?shù)數(shù)據(jù)列表為[12,15,17,19,21,23,24],代碼如下所示:
第四步,繪制沙塵檢測(cè)圖。調(diào)用Basemap的內(nèi)置函數(shù)contourf沙塵檢測(cè)圖繪制并保存為圖片,代碼如下所示:
本文基于全圓盤沙塵監(jiān)測(cè)產(chǎn)品繪制了底圖透明的內(nèi)蒙古區(qū)域的沙塵檢測(cè)圖,產(chǎn)品如圖2所示,并在內(nèi)蒙古沙塵暴天氣實(shí)時(shí)跟蹤監(jiān)測(cè)系統(tǒng)開展應(yīng)用,為開展沙塵暴天氣科研、預(yù)報(bào)預(yù)測(cè)以及氣象服務(wù)提供了數(shù)據(jù)產(chǎn)品支撐。
圖2 內(nèi)蒙古區(qū)域沙塵檢測(cè)圖
致謝:在此,特別感謝國(guó)家衛(wèi)星氣象中心風(fēng)云衛(wèi)星遙感數(shù)據(jù)服務(wù)網(wǎng)http://satellite.nsmc.org.cn/提供的相關(guān)風(fēng)云衛(wèi)星沙塵監(jiān)測(cè)產(chǎn)品及輔助數(shù)據(jù)。