孔得雨,潘錫山,李蘭滿
(江蘇省海涂研究中心,江蘇 南京 210036)
內河航道是內河運輸業賴以存在的基礎和國家交通基礎設施的重要組成部分,具有典型的地理特征,擁有豐富的地表空間信息。正確、有利、高效地管理如此諸多的地物要素以及分析各要素的特性、河流深淺、水體流向、地形地貌等是科學管理航道的根本。傳統航道地質剖面圖的生成,需耗費大量時間手工繪制圖件,且準確度有限。然而根據已有鉆孔數據自動生成相關圖件則能夠節省大量的時間,實現比手工繪制更高的精度。
國內外對地質剖面圖的研究方面,Mallet[1]推出了輔助地質目標計算的地質目標計算機輔助設計計劃(以下簡稱“GOCAD”),初步開展了三維SEG/EAEG建模工程(SEM)。Ross等[2]基于GOCAD構建了區域水文地質以及土地利用管理的三維地質框架模型。孫明明等[3]基于MapGIS平臺自動繪制了工程地質剖面圖,然而在實現復雜地質體的判斷與繪制方面研究較淺。楊一鵬等[4]基于知識建立了地質剖面圖的自動生成器,實現了應用專家知識實現地質剖面圖的自動生成。
前人的研究成果為地質剖面圖的自動生成提供了一定的參考,但主要適用于一般松散層剖面的繪制,不太適合復雜地質體剖面的自動生成。本文結合航道管理可視化的需求,提出了一種基于點、線、面、鏈、鏈組的五級矢量數據模型和對應的拓撲結構,并對航道地質剖面圖的自動生成進行了設計與實現,能夠很好地滿足航道地質領域的特殊需求。
地質剖面生成算法總體可以歸結為兩種:橫向成圖、縱向成圖。
由于地層本質上都是橫向延展的條狀體,剖面橫向成圖指以橫向的地層延展為主,逐一檢測每個鉆孔從上到下的土層信息[5]。首先繪制第一、第二兩個鉆孔的最上土層,連接產生相應的三角形、四邊形等,并以相應的地層圖例填充;然后橫向延展,完成通過所有鉆孔的最上土層繪制;繪制完最頂層地層后同理依次向下繪制地層,最終完成剖面圖的繪制。具體如圖1所示,其中的數字代表了繪制地層的順序。

圖1 橫向繪制剖面圖算法的順序
鑒于橫向成圖對復雜地質的判斷比較復雜,縱向成圖主要以縱向的地層疊加為主。根據相鄰鉆孔之間深度相近的兩土層信息自頂向下逐層匹配,連接成三角形、四邊形等多邊形土層,并以相應的地層圖例填充。縱向完成兩個鉆孔間剖面繪制后,再橫向逐一自頂向下完成兩兩間鉆孔的縱向地層繪制。橫向鉆孔匹配完成后,即構建出一幅完整的地質縱剖面圖。圖2為縱向繪制剖面圖的示意圖,其中數字代表了繪制地層的順序。

圖2 縱向繪制剖面圖算法的順序
矢量數據模型是基于坐標記錄的方法盡可能精確地表示點、線和多邊形等地理實體的模型,能夠準確定義任意位置、長度和面積,包括基礎矢量圖元、矢量鏈和組幾個方面。
矢量點(VectorPoint)是矢量數據模型中最基本的圖元。矢量點的數據信息主要包括該點的顯示數據和物理數據。物理數據是矢量點的原始數據,是某個地層形態的某個層底坐標。
矢量線段(VectorLine)是由兩個矢量點連接而成的線段。矢量線段在矢量數據鏈內代表了某個地層的一條邊界線,在航道信息中則可表示航道中心線、航道邊坡線、孔間距離等。
矢量多邊形(VectorPolygon)是由3個及以上的矢量點首位循環鏈接而形成的多邊形。矢量多邊形代表了鉆孔之間某塊地層的矢量圖形信息[6]。
矢量數據模型的基本圖元包括點、線、多邊形的三級結構。
矢量鏈是指相鄰兩鉆孔間自頂向下地層矢量多邊形在垂直方向上的有序組合,數據結構如圖3所示。矢量鏈是系統中構成航道橫、縱剖面、鉆孔柱狀圖等的矢量數據。

圖3 矢量鏈數據結構
矢量鏈組(VectorLists)是指由多條矢量數據鏈橫向依次鏈接而成的組。
縱向分層剖面的構建比較復雜,目前的算法并不能夠實現復雜地質分層的準確表達。為了滿足工程應用的需求,可對生成的剖面圖進行局部的細微調整[7]。鑒于可視化的地質剖面圖與剖面數據結構存在對應的映射關系,可在圖形上選取基本的幾何元素如矢量點、矢量線段、矢量多邊形等,通過移動鼠標的拖曳對矢量圖形進行局部微調整,并將圖形化的結果、修改后的矢量數據更新到數據庫中,完成局部熱操作的決策功能。屏幕熱調整內部邏輯結構如圖4所示。

圖4 屏幕熱調整內部邏輯結構
上層數據映射邏輯主要完成屏幕熱區與系統中邏輯矢量線、矢量面等的對應關系映射,選擇了一個屏幕多邊形時即是選擇了內存中對應的一個矢量多邊形邏輯結構。在用戶選擇對選中屏幕多邊形進行調整時,觸發數據邏輯映射下的矢量多邊形邏輯結構的修改,即是直接對矢量邏輯結構的修改,修改完成后,由底層數據映射邏輯完成對鉆孔知識庫的更新,實現屏幕地質剖面的完全熱調整。
基于鉆孔數據的地質剖面建模子系統的模型為3層結構,分別是表現層、應用邏輯層和數據服務層,如圖5所示。

圖5 剖面建模邏輯模型
數據層主要提供鉆孔數據和剖面成圖的數據,邏輯數據源直接提供基于點、線、面、鏈、鏈組的矢量邏輯數據結構,為剖面的生成與調整提供直接的映射與支撐。
邏輯層主要是利用縱向分層剖面算法對剖面的生成、繪制、平面熱調整程序邏輯進行封裝的程序邏輯實現,以插件dll的形式進行動態的加載與調用。
表現層主要提供剖面成圖后的基本圖形展現,包括鉆孔柱狀圖表、航道地質橫、縱剖面圖的直觀圖形展現,直觀的圖形熱調整及剖面的導入導出等功能。
航道地質剖面圖自動生成系統采用Arc GIS Server開發,ASP.NET C#作為編程語言,Microsoft Visual Studio 2008作為開發環境,Oracle 11G標準版作為數據庫。
航道縱剖面圖的生成是根據本文提出的縱向分層剖面算法的思想得以實現的,利用點、線、面、鏈、鏈組的拓撲結構進行繪制。在選擇繪制之前,需要選擇鉆孔投影方式,不同的投影方式生成不同的航道縱剖面圖。直連表示直接將鉆孔連接,投影表示將鉆孔坐標投影到航道中心線上再繪制。利用直連方式繪制出的航道縱剖面圖,如圖6所示。

圖6 航道縱剖面
航道橫剖面圖反映了垂直于航道中心線的橫切面地質情況。在本系統中,是在選擇了一個已有航道縱剖面后,在GIS圖層上對航道中心線進行任意方向上的交叉切割,得到某一切割的航道橫剖面,如圖7所示。

圖7 航道橫剖面
剖面圖采取熱修改調整時,必須保證整體數據結構的正確性不會受到任一圖元的變化而遭到破壞。本文設計的基于點、線、面、鏈、鏈組的三級拓撲結構能很好地滿足這一點,對剖面進行熱調整的過程實際上是選取第i條鏈第j個多邊形第k條線段或左、右端點,或第i條鏈第j個多邊形第k個頂點。無論對點、線段或多邊形進行調整都對應鉆孔剖面的一個邏輯數據結構,對屏幕剖面進行熱調整的過程即是對對應的剖面邏輯結構進行修改的過程,具體如圖8所示。

圖8 剖面屏幕熱調整
在分析了傳統的剖面成圖算法后,本研究設計了一種點、線、面、鏈、鏈組的五級矢量數據模型,提出了地質剖面的縱向分層剖面算法,給出了地質剖面模塊的邏輯設計及剖面數據的存取設計,介紹了航道縱、橫剖面圖的自動繪制和屏幕熱調整的具體實現過程,實現了航道縱、橫剖面的自動生成與繪制,并給出了地質剖面屏幕熱調整的機理和解決方案,為航道管理提供了高效的決策支撐。
下一步,筆者將二維地質剖面圖的自動繪制與熱調整研究上升到三維空間,研究在三維空間中,地質剖面如何展現、數據結構如何組織設計、地質剖面成圖的算法、成圖方式和投影映射方法。