彭 博,譚成仟,張 奔,孫 遙,楊 澤
(1.西安石油大學(xué)地球科學(xué)與工程學(xué)院,陜西西安 710065;2.陜西省油氣成藏地質(zhì)學(xué)重點(diǎn)實(shí)驗(yàn)室,陜西西安 710065)
Forward平臺(tái)采用WellBase(Well Basic Analysis System Environment)作為數(shù)據(jù)底層,即WIS數(shù)據(jù),國(guó)內(nèi)大量的測(cè)井?dāng)?shù)據(jù)以WIS格式存放、處理和解釋。Forward平臺(tái)支持將多種數(shù)據(jù)解編為WIS格式的功能[1]。李忠新[2]詳細(xì)介紹了多種測(cè)井?dāng)?shù)據(jù)格式之間轉(zhuǎn)換技術(shù)的進(jìn)展及對(duì)未來(lái)的展望,胡振平[3]等編寫(xiě)的測(cè)井格式軟件能對(duì)13個(gè)主流的測(cè)井?dāng)?shù)據(jù)格式進(jìn)行轉(zhuǎn)換。
在石油的勘探開(kāi)發(fā)中,往往涉及到幾百個(gè)乃至上千個(gè)WIS文件的處理[4,5],前人主要針對(duì)不同測(cè)井?dāng)?shù)據(jù)格式之間的轉(zhuǎn)換[3]和WIS測(cè)井?dāng)?shù)據(jù)中各種二維通道數(shù)據(jù)的格式轉(zhuǎn)換[1]。WIS文件中的解釋成果表數(shù)據(jù)也是很重要的測(cè)井?dāng)?shù)據(jù)之一,F(xiàn)orward平臺(tái)本身提供了從WIS文件中獲取解釋成果表的功能,但是每次只能手動(dòng)獲取一口井的解釋成果表,每口井保存為一個(gè)ASCII格式文檔,且無(wú)法轉(zhuǎn)換為更適合處理數(shù)據(jù)的EXCEL格式文檔,這給項(xiàng)目中數(shù)據(jù)處理帶來(lái)了不便。雖然張宮[1]編寫(xiě)的軟件也能從WIS文件中獲取解釋成果表,但是也是每次只能手動(dòng)獲取一口井的解釋成果表。本文利用VB語(yǔ)言在Visual Basic 6.0平臺(tái)上編寫(xiě)了一個(gè)軟件,該軟件能從多個(gè)WIS文件中批量獲取ASCII格式的解釋成果表,從ASCII格式的解釋成果表中獲取指定數(shù)據(jù)列并轉(zhuǎn)換為適合數(shù)據(jù)處理的EXCEL格式,并可將所有井的EXCEL數(shù)據(jù)合并到一張EXCEL表格中。通過(guò)這個(gè)軟件,可以很方便地從多個(gè)WIS文件中批量解析出解釋成果表,極大地方便了科研工作者。
WIS數(shù)據(jù)文件由文件頭、對(duì)象入口記錄和對(duì)象數(shù)據(jù)三部分組成。
WIS數(shù)據(jù)文件的標(biāo)識(shí)為從文件偏移值為零處開(kāi)始的長(zhǎng)度為10個(gè)字節(jié)的字符。
WIS數(shù)據(jù)文件的頭結(jié)構(gòu)緊接文件標(biāo)識(shí),描述WIS文件的公共信息,其數(shù)據(jù)結(jié)構(gòu)如表1所示。
表1 WIS文件頭信息存放方式
WIS數(shù)據(jù)文件的對(duì)象入口描述了每個(gè)對(duì)象的公共信息,其開(kāi)始位置在頭結(jié)構(gòu)中給出。每個(gè)對(duì)象的描述信息前后相連,其數(shù)據(jù)結(jié)構(gòu)如表2所示。
表 2 WIS對(duì)象入口描述信息存放方式
WIS數(shù)據(jù)文件共存放三種類(lèi)型的對(duì)象,分別為通道對(duì)象(Channel Object)、表對(duì)象(Table Object)和流對(duì)象(Stream Object)。通道對(duì)象一般用來(lái)存放采集數(shù)據(jù)和處理結(jié)果(如測(cè)井曲線(xiàn));表對(duì)象用來(lái)存放二維表數(shù)據(jù)(解釋結(jié)論);流對(duì)象用來(lái)存放二進(jìn)制數(shù)據(jù)塊(如解釋參數(shù),用戶(hù)數(shù)據(jù)),開(kāi)始為4個(gè)字節(jié)的無(wú)符號(hào)長(zhǎng)整型數(shù),記錄流數(shù)據(jù)的長(zhǎng)度,緊接著為該流對(duì)象的二進(jìn)制數(shù)據(jù),且流對(duì)象數(shù)據(jù)的具體存儲(chǔ)格式由對(duì)象的子屬性決定。解釋成果表為流對(duì)象數(shù)據(jù),本文只關(guān)注流對(duì)象的數(shù)據(jù)存儲(chǔ)方式。
弄清楚WIS文件標(biāo)識(shí)、文件頭、對(duì)象入口及流對(duì)象的存儲(chǔ)格式后,就可以在Visual Basic 6.0平臺(tái)編寫(xiě)程序批量獲取所有井的解釋成果表。
使用“Scripting.FileSystemObject”對(duì)象的CreateFolder方法來(lái)獲取保存WIS文件路徑中的所有WIS文件,使用For循環(huán)及Open函數(shù)遍歷并打開(kāi)所有WIS文件,根據(jù)WIS文件格式讀取流對(duì)象,判斷對(duì)象名稱(chēng)是否為“RPT_OG_REST”來(lái)確定該流對(duì)象是否為需要的解釋成果表,以確定是否應(yīng)該讀取此流對(duì)象。
如果流對(duì)象名為“RPT_OG_REST”且子屬性為1,則該流對(duì)象為ASCII格式的解釋成果表數(shù)據(jù)。使用“Scripting.FileSystemObject”對(duì)象的CreateTextFile方法根據(jù)井名創(chuàng)建TXT文檔、Do循環(huán)遍歷每個(gè)字符和put方法將讀取的字符轉(zhuǎn)存到新建的TXT文檔中。
在Visual Basic 6.0平臺(tái)引用Microsoft Excel 16.0 Object Library和Microsoft Office 16.0 Object Library,就可以調(diào)用對(duì)EXCEL文檔讀寫(xiě)的對(duì)象和函數(shù)(如Excel.Application、Workbooks、 Workbook、Workshheets、Worksheet和Cells等函數(shù))。
Function AnalysisWIS(WISFile)
Open WISFile For Binary As #1
Open SaveFile For Binary As #2
軟件運(yùn)行的流程如圖1所示。
圖1 軟件運(yùn)行流程
打開(kāi)軟件,選擇WIS文件所在路徑和解析出的解釋成果表保存路徑,點(diǎn)擊獲取成果表按鈕,軟件會(huì)自動(dòng)獲取WIS文件所在路徑下所有WIS文件的解釋成果表,并將成果表數(shù)據(jù)保存在所選擇的保存路徑下。
在軟件主界面菜單欄中選擇“數(shù)據(jù)處理-->TxtToExcel”,打開(kāi)將解釋成果表轉(zhuǎn)換為EXCEL的功能界面,選擇解釋成果表所在路徑和轉(zhuǎn)換結(jié)果的保存路徑,點(diǎn)擊轉(zhuǎn)換按鈕,程序會(huì)自動(dòng)獲取解釋成果表所在路徑下的所有解釋成果表,并將其轉(zhuǎn)換成EXCEL文件后保存在所選擇的保存路徑下。
軟件會(huì)在所選擇保存轉(zhuǎn)換結(jié)果的路徑下新建ErrTxt、Excel和MeanTxt三個(gè)文件夾。其中,文件夾ErrTxt存放無(wú)法轉(zhuǎn)換或轉(zhuǎn)換出錯(cuò)的解釋成果表的復(fù)件,文件夾Excel存放轉(zhuǎn)換成功的EXCEL文件,文件夾MeanTxt存放TXT格式的解釋成果表。文件夾Excel中名稱(chēng)為“All.xlsx”的文件保存轉(zhuǎn)換出來(lái)的全部解釋成果表。
本軟件解決了Forward軟件中測(cè)井?dāng)?shù)據(jù)格式轉(zhuǎn)換器不能批量獲取解釋成果表的問(wèn)題,可高效地、準(zhǔn)確地獲取解釋成果表,極大地方便了石油科研工作者;同時(shí)該軟件還能將文本格式的解釋成果表轉(zhuǎn)換為EXCEL格式的數(shù)據(jù),并獲取指定的特征數(shù)值;而且能在XP系統(tǒng)及其以上版本操作系統(tǒng)上運(yùn)行,兼容性好。