本發(fā)明涉及流場數(shù)據(jù)分析技術(shù)領(lǐng)域,具體涉及一種流場積分曲線的復(fù)用方法及系統(tǒng)。
背景技術(shù):
流場(Flow Field)即流體運動所占據(jù)的空間,流場數(shù)據(jù)是一類重要的科學(xué)數(shù)據(jù),其通常定義在二維或者三維空間中,并至少包含一個速度場。最常見的流場數(shù)據(jù)包括海洋模擬中的洋流數(shù)據(jù)、大氣模擬中的風(fēng)場數(shù)據(jù)等等。許多已有的流場可視化方法都基于積分曲線,例如積分曲線的直接渲染、源匯查詢、FTLE場(有限時間李亞普諾夫指數(shù)場)計算、以及其他一些專門設(shè)計的可視化與分析方法。在非定常流場(即速度場隨時間變化)中,最常見的積分曲線是跡線(在流場中某位置放置一個無質(zhì)量的質(zhì)點(稱作初始種子點),讓其在速度場中運動,所形成的軌跡就是一條跡線);在定常流場(即速度場不隨時間變化)中,則對應(yīng)為流線(在流場中每一點上都與速度矢量相切的曲線稱為流線)。實際計算中,跡線和流線都是通過數(shù)值積分來求得,所以稱它們?yōu)榉e分曲線。
常見的流場可視化方法通常根據(jù)需要在不同的時間和位置放置種子點,并計算大量的跡線。對于較大的流場數(shù)據(jù),這個計算過程花費大量的時間代價,并且由于計算所得的跡線數(shù)據(jù)量太大,通常會將作為中間結(jié)果的跡線丟棄,這樣更加造成計算資源的浪費。為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種流場積分曲線的復(fù)用方法及系統(tǒng)。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種流場積分曲線的復(fù)用方法及系統(tǒng),通過該方法及系統(tǒng),能夠有效提高流場數(shù)據(jù)分析或可視化應(yīng)用時積分曲線的獲取效率。
為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:一種流場積分曲線的復(fù)用方法,包括以下步驟:
(1)獲取流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu);
(2)在所述空間網(wǎng)格結(jié)構(gòu)的所有網(wǎng)格點上放置初始種子點,計算每個種子點的積分曲線,并將所述積分曲線保存在存儲設(shè)備;所述積分曲線為跡線或流線;
(3)對所述流場數(shù)據(jù)進(jìn)行分析或可視化應(yīng)用時,在所述存儲設(shè)備中直接調(diào)用所需要的對應(yīng)網(wǎng)格點位置處的初始種子點的積分曲線。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用方法,步驟(1)中,所述空間網(wǎng)格結(jié)構(gòu)為規(guī)則網(wǎng)格,當(dāng)獲取的流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)為非規(guī)則網(wǎng)格時,在非規(guī)則網(wǎng)格的基礎(chǔ)上,構(gòu)建流場數(shù)據(jù)的規(guī)則空間網(wǎng)格結(jié)構(gòu);所述規(guī)則網(wǎng)格為二維規(guī)則網(wǎng)格或三維規(guī)則網(wǎng)格。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用方法,步驟(2)中,將所述積分曲線保存在存儲設(shè)備,包括:
2.1)將所述空間網(wǎng)格結(jié)構(gòu)的空間區(qū)域進(jìn)行劃分,劃分為多個子空間;
2.2)建立每個子空間的索引,將每個子空間中所包含的初始種子點對應(yīng)的積分曲線與其子空間的索引關(guān)聯(lián)保存于存儲設(shè)備中。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用方法,當(dāng)所述空間網(wǎng)格結(jié)構(gòu)為二維規(guī)則網(wǎng)格時,將所述積分曲線保存在存儲設(shè)備,包括:
1)以所述二維規(guī)則網(wǎng)格的整個區(qū)域作為四叉樹的根節(jié)點,建立二維空間網(wǎng)格的四叉樹結(jié)構(gòu),將所述二維規(guī)則網(wǎng)格的空間劃分為多個二維子空間,四叉樹結(jié)構(gòu)的每個葉子節(jié)點對應(yīng)一個二維子空間;
2)建立四叉樹結(jié)構(gòu)的每一個葉子節(jié)點的索引,將每一個葉子節(jié)點對應(yīng)的二維子空間所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存于存儲設(shè)備中;
當(dāng)所述空間網(wǎng)格結(jié)構(gòu)為三維規(guī)則網(wǎng)格時,將所述積分曲線保存在存儲設(shè)備,包括:
①以所述三維規(guī)則網(wǎng)格的整個區(qū)域作為八叉樹的根節(jié)點,建立三維規(guī)則網(wǎng)格的八叉樹結(jié)構(gòu),將所述三維規(guī)則網(wǎng)格的空間劃分為多個三維子空間,八叉樹結(jié)構(gòu)的每一個葉子節(jié)點對應(yīng)一個三維子空間;
②建立八叉樹結(jié)構(gòu)中每一個葉子節(jié)點的索引,將每一個葉子節(jié)點所對應(yīng)的三維子空間中所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存在存儲設(shè)備中。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用方法,步驟(2)中,將初始種子點對應(yīng)的積分曲線壓縮后保存在存儲設(shè)備中。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用方法,將所述空間網(wǎng)格結(jié)構(gòu)的空間區(qū)域劃分為多個子空間,包括:
a.設(shè)置積分曲線的壓縮比閾值;
b.將所述空間網(wǎng)格結(jié)構(gòu)進(jìn)行初次劃分,得到若干個子空間;
c.將每個子空間再次劃分為M個子空間;
d.對于每一個再次劃分的子空間,將劃分前的子空間中所包含的初始種子點對應(yīng)的積分曲線進(jìn)行壓縮,壓縮后的字節(jié)數(shù)記為N1,將劃分后的M子空間中所包含的初始種子點對應(yīng)的積分曲線分別進(jìn)行壓縮,M個壓縮后字節(jié)數(shù)之和記為N2,判斷N1與N2的比值是否小于或等于壓縮比閾值,若是,則所述二維規(guī)則網(wǎng)格或三維規(guī)則網(wǎng)格的空間劃分完成,再次劃分前的劃分結(jié)果為最終劃分結(jié)果,若否,則返回步驟c。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用方法,步驟(3)中,在所述存儲設(shè)備中直接調(diào)用所需要的對應(yīng)網(wǎng)格點對應(yīng)位置處的初始種子點的積分曲線,包括:
3.1)確定進(jìn)行分析或可視化應(yīng)用所指定的流場數(shù)據(jù)空間區(qū)域,以及在所述空間區(qū)域中放置初始種子點的空間密度;
3.2)在空間網(wǎng)格結(jié)構(gòu)的所有子空間中查找與所述空間區(qū)域相交的子空間;
3.3)根據(jù)所述與所述空間區(qū)域相交的子空間的索引查找存儲設(shè)備中關(guān)聯(lián)保存的積分曲線;
3.4)根據(jù)所述空間密度在查找到的積分曲線中提取出對應(yīng)的積分曲線。
一種流場積分曲線的復(fù)用系統(tǒng),包括:
空間網(wǎng)格結(jié)構(gòu)獲取模塊,用于獲取流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu);
積分曲線計算模塊,用于在所述空間網(wǎng)格結(jié)構(gòu)的所有網(wǎng)格點上放置初始種子點,計算每個種子點的積分曲線;所述積分曲線為跡線或流線;
積分曲線保存模塊,用于將所述積分曲線保存在存儲設(shè)備中;
積分曲線調(diào)用模塊,用于對所述流場數(shù)據(jù)進(jìn)行分析或可視化應(yīng)用時,在所述存儲設(shè)備中直接調(diào)用所需要的對應(yīng)網(wǎng)格點位置處的初始種子點的積分曲線。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用系統(tǒng),所述積分曲線保存模塊包括:
空間網(wǎng)格劃分單元,用于將所述空間網(wǎng)格結(jié)構(gòu)的空間區(qū)域進(jìn)行劃分,劃分為多個子空間;
曲線關(guān)聯(lián)存儲單元,用于建立每個子空間的索引,將每個子空間中所包含的初始種子點對應(yīng)的積分曲線與其子空間的索引關(guān)聯(lián)保存于存儲設(shè)備中。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用系統(tǒng),當(dāng)所述空間網(wǎng)格結(jié)構(gòu)為二維規(guī)則網(wǎng)格時,所述空間網(wǎng)格劃分單元,包括:
第一網(wǎng)格劃分子單元,用于以二維規(guī)則網(wǎng)格的整個區(qū)域作為四叉樹的根節(jié)點,建立二維空間網(wǎng)格的四叉樹結(jié)構(gòu),將所述二維規(guī)則網(wǎng)格的空間劃分為多個二維子空間,四叉樹結(jié)構(gòu)的每個葉子節(jié)點對應(yīng)一個二維子空間;
所述曲線關(guān)聯(lián)存儲單元包括:
第一關(guān)聯(lián)存儲子單元,用于建立四叉樹結(jié)構(gòu)的每一個葉子節(jié)點的索引,將每一個葉子節(jié)點對應(yīng)的二維子空間所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存于存儲設(shè)備中;
當(dāng)所述空間網(wǎng)格結(jié)構(gòu)為三維規(guī)則網(wǎng)格時,所述空間網(wǎng)格劃分單元,包括:
第二網(wǎng)格劃分子單元,用于以所述三維規(guī)則網(wǎng)格的整個區(qū)域作為八叉樹的根節(jié)點,建立三維規(guī)則網(wǎng)格的八叉樹結(jié)構(gòu),將所述三維規(guī)則網(wǎng)格的空間劃分為多個三維子空間,八叉樹結(jié)構(gòu)的每一個葉子節(jié)點對應(yīng)一個三維子空間;
所述曲線關(guān)聯(lián)存儲單元包括:
第二關(guān)聯(lián)存儲子單元,用于建立八叉樹結(jié)構(gòu)中每一個葉子節(jié)點的索引,將每一個葉子節(jié)點所對應(yīng)的三維子空間中所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存在存儲設(shè)備中。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用系統(tǒng),所述積分曲線保存模塊還包括:
積分曲線壓縮單元,用于將初始種子點對應(yīng)的積分曲線壓縮后保存在存儲設(shè)備中。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用系統(tǒng),所述空間網(wǎng)格劃分單元包括:
初次劃分子單元,用于將所述空間網(wǎng)格結(jié)構(gòu)進(jìn)行初次劃分,得到若干個子空間;
再次劃分子單元,用于將初次劃分子單元劃分得到的每個子空間再次劃分為M個子空間;
劃分結(jié)果確定子單元,用于對于每一個再次劃分的子空間,判斷將劃分前的子空間中所包含的初始種子點對應(yīng)的積分曲線進(jìn)行壓縮后的字節(jié)數(shù)N1與將劃分后的M子空間中所包含的初始種子點對應(yīng)的積分曲線分別進(jìn)行壓縮后的M個壓縮后的字節(jié)數(shù)之和N2的比值是否小于或等于壓縮比閾值,若是,則所述二維規(guī)則網(wǎng)格或三維規(guī)則網(wǎng)格的空間劃分完成,再次劃分前的劃分結(jié)果為最終劃分結(jié)果,若否,則進(jìn)入再次劃分子單元。
進(jìn)一步,如上所述的一種流場積分曲線的復(fù)用系統(tǒng),所述積分曲線調(diào)用模塊包括:
待分析區(qū)域確定單元,用于確定進(jìn)行分析或可視化應(yīng)用所指定的流場數(shù)據(jù)空間區(qū)域,以及在所述空間區(qū)域中放置初始種子點的空間密度;
子空間確定單元,用于在空間網(wǎng)格結(jié)構(gòu)的子空間中查找與所述空間區(qū)域相交的子空間;
積分曲線查找單元,用于根據(jù)所述與所述空間區(qū)域相交的子空間的索引查找存儲設(shè)備中關(guān)聯(lián)保存的積分曲線;
積分曲線提取單元,用于根據(jù)所述空間密度在查找到的積分曲線中提取出對應(yīng)的積分曲線。
本發(fā)明的有益效果在于:本發(fā)明所提供的流場積分曲線的復(fù)用方法及系統(tǒng),通過預(yù)先計算足夠多的積分曲線并保存下來,在之后的流場數(shù)據(jù)分析或可視化應(yīng)用中,直接根據(jù)流場分析或可視化應(yīng)用指定的區(qū)域空間,即可快速的獲取到對應(yīng)子空間內(nèi)對應(yīng)種子點的積分曲線,極大地較少了積分曲線的獲取時間,提高了處理效率,尤其適用于大規(guī)模流場數(shù)據(jù)的分析及可視化處理。
附圖說明
圖1為具體實施方式中提供的一種流場積分曲線的復(fù)用方法的流程圖;
圖2為具體實施方式中流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)劃分的流程圖;
圖3為具體實施方式中提供的一種流場積分曲線的復(fù)用系統(tǒng)的結(jié)構(gòu)框圖;
圖4為具體實施方式中積分曲線保存模塊的結(jié)構(gòu)框圖;
圖5為具體實施方式中空間網(wǎng)格劃分單元的結(jié)構(gòu)框圖;
圖6為實施例中三維規(guī)則網(wǎng)格結(jié)構(gòu)及初始種子點的放置示意圖。
具體實施方式
下面結(jié)合說明書附圖與具體實施方式對本發(fā)明做進(jìn)一步的詳細(xì)說明。
本發(fā)明所提供的流場積分曲線的復(fù)用方法及系統(tǒng),基本思路是預(yù)先計算后續(xù)需要分析的流場數(shù)據(jù)的足夠多的積分曲線并存儲下來,在之后的分析或可視化中,直接從所存的數(shù)據(jù)中提取所需的積分曲線即可。
圖1示出了本實施方式中提供的一種流場積分曲線的復(fù)用方法的流程圖,由圖中可以看出,該方法主要可以包括以下三個步驟:
步驟S100:獲取流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu);
對于后續(xù)需要進(jìn)行分析或者可視化應(yīng)用的流場數(shù)據(jù),首先獲取其空間網(wǎng)格結(jié)構(gòu)。一般來說,流場數(shù)據(jù)所定義的空間通常表示為二維或者三維規(guī)則網(wǎng)格,如直線網(wǎng)格(rectilinear grid)、矩形網(wǎng)格(erctilinear grid)等,也有可能是曲線網(wǎng)格(curvilinear grid)或者非結(jié)構(gòu)網(wǎng)格(unstructured grid)。
本實施方式中,所述空間網(wǎng)格結(jié)構(gòu)為規(guī)則網(wǎng)格,當(dāng)獲取的流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)為非規(guī)則網(wǎng)格時,在非規(guī)則網(wǎng)格的基礎(chǔ)上,構(gòu)建流場數(shù)據(jù)的規(guī)則空間網(wǎng)格結(jié)構(gòu);所述規(guī)則網(wǎng)格為二維規(guī)則網(wǎng)格或三維規(guī)則網(wǎng)格。
如果流場數(shù)據(jù)本身就已經(jīng)有規(guī)則網(wǎng)格結(jié)構(gòu),可以直接采用其規(guī)則網(wǎng)格結(jié)構(gòu)即可,如果流場數(shù)據(jù)本身的網(wǎng)格結(jié)構(gòu)為非規(guī)則網(wǎng)格,只要其數(shù)據(jù)本身所在的空間是三維空間,就可以構(gòu)建一套流場數(shù)據(jù)的規(guī)則網(wǎng)格,具體構(gòu)建方式采用現(xiàn)有流場數(shù)據(jù)的空間網(wǎng)格構(gòu)建方式即可。
步驟S200:在流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)的所有網(wǎng)格點上放置初始種子點,計算每個種子點的積分曲線并保存;
在流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)的所有網(wǎng)格點上放置初始種子點,計算每個種子點的積分曲線,并將所述積分曲線保存在存儲設(shè)備;所述積分曲線為跡線或流線。
所述積分曲線為初始種子點的跡線或流線,在非定常流場(即速度場隨時間變化)中,最常見的積分曲線是跡線,在定常流場(即速度場不隨時間變化)中,則對應(yīng)為流線。所述初始種子點,即在流場中某位置放置一個無質(zhì)量的質(zhì)點,讓其在速度場中運動,所形成的軌跡就是一條跡線或流線。
本實施方式中,流場數(shù)據(jù)所定義的空間中密集地放置的初始種子點的積分曲線,軌跡應(yīng)盡量長,直至種子點走出所定義的空間停止。積分曲線的計算方法采用現(xiàn)有的跡線或流線的計算方式或者使用已有的可視化工具來直接生成,在實際應(yīng)用中,當(dāng)流場數(shù)據(jù)較小時,可以在單臺計算機(jī)上計算,當(dāng)數(shù)據(jù)較大時,可以在集群環(huán)境下并行計算。
本實施方式中,將所有初始種子點的積分曲線保存在存儲設(shè)備的方式為:
1)將所述空間網(wǎng)格結(jié)構(gòu)的空間區(qū)域進(jìn)行劃分,劃分為多個子空間;
2)建立每個子空間的索引,將每個子空間中所包含的初始種子點對應(yīng)的積分曲線與其子空間的索引關(guān)聯(lián)保存于存儲設(shè)備中。
通過該存儲方式,在后續(xù)查找積分曲線時,只需要根據(jù)子空間的索引即可在存儲設(shè)備中找到對應(yīng)的節(jié)分曲線。
對于不同的空間網(wǎng)格結(jié)構(gòu),本實施方式提供了兩種不同的積分曲線保存方式。當(dāng)所述空間網(wǎng)格結(jié)構(gòu)為二維規(guī)則網(wǎng)格時,將所述積分曲線保存在存儲設(shè)備的具體方式為:
1)以所述二維規(guī)則網(wǎng)格的整個區(qū)域作為四叉樹的根節(jié)點,建立二維空間網(wǎng)格的四叉樹結(jié)構(gòu),將所述二維規(guī)則網(wǎng)格的空間劃分為多個二維子空間,四叉樹結(jié)構(gòu)的每個葉子節(jié)點對應(yīng)一個二維子空間;
2)建立四叉樹結(jié)構(gòu)的每一個葉子節(jié)點的索引,將每一個葉子節(jié)點對應(yīng)的二維子空間所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存于存儲設(shè)備中。
當(dāng)所述空間網(wǎng)格結(jié)構(gòu)為三維規(guī)則網(wǎng)格時,將所述積分曲線保存在存儲設(shè)備的具體方式為:
①以所述三維規(guī)則網(wǎng)格的整個區(qū)域作為八叉樹的根節(jié)點,建立三維規(guī)則網(wǎng)格的八叉樹結(jié)構(gòu),將所述三維規(guī)則網(wǎng)格的空間劃分為多個三維子空間,八叉樹結(jié)構(gòu)的每一個葉子節(jié)點對應(yīng)一個三維子空間;
②建立八叉樹結(jié)構(gòu)中每一個葉子節(jié)點的索引,將每一個葉子節(jié)點所對應(yīng)的三維子空間中所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存在存儲設(shè)備中。
由于需要計算的初始種子點的積分曲線通常是原始流場數(shù)據(jù)的數(shù)百或數(shù)千倍,為了保證所有的流場積分曲線都能夠存儲下來,本實施方式中,在將積分曲線保存在存儲設(shè)備時,首先對初始種子點對應(yīng)的積分曲線進(jìn)行壓縮處理,再將壓縮后的結(jié)果與子空間的索引(或節(jié)點索引)關(guān)聯(lián)存儲。
在實際應(yīng)用中,具體的積分曲線的壓縮方式可以根據(jù)實際情況進(jìn)行選擇。例如,可以而將每個子空間中所包含的初始種子點對應(yīng)的積分曲線一起進(jìn)行壓縮,也可以子空間中所包含的每個初始種子點對應(yīng)的積分曲線一一進(jìn)行壓縮,將壓縮后的結(jié)果進(jìn)行合并后再壓縮。具體的壓縮算法也可以根據(jù)需要選擇,可以使用參數(shù)曲線對積分曲線進(jìn)行擬合的壓縮方法,如貝塞爾曲線擬合為;也可以是針對任意浮點數(shù)數(shù)組的壓縮算法,如fpzip算法,當(dāng)然也可以是多種壓縮算法組合使用。為了減少由于壓縮造成的積分曲線對應(yīng)的初始種子點在網(wǎng)格中的位置誤差,在進(jìn)行曲線壓縮時,一般需要設(shè)置壓縮誤差上限。
對于流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)的劃分,如果子空間的個數(shù)越少,每個子空間中所包含的初始種子點越多,對應(yīng)的積分曲線也就越多,進(jìn)行壓縮時壓縮效果越好(壓縮后的字節(jié)數(shù)更少),但是在后續(xù)調(diào)用需要的積分曲線時,解壓縮的時候會更慢,為了平衡這兩方面,本實施方式中還提供了一種空間網(wǎng)格結(jié)構(gòu)的劃分方式,該方式如圖2所示,流程如下:
a.設(shè)置積分曲線的壓縮比閾值;所述壓縮比閾值為經(jīng)驗值。
b.將所述空間網(wǎng)格結(jié)構(gòu)進(jìn)行初次劃分,得到若干個子空間;
c.將每個子空間再次劃分為M個子空間;
d.對于每一個再次劃分的子空間,將劃分前的子空間中所包含的初始種子點對應(yīng)的積分曲線進(jìn)行壓縮,壓縮后的字節(jié)數(shù)記為N1,將劃分后的M子空間中所包含的初始種子點對應(yīng)的積分曲線分別進(jìn)行壓縮,M個壓縮后字節(jié)數(shù)之和記為N2,判斷N1與N2的比值是否小于或等于壓縮比閾值,若是,則所述二維規(guī)則網(wǎng)格或三維規(guī)則網(wǎng)格的空間劃分完成,再次劃分前的劃分結(jié)果為最終劃分結(jié)果,若否,則返回步驟c。
該方式通過判斷一個子空間劃分前的空間中所包含的所有初始種子點對應(yīng)的積分曲線壓縮后的字節(jié)數(shù)與將該子空間劃分后對應(yīng)的所有子空間對應(yīng)的積分曲線分別壓縮后的若干個字節(jié)數(shù)之和的比值與設(shè)定的壓縮比閾值之間的關(guān)系,確定出是否需要在對子空間繼續(xù)進(jìn)行劃分。
例如,對于上述三位規(guī)則網(wǎng)格采用八叉樹結(jié)構(gòu)進(jìn)行劃分時,首先將真?zhèn)€三維網(wǎng)格空間劃分為8個第一子空間,分別記為空間S1-S8,之后通過上述方式判斷是否需要對8個第一子空間再次進(jìn)行劃分,例如對于空間S1,首先將其再次劃分為S11-S18,對S1中所包含的初始種子點對應(yīng)的積分曲線進(jìn)行壓縮,壓縮后的字節(jié)數(shù)記為T1,對S11-S18分別進(jìn)行壓縮,將8個壓縮后的字節(jié)數(shù)相加得到T2,如果T1/T2≤壓縮比閾值T,則判定空間S1不需要在劃分成S11-S18。
步驟S300:在存儲設(shè)備中直接調(diào)用所需要的積分曲線,完成流場數(shù)據(jù)的分析或可視化應(yīng)用。
對所述流場數(shù)據(jù)進(jìn)行分析或可視化應(yīng)用時,在所述存儲設(shè)備中直接調(diào)用所需要的對應(yīng)網(wǎng)格點位置處的初始種子點的積分曲線。
本實施方式中,在所述存儲設(shè)備中直接調(diào)用所需要的對應(yīng)網(wǎng)格點對應(yīng)位置處的初始種子點的積分曲線的具體方式為:
1)確定進(jìn)行分析或可視化應(yīng)用所指定的流場數(shù)據(jù)空間區(qū)域,以及在所述空間區(qū)域中放置初始種子點的空間密度;空間密度是指每隔幾個網(wǎng)格點放置一個初始種子點;
2)在空間網(wǎng)格結(jié)構(gòu)的所有子空間中查找與所述空間區(qū)域相交的子空間;兩個空間區(qū)域相交就是指兩個空間有相交的部分,對于二維網(wǎng)格區(qū)間,就是平面區(qū)域有相交的部分,對于三維網(wǎng)格區(qū)間,就是指長方體有相交的部分;
3)根據(jù)所述與所述空間區(qū)域相交的子空間的索引查找存儲設(shè)備中關(guān)聯(lián)保存的積分曲線;
4)根據(jù)所述空間密度在查找到的積分曲線中提取出對應(yīng)的積分曲線。
當(dāng)然,如果積分曲線是壓縮后保存在存儲設(shè)備中的,需要首先根據(jù)子空間的索引在存儲設(shè)備中查找到對應(yīng)的壓縮數(shù)據(jù),然后解壓縮后再提取出對應(yīng)的積分曲線。
其中,對流場數(shù)據(jù)的可視化應(yīng)用包括但不限于積分曲線的直接渲染、源匯查詢、FTLE場(有限時間李亞普諾夫指數(shù)場)計算、以及其他一些專門設(shè)計的可視化與分析方法。
采用本發(fā)明所提供的方法,能夠大大提高流場數(shù)據(jù)積分曲線的獲取效率能在資源有限的情況下處理大規(guī)模流場數(shù)據(jù)。
與圖1中所示的方法相對應(yīng),本實施方式中還提供了一種流場積分曲線的復(fù)用系統(tǒng),如圖3所示,該系統(tǒng)包括空間網(wǎng)格結(jié)構(gòu)獲取模塊100、積分曲線計算模塊200、積分曲線保存模塊300和積分曲線調(diào)用模塊400。其中:
空間網(wǎng)格結(jié)構(gòu)獲取模塊100,用于獲取流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu);
積分曲線計算模塊200,用于在所述空間網(wǎng)格結(jié)構(gòu)的所有網(wǎng)格點上放置初始種子點,計算每個種子點的積分曲線;所述積分曲線為跡線或流線;
積分曲線保存模塊300,用于將所述積分曲線保存在存儲設(shè)備中;
積分曲線調(diào)用模塊400,用于對所述流場數(shù)據(jù)進(jìn)行分析或可視化應(yīng)用時,在所述存儲設(shè)備中直接調(diào)用所需要的對應(yīng)網(wǎng)格點位置處的初始種子點的積分曲線。
本實施方式中,所述積分曲線保存模塊300可以包括空間網(wǎng)格劃分單元310和曲線關(guān)聯(lián)存儲單元320。
空間網(wǎng)格劃分單元310,用于將所述空間網(wǎng)格結(jié)構(gòu)的空間區(qū)域進(jìn)行劃分,劃分為多個子空間;
曲線關(guān)聯(lián)存儲單元320,用于建立每個子空間的索引,將每個子空間中所包含的初始種子點對應(yīng)的積分曲線與其子空間的索引關(guān)聯(lián)保存于存儲設(shè)備中。
當(dāng)流場數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)為二維規(guī)則網(wǎng)格時,所述空間網(wǎng)格劃分單元310可以包括第一網(wǎng)格劃分子單元311,所述曲線關(guān)聯(lián)存儲單元320可以包括第一關(guān)聯(lián)存儲子單元321。當(dāng)所述空間網(wǎng)格結(jié)構(gòu)為三維規(guī)則網(wǎng)格時,所述空間網(wǎng)格劃分單元310可以包括第二網(wǎng)格劃分子單元312,所述曲線關(guān)聯(lián)存儲單元320可以包括第二關(guān)聯(lián)存儲子單元322。如圖4所示。
第一網(wǎng)格劃分子單元311,用于以二維規(guī)則網(wǎng)格的整個區(qū)域作為四叉樹的根節(jié)點,建立二維空間網(wǎng)格的四叉樹結(jié)構(gòu),將所述二維規(guī)則網(wǎng)格的空間劃分為多個二維子空間,四叉樹結(jié)構(gòu)的每個葉子節(jié)點對應(yīng)一個二維子空間;
第一關(guān)聯(lián)存儲子單元321,用于建立四叉樹結(jié)構(gòu)的每一個葉子節(jié)點的索引,將每一個葉子節(jié)點對應(yīng)的二維子空間所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存于存儲設(shè)備中。
第二網(wǎng)格劃分子單元312,用于以所述三維規(guī)則網(wǎng)格的整個區(qū)域作為八叉樹的根節(jié)點,建立三維規(guī)則網(wǎng)格的八叉樹結(jié)構(gòu),將所述三維規(guī)則網(wǎng)格的空間劃分為多個三維子空間,八叉樹結(jié)構(gòu)的每一個葉子節(jié)點對應(yīng)一個三維子空間;
第二關(guān)聯(lián)存儲子單元322,用于建立八叉樹結(jié)構(gòu)中每一個葉子節(jié)點的索引,將每一個葉子節(jié)點所對應(yīng)的三維子空間中所包含的初始種子點對應(yīng)的積分曲線與其節(jié)點索引關(guān)聯(lián)保存在存儲設(shè)備中。
所述積分曲線保存模塊還可以包括積分曲線壓縮單元330。
積分曲線壓縮單元330,用于將初始種子點對應(yīng)的積分曲線壓縮后保存在存儲設(shè)備中。
本實施方式中,所述空間網(wǎng)格劃分單元310包括初次劃分子單元3101、再次劃分子單元3102和劃分結(jié)果確定子單元3103,如圖5所示。
初次劃分子單元3101,用于將所述空間網(wǎng)格結(jié)構(gòu)進(jìn)行初次劃分,得到若干個子空間;
再次劃分子單元3102,用于將初次劃分子單元劃分得到的每個子空間再次劃分為M個子空間;
劃分結(jié)果確定子單元3103,用于對于每一個再次劃分的子空間,判斷將劃分前的子空間中所包含的初始種子點對應(yīng)的積分曲線進(jìn)行壓縮后的字節(jié)數(shù)N1與將劃分后的M子空間中所包含的初始種子點對應(yīng)的積分曲線分別進(jìn)行壓縮后的M個壓縮后的字節(jié)數(shù)之和N2的比值是否小于或等于壓縮比閾值,若是,則所述二維規(guī)則網(wǎng)格或三維規(guī)則網(wǎng)格的空間劃分完成,再次劃分前的劃分結(jié)果為最終劃分結(jié)果,若否,則進(jìn)入再次劃分子單元3102。
所述積分曲線調(diào)用模塊400可以包括待分析區(qū)域確定單元410、子空間確定單元420、積分曲線查找單元430和積分曲線提取單元440。
待分析區(qū)域確定單元410,用于確定進(jìn)行分析或可視化應(yīng)用所指定的流場數(shù)據(jù)空間區(qū)域,以及在所述空間區(qū)域中放置初始種子點的空間密度;
子空間確定單元420,用于在空間網(wǎng)格結(jié)構(gòu)的子空間中查找與所述空間區(qū)域相交的子空間;
積分曲線查找單元430,用于根據(jù)所述與所述空間區(qū)域相交的子空間的索引查找存儲設(shè)備中關(guān)聯(lián)保存的積分曲線;
積分曲線提取單元440,用于根據(jù)所述空間密度在查找到的積分曲線中提取出對應(yīng)的積分曲線。
為更好的理解本發(fā)明,下面結(jié)合具體實施例對本發(fā)明進(jìn)行進(jìn)一步說明。
實施例
本實施例中的流場數(shù)據(jù)為颶風(fēng)伊莎貝爾數(shù)據(jù),颶風(fēng)伊莎貝爾數(shù)據(jù)的空間網(wǎng)格結(jié)構(gòu)定義在500×500×100的三維空間網(wǎng)格上,如圖6所示。
首先,在三維空間網(wǎng)格的所有網(wǎng)格點上放置初始種子點,如圖6中網(wǎng)格點出的圓點所示,讓這些種子點在颶風(fēng)伊莎貝爾數(shù)據(jù)的速度場中運動,并計算出每個種子點的積分曲線。
之后,將整個三維空間區(qū)域作為八叉樹的根節(jié)點,將三維空間網(wǎng)格按照八叉樹結(jié)構(gòu)劃分為多個三維子空間,并設(shè)置每個三維子空間的索引,八叉樹結(jié)構(gòu)的每個葉子節(jié)點對應(yīng)一個三維子空間(可以簡單的看作一個長方體)
將每個子空間中所包含的初始種子點對應(yīng)的積分曲線進(jìn)行壓縮,壓縮后的數(shù)據(jù)與子空間對應(yīng)的葉子節(jié)點的索引關(guān)聯(lián)。本實施例中將約160GB的積分曲線壓縮至8GB,并將各積分曲線上種子點的位置誤差(壓縮誤差)控制在1個格點以內(nèi)。
之后用戶可以啟動多次針對該流場數(shù)據(jù)的分析或者可視化應(yīng)用,根據(jù)八叉樹結(jié)構(gòu)中對應(yīng)的葉子節(jié)點的索引,從壓縮后的數(shù)據(jù)中解壓縮提取所需的積分曲線即可。例如,有應(yīng)用需要計算FTLE場,其需要在三個方向上每隔4個格點放置一個初始種子點,總共為125×125×25個種子點,此時,只需要從已經(jīng)存儲的數(shù)據(jù)中解壓縮提取到對應(yīng)位置處的種子點的積分曲線拿來進(jìn)行后續(xù)FTLE場的計算即可,大大提高了處理效率。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。