比較Mike Flood和SMS軟件網(wǎng)格文件格式,提供兩種格式文件互相轉(zhuǎn)換的方法,在科研或工作中發(fā)揮各自優(yōu)點,以便更加靈活地使用軟件。
Mike Flood;SMS;網(wǎng)格;轉(zhuǎn)換方法
Mike Flood和SMS軟件網(wǎng)格文件的轉(zhuǎn)換方法
□張 昊
2017-11-20
張 昊,男,漢族,河北省水利水電第二勘測設(shè)計研究院,工程師。
Mike Flood、SMS軟件是比較流行的洪水模擬軟件。在網(wǎng)格生成、網(wǎng)格結(jié)點重編號、插值算法的選擇方面,SMS軟件的可操作性、可采用手段均要優(yōu)于Mike軟件,生成網(wǎng)格的質(zhì)量、美觀程度也較好。同時由于網(wǎng)格質(zhì)量往往影響到計算精度和時間代價,因此建模時實現(xiàn)兩種網(wǎng)格文件互轉(zhuǎn)具有一定應(yīng)用意義。
Mike網(wǎng)格生成器主要包括矩形和非結(jié)構(gòu)化網(wǎng)格編輯器,其中非結(jié)構(gòu)化網(wǎng)格編輯器可生成矩形網(wǎng)格、三角網(wǎng)格、矩形及三角混合網(wǎng)格。一個非結(jié)構(gòu)化網(wǎng)格由一定數(shù)量節(jié)點和單元格組成,均由各自信息表定義其屬性。非結(jié)構(gòu)化網(wǎng)格文件生產(chǎn)周期包括導(dǎo)入模型區(qū)外邊界、定義邊界條件、導(dǎo)入地形散點數(shù)據(jù)等步驟,同時Mike軟件提供了線性插值和自然鄰近插值兩種算法,根據(jù)散點數(shù)據(jù)質(zhì)量合理選用算法,并優(yōu)化插值次序也可達到較好插值效果。插值后輸出文件為mesh格式,列出了節(jié)點和單元格列表。
數(shù)據(jù)結(jié)構(gòu)主要包括節(jié)點和單元格的屬性信息,具體概括為:
節(jié)點標題行:100079代表條目類型是高程,其后的1000代表高程單位即在z坐標單位默認為m;其后為節(jié)點數(shù)量和坐標系類型,如“NON-UTM”為軟件識別坐標系。
節(jié)點屬性行:每一行代表著一個節(jié)點。包含了節(jié)點的ID編號、X坐標、Y坐標、Z坐標及邊界屬性編碼。邊界屬性編碼為0、1或大于1的數(shù)值,以區(qū)分內(nèi)部節(jié)點、水陸邊界和自定義開邊界。
單元格標題行:包含單元格的數(shù)量、所有單元格節(jié)點最大數(shù)量、類型代碼。三角形單元格節(jié)點最大數(shù)量為3、四邊形為4、混合單元格為4;三角形單元格類型代碼為21,四邊形單元格為25、混合單元格為25。
單元格屬性行:每一行代表一個單元格。包括了單元格的ID編號、組成該單元格的節(jié)點ID編號,混合網(wǎng)格中,對于某些單元格的構(gòu)成節(jié)點數(shù)少于單元格標題行中的最大數(shù)量,則在最后一列用0值來進行補足剩余的節(jié)點號,即是說標題行中的最大構(gòu)成節(jié)點數(shù)量限制了每個單元格屬性行的列數(shù)。
SMS軟件網(wǎng)格的生成與Mike相似,整體而言,SMS軟件對漸變網(wǎng)格的處理、美觀程度等方面更顯優(yōu)越,且可選用的內(nèi)置插值算法相對較多。由于兩種軟件網(wǎng)格文件互相轉(zhuǎn)換后完全可以正常計算,所以實現(xiàn)網(wǎng)格的互轉(zhuǎn)具有一定應(yīng)用意義。SMS的網(wǎng)格文件包括grd、geo和2dm。grd文件格式相對簡單,主要分為3部分,第一部分為網(wǎng)格節(jié)點的數(shù)量、編號、坐標及高程信息;第二部分為單元格的屬性信息,包括編號、組成網(wǎng)格的節(jié)點數(shù)量和節(jié)點ID;第三部分為邊界條件屬性信息,包括開、閉邊界的數(shù)量、組成邊界的節(jié)點數(shù)量和ID。geo文件主要理解其中Card標識所代表的含義,如GE Card標識為單元格,包含網(wǎng)格連接等屬性信息,GNN Card標識為節(jié)點,包含節(jié)點坐標、高程等屬性信息,了解了Card的含義基本也就了解了文件每行所代表的意義。轉(zhuǎn)換geo文件時還應(yīng)考慮一并處理bc邊界文件。2dm則更為直觀,主要包含了節(jié)點、網(wǎng)格、邊界等信息,如ND(節(jié)點)、E3T(三角網(wǎng)格)、E4QE8Q(四點或八點矩形網(wǎng)格),文件每行代表節(jié)點或單元格相關(guān)屬性信息。
由于Mike和SMS軟件生成網(wǎng)格文件均為文本格式,不需調(diào)用接口dll即可進行識別操作,給格式轉(zhuǎn)換提供了便利。
從各格式文件中依次讀取相應(yīng)節(jié)點、單元格、邊界條件信息,后臺轉(zhuǎn)換成符合各自軟件規(guī)范的文件格式,對于轉(zhuǎn)換成的geo/2dm文件,還應(yīng)添加相應(yīng)的標題行和Card標識。
本文利用Visual Basic語言,實現(xiàn)了從mesh文件向grd/geo/2dm文件的互相轉(zhuǎn)換,對于geo文件在轉(zhuǎn)換時應(yīng)包含邊界文件bc;且由于涉及網(wǎng)格數(shù)量較多,從處理速度的角度,建議引用Dic?tionary對象。通過實際操作,網(wǎng)格數(shù)量尺度在10萬左右花費時間代價在40s左右。
Mike和SMS作為兩款較為優(yōu)秀的水動力學模擬軟件,在實際應(yīng)用中具有各自優(yōu)勢。研究兩種軟件的文件格式,一方面通過交互可簡化模型建模流程,另一方面模型模擬文件也可程序化實現(xiàn)相互轉(zhuǎn)換,如Mike21模型文件只需從中讀取相關(guān)數(shù)據(jù)如建筑物、邊界、網(wǎng)格等信息,通過程序化可直接生成SMS軟件數(shù)據(jù)格式,為模型的交互分析驗證提供了便利途徑,可顯著提高建模的效率。□