本發(fā)明涉及的是軟件技術(shù)領(lǐng)域,具體的說是一種并行化二維流場多元數(shù)據(jù)動(dòng)態(tài)可視化系統(tǒng)。
背景技術(shù):
在地球科學(xué)領(lǐng)域,將海洋流場做為一種向量場來表示,是描述海洋特征的常用手段之一。目前對流場可視化的方法主要有紋理法、幾何線形法和特征法等,不同的方法對流場的刻畫都有其觀注的重點(diǎn),而在地球科學(xué)領(lǐng)域,人們更傾向于使用幾何線形來表達(dá)真實(shí)觀測或數(shù)值模擬的流場數(shù)據(jù)。隨著觀測技術(shù)與計(jì)算機(jī)的發(fā)展,海洋流場數(shù)據(jù)產(chǎn)品的時(shí)空分辨率越來越高,人們對流場可視化的要求也越來越高。首先是靜態(tài)圖片對流場的描述已不能滿足一些特定場合的需求,尤其對于非靜態(tài)流場,簡單的幾張圖片已無法對流場的變化進(jìn)行精細(xì)刻畫;其次,目前在地球科學(xué)領(lǐng)域使用的流場表示方法多數(shù)是基于格點(diǎn)數(shù)據(jù)進(jìn)行直線型矢量群的繪制,這種方法對流場精細(xì)結(jié)構(gòu)的描述非常有限。另外,目前雖然有不少文獻(xiàn)介紹了多種方法來進(jìn)行流場的可視化,但多數(shù)是從計(jì)算機(jī)信息工程與技術(shù)角度出發(fā),與地球科學(xué)領(lǐng)域的直接應(yīng)用還有一定的距離。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的缺陷和不足,提供了一種并行化二維流場多元數(shù)據(jù)動(dòng)態(tài)可視化系統(tǒng),基于地球科學(xué)領(lǐng)域常用的工具,利用粒子追蹤方法構(gòu)建曲線型流線向量場來更直觀地描述海洋二維流場,利用并行技術(shù)來計(jì)算粒子追蹤和繪圖,大大提高了處理能力和計(jì)算速度。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
并行化二維流場多元數(shù)據(jù)動(dòng)態(tài)可視化系統(tǒng),具體操作步驟如下:
1、流場數(shù)據(jù)準(zhǔn)備;
2、計(jì)算粒子路徑;
3、繪制流場圖。
進(jìn)一步,所述流場數(shù)據(jù)準(zhǔn)備包括時(shí)間變量、經(jīng)緯度坐標(biāo)變量、速度分量變量和溫度變量等格點(diǎn)化數(shù)組。
進(jìn)一步,所述步驟中第(2)、(3)步的實(shí)現(xiàn)均通過多CPU并行的計(jì)算方式來提高處理能力和計(jì)算速度。
進(jìn)一步,所述繪制的流場圖是利用粒子路徑形成的曲線矢量場來描述二維流場的形態(tài),通過透明度漸變的方式表示流線方向,并利用線條顏色來疊加更多的流場信息。
本發(fā)明的有益效果為:
1、對定常流場進(jìn)行粒子追蹤計(jì)算,利用粒子路徑形成曲線矢量場系列圖片對定常流場進(jìn)行動(dòng)態(tài)描述;
2、對非靜態(tài)流場進(jìn)行粒子追蹤計(jì)算,利用粒子路徑形成曲線矢量場系列圖片對時(shí)變的流場進(jìn)行動(dòng)態(tài)描述;
3、對曲線矢量流場系列圖片進(jìn)行染色,使得曲線矢量流場圖不僅可以對流場的運(yùn)動(dòng)進(jìn)行描述,還可以疊加水溫等多元信息。
4、根據(jù)計(jì)算條件可設(shè)置多個(gè)CPU進(jìn)行并行計(jì)算,極大提高粒子追蹤計(jì)算和繪圖的速度。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施方式,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施方式僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
并行化二維流場多元數(shù)據(jù)動(dòng)態(tài)可視化系統(tǒng),具體操作步驟如下
1、流場數(shù)據(jù)準(zhǔn)備
流場數(shù)據(jù)文件為NetCDF格式,文件中應(yīng)包含以下幾個(gè)變量:
a)時(shí)間變量time,一維數(shù)組,記錄流場數(shù)據(jù)切片的時(shí)間,具有相等的時(shí)間間隔。
b)經(jīng)緯度坐標(biāo)變量lon、lat,均為一維數(shù)組,記錄流場數(shù)據(jù)的格點(diǎn)坐標(biāo),也可以用迪卡爾坐標(biāo)。
c)速度分量變量u、v,均為三維數(shù)組,每個(gè)維度分別對應(yīng)時(shí)間、緯度和經(jīng)度,u和v分別記錄流場速度的東西分量和南北分量在各格點(diǎn)上的數(shù)值。
d)溫度變量temp,三維數(shù)組,每個(gè)維度分別對應(yīng)時(shí)間、緯度和經(jīng)度,記錄流場格點(diǎn)數(shù)據(jù)對應(yīng)的水溫值。
其中溫度變量可以和流場數(shù)據(jù)保存在同一文件中,也可以單獨(dú)保存在不同的文件中,且溫度變量可換為其它相關(guān)標(biāo)量數(shù)組。
2、計(jì)算粒子路徑
a)編譯perpetual.f90
在命令行輸入如下編譯命令:
mpif90-o perpm perpetual_mpi.f90$optional_parameter–I/Path/To/NetCDF/Include–L/Path/To/NetCDF/lib-lnetcdf
其中$optional_parameter為編譯時(shí)根據(jù)操作系統(tǒng)及軟件平臺(tái)等環(huán)境可選的Fortran編譯選項(xiàng),比如二進(jìn)數(shù)據(jù)大小端存儲(chǔ)方式、數(shù)據(jù)記錄標(biāo)記Maker的具體格式等;/Path/To/NetCDF/Include需替換為編譯環(huán)境中NetCDF函數(shù)庫中Include路徑的具體位置;/Path/To/NetCDF/lib需替換為NetCDF函數(shù)庫中Lib路徑的具體位置。
b)通過Fortran的namelist機(jī)制設(shè)置與流場數(shù)據(jù)及繪圖相關(guān)的參數(shù),關(guān)鍵參數(shù)如下:
ncfn-流場數(shù)據(jù)文件路徑
M、N-流場數(shù)據(jù)格點(diǎn)數(shù)
Pfnb-粒子路徑計(jì)算結(jié)果文件路徑
xl、yl-繪圖區(qū)域的經(jīng)緯度范圍
fps-流場數(shù)據(jù)相鄰記錄間粒子追蹤次數(shù)
Ns-粒子路徑對應(yīng)的流線長度控制參數(shù)
ds-粒子分布密度控制參數(shù)
dt-粒子追蹤積分時(shí)間參數(shù)
spn-定常流場與非靜態(tài)流場繪制切換開關(guān),值為真時(shí)對定常流場進(jìn)行粒子追蹤計(jì)算,值為假時(shí)是對非靜態(tài)流場進(jìn)行粒子追蹤計(jì)算。對非靜態(tài)流場需要先設(shè)置其值為假對第一條記錄進(jìn)行粒子追蹤計(jì)算并使之達(dá)到粒子分布密度動(dòng)態(tài)平衡狀態(tài),然后再設(shè)置為真進(jìn)行時(shí)變流場下的粒子追蹤計(jì)算。
nspin-粒子追蹤計(jì)算總次數(shù)
c)啟動(dòng)粒子追蹤計(jì)算
具體命令形式如下:
mpirun–np$Nprocess perpm
其中$Nprocess為參與并行計(jì)算的CPU總個(gè)數(shù)。
3、繪制流場圖
需要將perpetual.py和mplotting.py放在同一路徑下,然后設(shè)置關(guān)鍵參數(shù):
gfn-第2步生成的粒子格點(diǎn)數(shù)據(jù)文件路徑
dfn-第2步生成的粒子路徑文件的路徑
ffn-欲保存的圖片文件名
nrow、ncol-分區(qū)式并行繪圖的分區(qū)參數(shù)
nt-分層式并行繪圖的層數(shù)參數(shù)
nfms-第2步生成的粒子路徑文件總數(shù)
fid-溫度變量所在NetCDF文件路徑
然后運(yùn)行繪圖程序mplotting.py:
命令格式具體如下:
python mplotting.py
運(yùn)行完成后會(huì)產(chǎn)生一系列按時(shí)間序列排列的圖片,利用合成軟件(如imagemagick等)可以很方便地制作出動(dòng)態(tài)視頻。
對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。
此外,應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。