張敏 史紀強 任恩茂 王川川 苗勇
Petrel軟件是一種廣泛應用于油氣勘探和開發領域的三維地質建模軟件。該軟件擁有強大的數據處理和可視化功能,可以幫助用戶更加直觀地了解地質情況,并進行精確的分析和預測。但是,在實際應用中,綜合解釋用戶經常要將特定數據庫中的數據集成到Petrel中進行進一步的研究和應用。目前油田已逐步建成包括生產動態、地震、錄井、測井、試油等高度共享并兼顧油田生產、科研、管理、決策的勘探數據庫。因此,如何實現Petrel軟件與勘探數據庫之間的數據交互,以獲取更加全面和準確的數據信息成為了一個重要的問題。本文基于Ocean二次開發平臺,設計了一個數據通道插件,用于實現Petrel軟件與勘探數據庫之間的數據交互。
Ocean是一個以加速勘探開發軟件輸出成果為目的的開放式API軟件開發框架,用戶可以利用Ocean這一軟件開發框架來自由地設計新的應用插件,是用戶進行應用軟件開發的工具。Ocean for Petrel是專門針對Petrel的二次開發平臺,開發人員可以借助Petrel自身強大的數據管理以及展示功能開發插件,插件依托于Petrel的運行環境,實現用戶的一些特定的需求或算法。Ocean提供了豐富的API接口和組件庫,使得用戶可以自定義各種功能模塊,以滿足特定的需求。
Petrel數據模型的分析從其涉及的專業領域入手,按照專業領域分析其數據類型及數據字段,大體分為測井曲線數據模型、井分層點數據模型、層解釋結論(沉積相)數據模型、射孔數據模型、錄井巖性解釋數據模型、圈閉數據模型、儲量(有效厚度)數據模型、地震體數據模型、地震層位解釋數據模型、地震斷層解釋數據模型、結構化規則網格面數據模型、基于Pillar的斷層面數據模型、基于Pillar的角點網格體模型、屬性體數據模型等。
結合勘探數據庫的數據模型,從對象組織方式、命名差異、屬性值差異、專業應用差異等方面,尋找模型之間的差異點,探討兩模型之間差異的解決方法,制定數據映射規則。由于Petrel軟件和勘探數據庫中數據的組織方式不同,因此在進行數據交互時,需進行相應的數據格式轉換,以便Petrel軟件能夠正確地解析和顯示數據。

系統以微服務架構方式進行開發,從切面觀察每個應用服務進行垂直獨立開發,根據職責劃分層次,從上而下分為四個層次,分別為Web 層、服務接口層、業務邏輯層及數據訪問層。在Petrel數據通道插件開發中,采用Ocean框架實現與Petrel系統的無縫對接,以plug-in組件的方式嵌入到Petrel系統中,實現Petrel與勘探數據庫之間的高效對接。
(一)數據服務接口
面向勘探數據庫,采用WCF服務和JSON報文格式,定義數據接口規范,使用數據服務接口連接到數據庫,實現數據的查詢、提取等功能。經過剔除無效信息等數據處理,最后生成JSON格式的數據。通過對業務需求的調研和提煉,提出了面向業務研究的數據服務接口設計方案,大致分為地震類、鉆井類、錄井類、測井類、試油類、分析化驗類、油藏開發類等。
(二)數據格式轉換
在設計數據通道插件時,針對數據格式轉換的問題,采用編寫代碼方式實現,將獲取到的數據按照Petrel軟件可識別格式進行解讀、格式轉換等操作。提供數據服務和客戶端的開發模板,建立起勘探數據庫數據通道,加載數據包括地震數據、井數據、斷層、層位、建模數據等。
(三)測井曲線的提取
測井曲線包括聲波時差、自然電位曲線等多條曲線,并且在勘探數據庫中,存在測井曲線分段存儲為多個文件的情況,所以本插件實現了對多種測井曲線及多段曲線單獨處理及加載的功能。
(四)巖性數據加載
由于不同綜合解釋人員在使用巖性分類時的要求不同,因此在本插件設計時,將勘探數據庫中上百種巖性數據按照四種分類方式進行劃分。分別為三類、五類、七類和九類。用戶可自行在下拉列表中選擇所需巖性分類。對于部分巖性數據從數據庫下載后,出現的上下層段深度重疊交叉的情況,插件分別針對頂底深區間覆蓋和交叉等情況進行了處理。

綜合解釋人員在井位、致密油井位、產能建設等多項工作多個地震工區中,應用本插件加載數據,包括井口、井斜、測井曲線、井分層、斷層、巖性數據等,加載數據格式正確,大大縮短了數據收集工作的時間,提高了效率。
基于Ocean二次開發平臺的數據通道插件使用數據服務接口獲取勘探數據庫中的數據,應用0cean在數據處理領域中提供的各類服務、組件和公共圖形用戶接口,實現了在Petrel中直接查詢、提取數據庫中數據的功能,改變了傳統數據加載模式,大大提高了數據處理加載的效率。同時,該插件還可以擴展其他數據源,滿足不同領域的需求。