張敏 史紀(jì)強 任恩茂 王川川 苗勇
Petrel軟件是一種廣泛應(yīng)用于油氣勘探和開發(fā)領(lǐng)域的三維地質(zhì)建模軟件。該軟件擁有強大的數(shù)據(jù)處理和可視化功能,可以幫助用戶更加直觀地了解地質(zhì)情況,并進行精確的分析和預(yù)測。但是,在實際應(yīng)用中,綜合解釋用戶經(jīng)常要將特定數(shù)據(jù)庫中的數(shù)據(jù)集成到Petrel中進行進一步的研究和應(yīng)用。目前油田已逐步建成包括生產(chǎn)動態(tài)、地震、錄井、測井、試油等高度共享并兼顧油田生產(chǎn)、科研、管理、決策的勘探數(shù)據(jù)庫。因此,如何實現(xiàn)Petrel軟件與勘探數(shù)據(jù)庫之間的數(shù)據(jù)交互,以獲取更加全面和準(zhǔn)確的數(shù)據(jù)信息成為了一個重要的問題。本文基于Ocean二次開發(fā)平臺,設(shè)計了一個數(shù)據(jù)通道插件,用于實現(xiàn)Petrel軟件與勘探數(shù)據(jù)庫之間的數(shù)據(jù)交互。
Ocean是一個以加速勘探開發(fā)軟件輸出成果為目的的開放式API軟件開發(fā)框架,用戶可以利用Ocean這一軟件開發(fā)框架來自由地設(shè)計新的應(yīng)用插件,是用戶進行應(yīng)用軟件開發(fā)的工具。Ocean for Petrel是專門針對Petrel的二次開發(fā)平臺,開發(fā)人員可以借助Petrel自身強大的數(shù)據(jù)管理以及展示功能開發(fā)插件,插件依托于Petrel的運行環(huán)境,實現(xiàn)用戶的一些特定的需求或算法。Ocean提供了豐富的API接口和組件庫,使得用戶可以自定義各種功能模塊,以滿足特定的需求。
Petrel數(shù)據(jù)模型的分析從其涉及的專業(yè)領(lǐng)域入手,按照專業(yè)領(lǐng)域分析其數(shù)據(jù)類型及數(shù)據(jù)字段,大體分為測井曲線數(shù)據(jù)模型、井分層點數(shù)據(jù)模型、層解釋結(jié)論(沉積相)數(shù)據(jù)模型、射孔數(shù)據(jù)模型、錄井巖性解釋數(shù)據(jù)模型、圈閉數(shù)據(jù)模型、儲量(有效厚度)數(shù)據(jù)模型、地震體數(shù)據(jù)模型、地震層位解釋數(shù)據(jù)模型、地震斷層解釋數(shù)據(jù)模型、結(jié)構(gòu)化規(guī)則網(wǎng)格面數(shù)據(jù)模型、基于Pillar的斷層面數(shù)據(jù)模型、基于Pillar的角點網(wǎng)格體模型、屬性體數(shù)據(jù)模型等。
結(jié)合勘探數(shù)據(jù)庫的數(shù)據(jù)模型,從對象組織方式、命名差異、屬性值差異、專業(yè)應(yīng)用差異等方面,尋找模型之間的差異點,探討兩模型之間差異的解決方法,制定數(shù)據(jù)映射規(guī)則。由于Petrel軟件和勘探數(shù)據(jù)庫中數(shù)據(jù)的組織方式不同,因此在進行數(shù)據(jù)交互時,需進行相應(yīng)的數(shù)據(jù)格式轉(zhuǎn)換,以便Petrel軟件能夠正確地解析和顯示數(shù)據(jù)。
系統(tǒng)以微服務(wù)架構(gòu)方式進行開發(fā),從切面觀察每個應(yīng)用服務(wù)進行垂直獨立開發(fā),根據(jù)職責(zé)劃分層次,從上而下分為四個層次,分別為Web 層、服務(wù)接口層、業(yè)務(wù)邏輯層及數(shù)據(jù)訪問層。在Petrel數(shù)據(jù)通道插件開發(fā)中,采用Ocean框架實現(xiàn)與Petrel系統(tǒng)的無縫對接,以plug-in組件的方式嵌入到Petrel系統(tǒng)中,實現(xiàn)Petrel與勘探數(shù)據(jù)庫之間的高效對接。
(一)數(shù)據(jù)服務(wù)接口
面向勘探數(shù)據(jù)庫,采用WCF服務(wù)和JSON報文格式,定義數(shù)據(jù)接口規(guī)范,使用數(shù)據(jù)服務(wù)接口連接到數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)的查詢、提取等功能。經(jīng)過剔除無效信息等數(shù)據(jù)處理,最后生成JSON格式的數(shù)據(jù)。通過對業(yè)務(wù)需求的調(diào)研和提煉,提出了面向業(yè)務(wù)研究的數(shù)據(jù)服務(wù)接口設(shè)計方案,大致分為地震類、鉆井類、錄井類、測井類、試油類、分析化驗類、油藏開發(fā)類等。
(二)數(shù)據(jù)格式轉(zhuǎn)換
在設(shè)計數(shù)據(jù)通道插件時,針對數(shù)據(jù)格式轉(zhuǎn)換的問題,采用編寫代碼方式實現(xiàn),將獲取到的數(shù)據(jù)按照Petrel軟件可識別格式進行解讀、格式轉(zhuǎn)換等操作。提供數(shù)據(jù)服務(wù)和客戶端的開發(fā)模板,建立起勘探數(shù)據(jù)庫數(shù)據(jù)通道,加載數(shù)據(jù)包括地震數(shù)據(jù)、井?dāng)?shù)據(jù)、斷層、層位、建模數(shù)據(jù)等。
(三)測井曲線的提取
測井曲線包括聲波時差、自然電位曲線等多條曲線,并且在勘探數(shù)據(jù)庫中,存在測井曲線分段存儲為多個文件的情況,所以本插件實現(xiàn)了對多種測井曲線及多段曲線單獨處理及加載的功能。
(四)巖性數(shù)據(jù)加載
由于不同綜合解釋人員在使用巖性分類時的要求不同,因此在本插件設(shè)計時,將勘探數(shù)據(jù)庫中上百種巖性數(shù)據(jù)按照四種分類方式進行劃分。分別為三類、五類、七類和九類。用戶可自行在下拉列表中選擇所需巖性分類。對于部分巖性數(shù)據(jù)從數(shù)據(jù)庫下載后,出現(xiàn)的上下層段深度重疊交叉的情況,插件分別針對頂?shù)咨顓^(qū)間覆蓋和交叉等情況進行了處理。
綜合解釋人員在井位、致密油井位、產(chǎn)能建設(shè)等多項工作多個地震工區(qū)中,應(yīng)用本插件加載數(shù)據(jù),包括井口、井斜、測井曲線、井分層、斷層、巖性數(shù)據(jù)等,加載數(shù)據(jù)格式正確,大大縮短了數(shù)據(jù)收集工作的時間,提高了效率。
基于Ocean二次開發(fā)平臺的數(shù)據(jù)通道插件使用數(shù)據(jù)服務(wù)接口獲取勘探數(shù)據(jù)庫中的數(shù)據(jù),應(yīng)用0cean在數(shù)據(jù)處理領(lǐng)域中提供的各類服務(wù)、組件和公共圖形用戶接口,實現(xiàn)了在Petrel中直接查詢、提取數(shù)據(jù)庫中數(shù)據(jù)的功能,改變了傳統(tǒng)數(shù)據(jù)加載模式,大大提高了數(shù)據(jù)處理加載的效率。同時,該插件還可以擴展其他數(shù)據(jù)源,滿足不同領(lǐng)域的需求。