






摘" 要:在當前大數據、人工智能的時代,人類對大氣的探測手段越來越多,每天獲取的數據也在呈爆炸式增長。隨著科學計算可視化技術的不斷發展,憑借計算機強大的數據處理能力,人們對于海量數據處理的方式也越來越多。該文首先利用MATLAB繪制氣象流線切片圖,然后基于Panoply軟件對NetCDF格式的氣象數據進行可視化操作,分別制作氣溫變化的一維和二維分布圖以及風場變化的聯合分布圖,最后實現東南亞地區某個時間段的地表平均風場變化的可視化。
關鍵詞:氣象數據;可視化;MATLAB;NetCDF;聯合分布圖
中圖分類號:P412" " " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2023)17-0018-04
Abstract: In the era of big data and artificial intelligence, there are more and more human detection methods for the atmosphere, and the data obtained every day is also increasing explosively. With the continuous development of scientific computing visualization technology, using the powerful ability of data processing of computers, people have more and more ways to deal with massive data. In this paper, firstly, the meteorological streamline slice map is drawn by MATLAB, and then the meteorological data in NetCDF format are visualized based on Panoply software, and the one-dimensional and two-dimensional distribution maps of temperature change and the joint distribution map of wind field change are made respectively. Finally, the visualization of the change of surface mean wind field in Southeast Asia is realized.
Keywords: meteorological data; visualization; MATLAB; NetCDF; joint distribution map
隨著電子計算機技術的飛速發展,大數據和人工智能無疑成為當今世界討論的熱點話題之一。計算機技術的發展和各種衛星的出現大大提高了人們生產和獲取數據的能力,并且這些大量的數據集又具有巨大的經濟效益和科研價值[1]。通過傳統的人工分析或者常規的數據統計分析軟件幾乎不可能實現對這些數據的處理,面對如此龐大的且復雜的數據如何快速分析并展示出來,成為大數據時代的重要研究方向。
科學計算可視化(Visualization in Scientific Computing,簡稱ViSC)的出現正好解決了這一難題。ViSC可以將大量的數據轉變為二維、三維甚至多維圖像呈現出來,在氣象數據處理方面應用十分廣泛和重要[2]。氣象數據可視化研究主要運用計算機圖形學、圖像處理技術和人機交互等相關技術,將復雜的科研工程數據通過分析、挖掘、映射到圖像、動畫中,并通過交互允許用戶對數據進行分析總結,進而從中快速發現規律并獲取有用信息[3]。
目前氣象數據可視化技術在國際上發展迅速,但在我國仍處于發展階段。美國國家海洋與大氣管理局(National Oceanic and Atmospheric Administration, 簡稱NOAA)研發了一套基于氣象、衛星和雷達的三維可視化系統,該系統能對全球范圍的氣象數據進行評估和預測,并制作了一套風場可視化Wind Map系統[4]。在國內,氣象數據可視化研究工作起步得較晚。皮學賢等[5]在2001年提出了一種氣象可視化軟件原型系統(MVS)的設計與實現方案;2002年,吳鐵建等[6]利用Java構建基于Web的氣象可視化系統。
1" 氣象數據可視化技術
1.1" 常見氣象數據格式
在大氣科學領域中,目前國際上一些常見的氣象數據格式主要有:TXT數據、Excel數據(.xls)、二進制數據、NetCDF、Grib和hdf等數據。
NetCDF(Network Common Data Form)是由美國大學大氣研究所開發,中文譯法為“網絡通用數據格式”,其是一種面向陣列、適合網絡共享的數據的描述和編碼標準,廣泛應用于大氣科學、水文、海洋學、環境模擬、地球物理等諸多領域[7]。NetCDF數據的特點見表1。
1.2" 氣象數據可視化的方法
氣象數據可視化方法有很多,但不同格式的氣象數據具有不同的特點,所以對應可視化的方法一般也不相同。通常講氣象數據可視化的方法主要可以分為2種:標量場可視化和矢量場可視化[8]。
標量場可視化的一般方法包括體繪制法、等值線法和等值面法等。其中傳統的體繪制采用長方體、立方體或者圓柱體作為代理幾何從而構造三維體數據。然而,在氣象學中由于地球和大氣層都是球形,傳統的體繪制方法會有一定的局限性,而球面體繪制法正好彌補了傳統體繪制的局限性,目前在氣象數據可視化中被廣泛地應用。
矢量場同標量場一樣,也分為二維和三維,但矢量場中每個采樣點的數據不是溫度、壓力、密度等標量,而是速度等向量。矢量場可視化的方法主要包含箭頭圖法、流線法和線積分卷積法等。
1.3" 三維數據可視化的基本流程
本文中氣象數據可視化流程如圖1所示。
1)數據生成:可以是計算機模擬的數據也可以是實時采集的氣象數據。
2)數據精煉與處理:可以根據不同用途對數據進行一定處理。
3)可視化映射:將處理后的原始數據轉換為可繪制的幾何圖素和屬性。
4)將前一步生成的幾何圖素和屬性轉換為可顯示的圖像。
5)最后一步是圖像變換和圖像顯示。
2" 基于MATLAB氣象數據可視化制作
隨著氣象事業的不斷發展,氣象數據資料也越來越多,為了更好地利用相關數據服務于人類。本文首先利用MATLAB軟件繪制氣象流線切片圖,通過從美國國家海洋與大氣管理局官網獲取的2018年以來全球氣溫變化數據和1948年以來70余年的全球風場變化數據,再利用Panoply軟件對NetCDF格式的氣象數據進行了可視化操作。
2.1" 基于MATLAB繪制流線切片圖
流線切片圖是將流線圖疊加在三維圖的圖剖面上通過流線圖可以做三維參考面上顯示內部某個特定面上的流動特征[9]。切片圖廣泛地應用在地震、氣象、風向等領域能夠實時反映某個特定時刻特定面的流動特征。MATLAB R2016a中的streamslice()函數可以在片層上繪制氣象流線圖。
1)創建一個Z=3的流線切片圖,程序運行結果如圖2所示。
gt;gt;load wind
gt;gt;daspect([1 1 1])
gt;gt;streamslice(x,y,z,u,v,w,[],[],[3])
gt;gt;axis tight
通過wind函數構造的曲線表示風通過的路徑,小箭頭表示風的方向。從圖中可以看出風形成的流線式密度分布不均勻且不閉合的曲線,從而可以深入進行很多的氣象分析,以及探究形成該氣候現象的原因。
2)在圖2的基礎上,通過streamslice函數繪制流向箭頭和直線,程序運行結果如圖3所示。
gt;gt;load wind
gt;gt;daspect([1 1 1])
gt;gt;[verts averts] = streamslice(u,v,w,10,10,10);
gt;gt;streamline([verts averts])
gt;gt;spd = sqrt(u.^2 + v.^2 + w.^2);
gt;gt;hold on;
gt;gt;slice(spd,10,10,10);
gt;gt;colormap(hot)
gt;gt;shading interp
gt;gt;view(30,50); axis(volumebounds(spd));
gt;gt;camlight; material([.5 1 0])
可以看出是在圖2的基礎上制作了一個三維圖形,通過顏色深淺更加形象直觀地反映了三維空間中風的流線分布是無章可循的,而且通過顏色深淺變化讓這種不均勻分布的現象更為明顯,從而讓氣象工作者能從中提取更多的有效信息來分析形成這種現象的原因。
3)在圖3的基礎上通過streamslice()函數再加上等值線,程序運行結果如圖4所示。
gt;gt;z = peaks;
gt;gt;surf(z)
gt;gt;shading interp
gt;gt;hold on
gt;gt;[c ch] = contour3(z,20); set(ch,'edgecolor','b')
gt;gt;[u v] = gradient(z);
gt;gt;h = streamslice(-u,-v);
gt;gt;set(h,'color','k')
gt;gt;for i=1:length(h);
zi = interp2(z,get(h(i),'xdata'),get(h(i),'ydata'));
set(h(i),'zdata',zi);
gt;gt;end
gt;gt;view(30,50); axis tight
該程序通過matlab中的peaks()函數繪制底部三維模型,其中箭頭曲線表示風向流線,無箭頭曲線表示地面輪廓。從圖中很明顯地看出,不同的地形區域的風場的密度不同,這說明風場密度和地形有著密切的關系。
通過上述3種不同繪制流線切片圖形的實例看出,不同的繪制方法可以提取出不同的有效信息。如今全球氣候變幻多端,若使用MATLAB對各種氣象數據進行分析以及可視化操作,一定會得到有效的氣象所需要的結論。
2.2" NetCDF數據可視化方法
本文主要研究的是氣象數據可視化,而NetCDF是氣象數據里面最重要也是最常用的一種格式。通過美國國家海洋和大氣管理局官網和美國國家環境預報中心(National Centers for Environmental Prediction,簡稱NECP)等許多途徑都可以下載到NetCDF格式的大氣數據。本文主要用到了“2018年全球大氣數據”以及“地面風向的經緯分量數據”。
2.2.1" 一維分布圖
使用Panoply繪制一維圖形時,可以將NetCDF中的經緯度以及高度或時間作為橫坐標,將變量作為縱坐標來繪圖[10]。“2018年全球大氣數據”是2018年1月1日—4月30日的每天全球氣溫變化數據,所以根據需要選擇不同日期,從而會顯示出不同時間全球氣溫變化曲線圖,如圖5所示。
2.2.2" 聯合制圖
首先需要將一維分布圖進行二維繪制,可以將氣溫 NetCDF 數據簡單地理解為包含有多個 Excel 文件的文件夾,每個工作表的列名相當于經度,行名相當于緯度,單元格中的數據相當于這個經緯度在這個時間的溫度[11]。正因為有了經緯度,所以 NetCDF 格式的數據也可以進行二維可視化操作。具體操作方法和一維分布圖操作方式一樣,在 Plot 選擇框選擇 map 即可。
而聯合制圖就是使用2個.nc數據進行可視化操作,將2組數據顯示在一個繪圖框里面。這樣的數據通常稱作經向分量數據和緯向分量數據,Panoply按照平行四邊形法則對2組數據進行合成,再根據合成好的風向圖制作出任意時間任意區域的地表平均風向圖,具體界面參數設置如圖6所示。
以上可視化的方法不僅適用于風場的可視化,還適用于降水分布、鹽度分布、潮汐面分布等。根據不同類型的NetCDF格式的數據集,利用MATLAB和Panoply軟件便可對其進行可視化操作。
3" 結論
近年來,全球氣候發生了巨大的變化,天氣預報變得尤為重要。其不僅與人類日常生活密切相關,而且在國民經濟發展和自然災害救援中也發揮著舉足輕重的作用。傳統的氣象圖都是以靜態形式呈現出來的,不利于工作人員對大氣做全面、直觀的動態分析。本文主要研究了全球氣象數據可視化的方法,首先使用MATLAB導入NetCDF氣象數據,并且繪制氣象流線切片圖,最后通過Panoply軟件對NetCDF數據進行了可視化操作。將2018年近半年以來全球氣溫變化進行了可視化,生成了自1948年70余年來全球風場流線圖,最后實現了東南亞地區某時間段的地表平均風場變化圖。為今后氣象數據可視化提供了一定的參考。
參考文獻:
[1] 馬增杰.基于Web的大氣數據可視化系統研究與實現[D].杭州:杭州電子科技大學,2017.
[2] 向衛國.基于OpenGL的氣象可視化系統的設計與實現[D].成都:電子科技大學,2008.
[3] 沈震宇,范茵,陶俐君,等.可視化技術在氣象數據場分析中的運用[J].系統仿真學報,2006(S1):328-329,332.
[4] 美國風場可視化地圖(wind map)[EB/OL].http://hint.fm/wind/.
[5] 皮學賢,蔡勛,宋君強.氣象可視化原型系統的設計與實現[J].計算機工程與科學,2001(1):51-54.
[6] 吳鐵健,張為民,蔡勛.用Java構建的基于Web的氣象可視化系統[J].計算機工程,2002(12):250-252.
[7] 孫建偉,孫昭晨,陳軒,等.NetCDF格式數據的創建及應用[J].交通標準化,2010(15):31-34.
[8] CRAWFIS R, MAX N, BECKER B. Vector Field Visualization[J].IEEE Computer Graphics and Applications,1994,14(5):50-56.
[9] 陳金輝.MATLAB在繪制氣象圖上的應用[J].中國科技信息,2005(24):27.
[10] 布和朝魯,諸葛安然,謝作威,等.2021年“7.20”河南暴雨水汽輸送特征及其關鍵天氣尺度系統[J].大氣科學,2022,46(3):725-744.
[11] 彭松.NetCDF數據的可視化方法[J].地理教學,2016(10):51-52,39.