彭 博,譚成仟,張 奔,孫 遙,楊 澤
(1.西安石油大學地球科學與工程學院,陜西西安 710065;2.陜西省油氣成藏地質學重點實驗室,陜西西安 710065)
Forward平臺采用WellBase(Well Basic Analysis System Environment)作為數據底層,即WIS數據,國內大量的測井數據以WIS格式存放、處理和解釋。Forward平臺支持將多種數據解編為WIS格式的功能[1]。李忠新[2]詳細介紹了多種測井數據格式之間轉換技術的進展及對未來的展望,胡振平[3]等編寫的測井格式軟件能對13個主流的測井數據格式進行轉換。
在石油的勘探開發中,往往涉及到幾百個乃至上千個WIS文件的處理[4,5],前人主要針對不同測井數據格式之間的轉換[3]和WIS測井數據中各種二維通道數據的格式轉換[1]。WIS文件中的解釋成果表數據也是很重要的測井數據之一,Forward平臺本身提供了從WIS文件中獲取解釋成果表的功能,但是每次只能手動獲取一口井的解釋成果表,每口井保存為一個ASCII格式文檔,且無法轉換為更適合處理數據的EXCEL格式文檔,這給項目中數據處理帶來了不便。雖然張宮[1]編寫的軟件也能從WIS文件中獲取解釋成果表,但是也是每次只能手動獲取一口井的解釋成果表。本文利用VB語言在Visual Basic 6.0平臺上編寫了一個軟件,該軟件能從多個WIS文件中批量獲取ASCII格式的解釋成果表,從ASCII格式的解釋成果表中獲取指定數據列并轉換為適合數據處理的EXCEL格式,并可將所有井的EXCEL數據合并到一張EXCEL表格中。通過這個軟件,可以很方便地從多個WIS文件中批量解析出解釋成果表,極大地方便了科研工作者。
WIS數據文件由文件頭、對象入口記錄和對象數據三部分組成。
WIS數據文件的標識為從文件偏移值為零處開始的長度為10個字節的字符。
WIS數據文件的頭結構緊接文件標識,描述WIS文件的公共信息,其數據結構如表1所示。

表1 WIS文件頭信息存放方式
WIS數據文件的對象入口描述了每個對象的公共信息,其開始位置在頭結構中給出。每個對象的描述信息前后相連,其數據結構如表2所示。

表 2 WIS對象入口描述信息存放方式
WIS數據文件共存放三種類型的對象,分別為通道對象(Channel Object)、表對象(Table Object)和流對象(Stream Object)。通道對象一般用來存放采集數據和處理結果(如測井曲線);表對象用來存放二維表數據(解釋結論);流對象用來存放二進制數據塊(如解釋參數,用戶數據),開始為4個字節的無符號長整型數,記錄流數據的長度,緊接著為該流對象的二進制數據,且流對象數據的具體存儲格式由對象的子屬性決定。解釋成果表為流對象數據,本文只關注流對象的數據存儲方式。
弄清楚WIS文件標識、文件頭、對象入口及流對象的存儲格式后,就可以在Visual Basic 6.0平臺編寫程序批量獲取所有井的解釋成果表。
使用“Scripting.FileSystemObject”對象的CreateFolder方法來獲取保存WIS文件路徑中的所有WIS文件,使用For循環及Open函數遍歷并打開所有WIS文件,根據WIS文件格式讀取流對象,判斷對象名稱是否為“RPT_OG_REST”來確定該流對象是否為需要的解釋成果表,以確定是否應該讀取此流對象。
如果流對象名為“RPT_OG_REST”且子屬性為1,則該流對象為ASCII格式的解釋成果表數據。使用“Scripting.FileSystemObject”對象的CreateTextFile方法根據井名創建TXT文檔、Do循環遍歷每個字符和put方法將讀取的字符轉存到新建的TXT文檔中。
在Visual Basic 6.0平臺引用Microsoft Excel 16.0 Object Library和Microsoft Office 16.0 Object Library,就可以調用對EXCEL文檔讀寫的對象和函數(如Excel.Application、Workbooks、 Workbook、Workshheets、Worksheet和Cells等函數)。
Function AnalysisWIS(WISFile)
Open WISFile For Binary As #1
Open SaveFile For Binary As #2

軟件運行的流程如圖1所示。

圖1 軟件運行流程
打開軟件,選擇WIS文件所在路徑和解析出的解釋成果表保存路徑,點擊獲取成果表按鈕,軟件會自動獲取WIS文件所在路徑下所有WIS文件的解釋成果表,并將成果表數據保存在所選擇的保存路徑下。
在軟件主界面菜單欄中選擇“數據處理-->TxtToExcel”,打開將解釋成果表轉換為EXCEL的功能界面,選擇解釋成果表所在路徑和轉換結果的保存路徑,點擊轉換按鈕,程序會自動獲取解釋成果表所在路徑下的所有解釋成果表,并將其轉換成EXCEL文件后保存在所選擇的保存路徑下。
軟件會在所選擇保存轉換結果的路徑下新建ErrTxt、Excel和MeanTxt三個文件夾。其中,文件夾ErrTxt存放無法轉換或轉換出錯的解釋成果表的復件,文件夾Excel存放轉換成功的EXCEL文件,文件夾MeanTxt存放TXT格式的解釋成果表。文件夾Excel中名稱為“All.xlsx”的文件保存轉換出來的全部解釋成果表。
本軟件解決了Forward軟件中測井數據格式轉換器不能批量獲取解釋成果表的問題,可高效地、準確地獲取解釋成果表,極大地方便了石油科研工作者;同時該軟件還能將文本格式的解釋成果表轉換為EXCEL格式的數據,并獲取指定的特征數值;而且能在XP系統及其以上版本操作系統上運行,兼容性好。