易彤 林茂春 侯紅軍 王向輝 桂子涵
(東方地球物理公司物探技術研究中心 河北省涿州市 072750)
在地球物理勘探過程中存在著種類繁多、關系復雜的數據,包括野外觀測、物探方法、地質解釋、測井解釋、非地震勘探等數據。實現勘探領域不同學科數據的統一管理,支持各種勘探應用軟件高效檢索和訪問這些數據,始終是地球物理勘探軟件系統的核心技術。當前勘探數據管理多使用關系數據庫與文件混合型數據庫管理方式[2],這種數據管理方式的主要問題在于脫離了勘探數據客觀存在的空間特性,簡接利用勘探數據的空間關系,從而造成數據模型關系復雜,導致數據檢索條件受管理模式制約,數據訪問效率低,并在一定程度上阻礙了大數據、人工智能等新興技術在地球物理勘探領域的發展。
基于這種情況,勘探軟件系統需要利用更加符合自身專業需求、功能更強大的外部數據庫來存儲和管理海量數據[3]。可喜的是,當前基于地理信息系統的空間數據庫不斷創新、發展,取得了長足進步。空間數據管理方式從早期文件管理發展到當前的面向對象關系數據庫管理,數據模型從傳統的三大經典模型發展到今天面向對象模型及面向實體數據模型,空間數據共享和互操作變得越來越容易。并且空間數據庫中的數據具有豐富的隱含信息,空間數據庫的數字高程模型[4](DEM 或TIN)除了載荷高度信息外,還隱含了地質巖性與構造方面的信息。地球物理勘探通過研究和觀測各種地球物理場的變化來探測地層巖性、地質構造等地質條件,其使用的數據利用空間數據庫管理技術有得天獨厚的優勢。
依據地球物理勘探所涉及的業務實際,地球物理勘探系統軟件(簡稱勘探軟件系統)是一個基于統一的數據模型、顯示和開發平臺,集網絡、并行、交互、批量于一體,既支持大型地震數據處理中心及網絡應用環境,也支持單機應用環境,同時系統具有良好的開放性,為廣大科研院所提供了高起點的應用地球物理功能的研發與集成平臺,可大大加快科研成果轉化[5]。其功能可分為地震資料處理系統,地震解釋系統,測井系統三大系統,每個系統包含相應的應用模塊,系統功能如圖1 所示。
勘探軟件系統采用經典三層結構設計[6],即應用層、業務邏輯層和數據服務層,相對應的軟件配置分別是應用軟件、模塊及其他中間件、數據庫管理系統。其中應用軟件包括地震剖面顯示軟件、底圖顯示軟件、三維可視軟件、調度子系統[7]等;模塊包括地震資料處理系統、地震解釋系統、測井解釋系統所涉及的科學計算模塊。系統利用空間數據庫技術,實現圖形數據和屬性數據的統一存儲[8]。軟件系統需要開發數據對象訪問接口實現勘探成果數據、參數數據的存儲和操作。為滿足勘探軟件系統的業務需求,系統把業務實現和業務表現分開,客戶端專門實現業務表現,業務邏輯部分使用模塊、動態鏈接庫方式完成勘探業務數據的處理和管理,并實現客戶端對數據層的訪問。

圖1:系統功能結構圖

圖2:空間數據庫組織圖
使用Linux 操作系統,采用Qt 作為GUI 界面開發工具[9],編寫的應用系統作為交互界面客戶端,充當用戶服務層。開發多視圖結構應用環境[10],充分利用窗口資源,提供便利交互操作,最大限度降低典型業務場景的數據處理工作,為用戶提供專注于專業操作的交互功能。

圖3:勘探空間數據層次結構圖
業務服務層使用C,C++,Fortran 編寫應用程序,程序以動態鏈接庫的形式提供服務。開發地球物理勘探GIS 中間件[11],其中封裝處理空間數據所需的所有功能。作為勘探GIS 中間件的開發者,開發以該平臺為基礎的應用系統,更能夠保證業務服務層與場景服務層的協同工作,發揮空間數據處理的優勢。
數據服務層的服務主要由Oracle 12c[12]以上版本或PostgreSQL數據庫管理系統[13]實現,這是業內公認的兩款Linux 服務器上性能優異的數據庫,他們和Linux 系統平臺及開發工具有更強的兼容性,同時具備出色的穩定性。
勘探數據庫用于存儲和管理以下數據:
(1)地面地形數據。
(2)工區、測線數據。
(3)面元網格、線道網格數據。
(4)測井數據。
(5)地質解釋構造圖數據。
(6)VSP 數據。
(7)重、磁、電數據。
基于空間數據庫的勘探軟件系統與其他同類軟件系統不同之處在于數據組織方式不同。數據不是通過人為定義的層級來組織數據,而是通過選定地理工作區域組織數據。當用戶給出所關注工作區域的多邊形各個頂點坐標后,系統將多邊形內部的數據按學科進行分類,并提供給用戶,用戶依據自己在系統中的角色和數據權限訪問數據。
勘探空間數據庫中的數據按存在形式可以分為空間數據、屬性數據、成果數據、參數數據四大類(圖2)。
(1)空間數據可分為管理空間數據、基礎空間數據。管理空間數據包括工區、測線數據,基礎空間數據包括觀測系統、網格、層位、斷層、井位、成圖等數據。
(2)屬性數據包括管理類的屬性數據、各要素層的屬性數據(地理底圖即包含多個要素層)。
(3)成果數據主要是指野外采集的地震數據,處理系統產生的地震數據、靜校正數據、速度建模數據,解釋系統產生的屬性與反演數據、地質構造數據,測井系統產生的子波數據、合成記錄數據等,這些數據受管理空間數據和基礎空間數據的約束。
(4)參數數據,這類數據指勘探數據處理過程中各種方法所使用的參數數據,主要包括處理流程、方法參數等。
數據服務層通過建立數據索引將以上幾類數據有機地連接起來,可以用圖2 來表示數據之間的關系。

表1:勘探空間數據層次詳細分類表
勘探數據庫存放的空間數據主要有地形圖、工區、測線、觀測系統、網格、地質構造、井位、重磁電等數據(圖3)。
表1 中所涉及空間類數據通過空間數據庫引擎,放在Oracle 或PostGreSQL 的GIS 數據庫中進行管理,數據庫還管理其他關系類型和文件形式的數據,這些數據可以依賴空間數據存在,也可以其它方式在數據庫中存儲。系統支持存放在外部數據庫或文件形式存放的大型空間數據庫的導入、疊置顯示、檢索管理。
4.1.1 地理底圖層
在地理底圖數據入庫時應進行投影變換統一為經緯度。該層定義用于顯示的坐標系統,其它空間數據入庫時統一轉換為該坐標系統定義的經緯度坐標,以保證各類數據底圖顯示時坐標空間上連續,同時保持較高精度方式及空間拓撲連續[14]。數據變換算法采用GDAL 開源庫實現[15]。
4.1.2 管理層

表2:工區要素基本屬性結構表

表3:測線要素基本屬性結構表

表4:層位要素基本屬性表

表5:斷層要素基本屬性表

表6:井位要素基本屬性表
在勘探空間數據庫中,工區、測線是區域篩選的管理節點,數據入庫時應進行投影變換統一為經緯度,以保證在坐標空間上連續,同時保持較高精度方式及空間拓撲連續。管理層定義了自己的坐標系統,當使用地圖網格坐標時使用該坐標系統轉換,確保管理層和依賴管理層的數據坐標系一致。這一層數據應包括區域多邊形頂點和測線拐點這兩層屬性信息。
4.1.3 觀測系統層
觀測系統層數據入庫時應進行投影變換統一為經緯度,以保證在坐標空間上連續,同時保持較高精度方式及空間拓撲連續。需要指出地震數據處理中的靜校正數據是多類型,多版本的成果數據,其數據層動態產生,因此應用中會有多個靜校正數據層。
4.1.4 網格層
網格層數據入庫時應進行投影變換統一為經緯度,以保證在坐標空間上連續,同時保持較高精度方式及空間拓撲連續。網格層用于管理柵格化后的勘探數據,例如層位數據網格化后(有CMP 線號、CMP 號后)就可以成為層位網格數據層。
4.1.5 測井層
井場數據入庫時應進行投影變換統一為經緯度,以保證在坐標空間上連續,同時保持較高精度方式及空間拓撲連續。每一個井場定義自己的坐標系統,該坐標系統用于定義每口井空間數據的地圖網格坐標。
勘探空間數據庫存儲的數據種類和數量很多,數據結構復雜,這里列舉出比較重要的幾個表格。如表2-表6 所示。
通過研究當前流行的空間數據庫設計方案,在結合勘探數據空間特性和數據結構特征的基礎上,提出了勘探空間數據庫的設計方案。此方案解決了建立勘探空間數據庫和通過勘探空間數據存儲、訪問各類勘探數據的問題,實現了勘探數據的空間數據庫管理??臻g數據技術作為當前數據庫技術最活躍的分支與知識獲取手段,能夠更好的推動地球物理勘探技術向智能化和集成化的方向發展,能夠為勘探開發和地質構造解釋提供更快捷、方便的數據訪問能力。