999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Forward平臺(tái)底層WellBase的應(yīng)用程序開發(fā)

2013-01-01 00:00:00張福明王金茂
計(jì)算機(jī)時(shí)代 2013年4期

摘 要: Forward是目前各油田廣泛應(yīng)用的勘探開發(fā)一體化測(cè)井評(píng)價(jià)商業(yè)軟件,其底層平臺(tái)開發(fā)工具包WellBase SDK更是為用戶進(jìn)行應(yīng)用軟件開發(fā)提供了統(tǒng)一的數(shù)據(jù)格式WIS、各種接口函數(shù)類庫和開發(fā)工具。在對(duì)該平臺(tái)底層簡(jiǎn)介基礎(chǔ)上,主要介紹了基于WellBase的應(yīng)用程序開發(fā)基本方法,并重點(diǎn)通過Visual C++環(huán)境下的開發(fā)實(shí)例說明了開發(fā)環(huán)境的設(shè)置、WIS數(shù)據(jù)和接口函數(shù)的調(diào)用等。結(jié)果表明利用該底層進(jìn)行專業(yè)工具和應(yīng)用軟件開發(fā)具有高效、方便的特點(diǎn),值得推廣和應(yīng)用。

關(guān)鍵詞: Forward; 開發(fā)工具包; 測(cè)井; 應(yīng)用程序

中圖分類法:TP311.52 文獻(xiàn)標(biāo)志碼:B 文章編號(hào):1006-8228(2013)04-15-03

Application development based on Forward Wellbase SDK

Zhang Fuming1, Wang Jinmao1,2

(1. School of Geosciences, China University of Petroleum, Qingdao, Shandong 266580, China; 2. Shengli Well Logging Co. Sinopec)

Abstract: FORWARD is a commercial software for oil-gas well logging evaluation used by many oilfields. Its WellBase SDK (Software Development Kit) provides users with uniform data format WIS, application program interface functions and developing tools. Starting from a brief introduction of Wellbase SDK, the methods of application program development based on WIS and SDK under Visual C++ environment are discussed, and an application example is given for demonstration. The result shows that it can develop application programs efficiently and conveniently.

Key words: Forward; software development kit; well-logging; application program

0 引言

Forward(Formation OilGas Reservoir Well-logging Analysis Research Development)是北京石大油軟技術(shù)有限公司開發(fā)的我國(guó)第一套商業(yè)化功能比較齊全的石油測(cè)井評(píng)價(jià)軟件。目前是我國(guó)許多油田測(cè)井評(píng)價(jià)的最常用軟件平臺(tái),在測(cè)井?dāng)?shù)據(jù)管理、測(cè)井解釋和各種成果圖件輸出等方面為用戶提供了極大的方便。但任何軟件平臺(tái)都不可能完全滿足用戶的各種需求,提供相應(yīng)的開發(fā)工具包,使用戶能進(jìn)一步擴(kuò)充和開發(fā)以實(shí)現(xiàn)各種定制功能已是目前軟件發(fā)行的重要趨勢(shì),F(xiàn)orward的WellBase SDK即是這樣一個(gè)高效的測(cè)井解釋程序開發(fā)工具包[1]。

用戶使用WellBase SDK開發(fā)工具包在Forward平臺(tái)上能方便地外掛各種分析應(yīng)用程序,可以充分利用Forward系統(tǒng)的圖形顯示、消息響應(yīng)機(jī)制等良好功能。但外掛程序也有某些開發(fā)局限,如只能在Forward平臺(tái)上使用,輸人輸出格式固定等[2],有時(shí)難以滿足用戶的各種需求。WellBase SDK提供了多個(gè)接口函數(shù)類庫,如果能在軟件開發(fā)中直接應(yīng)用這些庫,則將大大簡(jiǎn)化用戶的軟件編程,提高開發(fā)效率。本文重點(diǎn)介紹如何利用Forward開發(fā)工具包和底層數(shù)據(jù)接口函數(shù)類庫開發(fā)用戶自己的應(yīng)用程序。

1 Forward開發(fā)工具包WellBase SDK簡(jiǎn)介

Forward測(cè)井解釋平臺(tái)底層WellBase作為構(gòu)成Forward、Watch等測(cè)井解釋評(píng)價(jià)系統(tǒng)的底層,具有測(cè)井?dāng)?shù)據(jù)輸入、測(cè)井資料預(yù)處理、測(cè)井資料基本處理、測(cè)井解釋成果輸出等功能,為軟件開發(fā)人員提供了一個(gè)在統(tǒng)一的平臺(tái)底層上開發(fā)各種測(cè)井解釋工具軟件的廣闊空間,對(duì)于勘探、開發(fā)一體化數(shù)據(jù)處理具有明顯的優(yōu)勢(shì),其主要由平臺(tái)數(shù)據(jù)底層和平臺(tái)工具兩部分組成。

1.1 WellBase平臺(tái)數(shù)據(jù)底層

WellBase采用根據(jù)我國(guó)勘探開發(fā)測(cè)井?dāng)?shù)據(jù)的特點(diǎn)設(shè)計(jì)的WIS格式。數(shù)據(jù)底層為程序開發(fā)人員提供了大量的輸入輸出接口函數(shù)。

WIS文件能存放三種類型的對(duì)象,根據(jù)對(duì)象的類型分為通道對(duì)象、表對(duì)象和流對(duì)象。通道對(duì)象一般用來存放采集數(shù)據(jù)和處理結(jié)果(如測(cè)井曲線),表對(duì)象用來存放二維表數(shù)據(jù)(如解釋結(jié)論),流對(duì)象用來存放二進(jìn)制數(shù)據(jù)塊(如解釋參數(shù)、用戶數(shù)據(jù))。利用WIS格式可記錄和存儲(chǔ)各種類型的測(cè)井?dāng)?shù)據(jù),如深度連續(xù)的常規(guī)測(cè)井曲線,深度不連續(xù)的點(diǎn)測(cè)井斜曲線,深度連續(xù)、時(shí)間連續(xù)、時(shí)間范圍相同的波形數(shù)據(jù),深度離散、時(shí)間連續(xù)、時(shí)間范圍不定的地層測(cè)試數(shù)據(jù)等。總而言之,可將目前已有的測(cè)井?dāng)?shù)據(jù)和將來可能出現(xiàn)的各種測(cè)井?dāng)?shù)據(jù),甚至處理參數(shù)卡等數(shù)據(jù)利用一個(gè)數(shù)據(jù)文件采用WIS格式保存起來,以便于數(shù)據(jù)管理和調(diào)用。

1.2 WellBase的平臺(tái)工具

為滿足用戶對(duì)WIS測(cè)井?dāng)?shù)據(jù)處理的需要,WellBase提供了豐富的數(shù)據(jù)輸入、輸出、預(yù)處理和應(yīng)用開發(fā)工具,這些工具按其功能可分為數(shù)據(jù)管理、數(shù)據(jù)預(yù)處理、成果輸出和應(yīng)用工具四部分。WellBase具有多種先進(jìn)的平臺(tái)特性,包括面向?qū)ο蟛僮?、?shù)據(jù)一致性、參數(shù)可視編輯、分層精細(xì)解釋、支持繪圖模板等[3],建立在WellBase之上的測(cè)井處理程序無需額外的編程便可自動(dòng)具備這些特性。

為便于用戶快速開發(fā)測(cè)井處理程序,WellBase的軟件開發(fā)工具包SDK提供了大量的Fortran和C++輸入輸出接口函數(shù),并分類進(jìn)行了面向?qū)ο蠓庋b。

2 基于WellBase的應(yīng)用程序開發(fā)基本方法

2.1 WellBase提供的用戶程序開發(fā)方案

為了使用戶便于在Forward平臺(tái)工具基礎(chǔ)上進(jìn)行擴(kuò)展,開發(fā)自己的應(yīng)用工具,滿足不同用戶的不同應(yīng)用,WellBase提供了幾種不同的程序編制和運(yùn)行方式。

⑴ 測(cè)井處理框架應(yīng)用。通過底層函數(shù),應(yīng)用程序可以訪問所有的圖形對(duì)象、修改圖形的顯示方式、控制鼠標(biāo)動(dòng)作、加入自己的圖形對(duì)象,是一個(gè)真正的應(yīng)用程序。

⑵ 動(dòng)態(tài)庫。動(dòng)態(tài)庫是一種外掛式的測(cè)井?dāng)?shù)據(jù)處理及應(yīng)用模塊,開發(fā)人員利用動(dòng)態(tài)庫來完成測(cè)井信息的處理(數(shù)據(jù)解編、預(yù)處理、計(jì)算及解釋等)過程,由WellBase提供的測(cè)井處理框架進(jìn)行動(dòng)態(tài)調(diào)用,并實(shí)現(xiàn)圖形操作、數(shù)據(jù)同步、參數(shù)編輯等過程,通過調(diào)用動(dòng)態(tài)庫的功能模塊完成整個(gè)處理過程。

⑶ 生成Fortran應(yīng)用程序。可利用Fortran語言對(duì)WellBase平臺(tái)進(jìn)行二次開發(fā),編譯生成WellBase應(yīng)用。這主要是考慮到早期的測(cè)井應(yīng)用程序絕大多數(shù)是利用Fortran語言開發(fā)的,這種機(jī)制下基本不需要修改即可直接掛接到Forward平臺(tái)使用。

以上是WellBase本身提供并推薦的應(yīng)用程序開發(fā)方法,可以滿足大多數(shù)用戶的需要,具體的實(shí)現(xiàn)方法在《WellBase技術(shù)開發(fā)手冊(cè)》中有實(shí)例說明[1],這里不作介紹。在實(shí)際應(yīng)用中未必一定按照以上方式,并且WellBase只是提供了公共數(shù)據(jù)底層和接口類函數(shù),是一個(gè)開放的平臺(tái)工具,并不限定用戶采取哪種方式開發(fā)。比如有時(shí)如果僅僅是為了在其他相關(guān)應(yīng)用軟件中實(shí)現(xiàn)某一功能,只需簡(jiǎn)單利用WellBase的WIS數(shù)據(jù)底層和相應(yīng)的接口操作函數(shù)即可。下面通過Visual C++環(huán)境下的實(shí)例重點(diǎn)說明這類應(yīng)用程序的開發(fā)方法。

2.2 VC++環(huán)境下基于WellBase開發(fā)應(yīng)用程序所需的主要文件

⑴ 頭文件及基本接口函數(shù)類

為便于用戶開發(fā)自己的應(yīng)用程序,WellBase提供了各種數(shù)據(jù)操作的接口函數(shù)[1],根據(jù)功能可分為基本輸入輸出類、缺省表管理類、測(cè)井?dāng)?shù)據(jù)輸入輸出類、測(cè)井處理對(duì)象類、參數(shù)常量讀寫類、不同機(jī)器類型轉(zhuǎn)換函數(shù)類、靜態(tài)信息類、動(dòng)態(tài)信息類和測(cè)井解編對(duì)象類等,能夠滿足各種操作需要。其中常用的幾種主要函數(shù)類及其定義頭文件為:

wisio.h:定義基本輸入輸出操作類CWisIO。該類為所有對(duì)WIS 文件操作的基本類,完成對(duì)WIS 文件定義的通道、表、流對(duì)象的讀寫操作。

defaulttable.h:定義Forward缺省表管理操作。該類完成對(duì)WIS 缺省表信息的操作。

logio.h:定義了對(duì)測(cè)井?dāng)?shù)據(jù)讀寫操作的類CLogIO,是CWisIO的繼承類,主要完成曲線對(duì)象、波形對(duì)象、地層測(cè)試對(duì)象等的讀寫操作。

logProcess.h:定義了類CLogProcess,是CLogIO的繼承類,提供對(duì)測(cè)井?dāng)?shù)據(jù)處理的公共操作。

⑵ 編譯及程序運(yùn)行所需的庫文件

用戶程序編譯時(shí)需要連接的庫包括:Wis20.lib、WellBase20.lib、WisInput20.lib、WisOutput20.lib、LogProcess20.lib和Plot20.lib等。

程序運(yùn)行所需的動(dòng)態(tài)庫文件是與以上lib文件對(duì)應(yīng)的,主要包括Wis20.dll、WellBase20.dll、WisInput20.dll等。

2.3 VC++開發(fā)環(huán)境設(shè)置

在VC++開發(fā)環(huán)境中,可通過設(shè)置相應(yīng)的開發(fā)環(huán)境或環(huán)境變量使用WellBase的接口類庫,并利用它們開發(fā)有關(guān)數(shù)據(jù)文件操作的應(yīng)用程序。

⑴ 工程設(shè)置

以Visual C++ 6.0環(huán)境下應(yīng)用程序開發(fā)為例[4],在Project菜單的“Settings…”對(duì)話框中完成基本的工程設(shè)置:

① “C/C++”標(biāo)簽下的“Category”選擇“Code Generation”、“Use run-time library”選擇“Multithreaded”;

② “Link”標(biāo)簽下的“Category”選擇“Input”、“Object/library modules”下面的文本框中加入Wis20.lib等所需的WellBase SDK庫文件。

⑵ 編譯和運(yùn)行環(huán)境設(shè)置

把以上所列常用的頭文件(后綴.h)單獨(dú)放在一個(gè)用戶所建的include目錄下,編譯所需的庫文件(后綴.lib)單獨(dú)放在一個(gè)用戶所建的lib目錄下,然后,在VC++主界面的Tools菜單下“Options”對(duì)話框中,在“Show directories for:”中依次選擇“Include files”和“Library files”,并在下面的“Directories”中添加以上建立的相應(yīng)路徑即可。

對(duì)于用戶程序運(yùn)行時(shí)所需的動(dòng)態(tài)庫文件(后綴.dll),建議放在Windows系統(tǒng)默認(rèn)的“Windows\system32”目錄下,當(dāng)然也可直接放在當(dāng)前用戶工程目錄下,或者通過Windows的環(huán)境設(shè)置指定相應(yīng)位置。

3 開發(fā)應(yīng)用實(shí)例分析

借助于WellBase SDK,以WIS格式為底層數(shù)據(jù)格式,可以利用Visual C++開發(fā)一些實(shí)用的工具,作為Forward軟件平臺(tái)的重要補(bǔ)充。SDK提供的接口函數(shù)有很多,下面以獲取用戶選定測(cè)井曲線的極值和均值為例介紹基本的程序開發(fā)技術(shù)。

3.1 測(cè)井曲線數(shù)值統(tǒng)計(jì)程序的功能設(shè)計(jì)

用戶選定并打開WIS格式的井?dāng)?shù)據(jù)文件,然后讀取其中的測(cè)井曲線、深度、采樣間隔等信息;用戶選定曲線并指定深度段后,統(tǒng)計(jì)出該深度段內(nèi)選定曲線的最大值、最小值和平均值并通過信息窗口顯示出來。

3.2 主要步驟

⑴ 利用VC++向?qū)Ы⒁粋€(gè)基本的MFC工程[5]。主菜單項(xiàng)包括文件(File)、編輯(Edit)、程序處理(Process)等幾個(gè),如圖1所示。

⑵ 利用File中的Open菜單項(xiàng)選定并打開一個(gè)WIS格式數(shù)據(jù)文件,獲取其中包含的測(cè)井曲線。主要步驟:

定義一個(gè)CWisIO類變量mwis,用其成員函數(shù)Open()打開WIS文件,用成員函數(shù)FindObjectName()獲取其中包含的所有測(cè)井曲線名。

⑶ 在Process菜單下建立菜單項(xiàng)“曲線處理”,由該菜單項(xiàng)實(shí)現(xiàn)設(shè)計(jì)功能。主要步驟:

利用CComboBox控件將上一步得到的曲線名列表顯示,供用戶選擇其中的測(cè)井曲線以進(jìn)行數(shù)值統(tǒng)計(jì);

定義一個(gè)CLogIO類指針變量plog,利用其成員函數(shù)OpenCurve()獲取用戶選定曲線的所有信息,特別是起始和終止深度、深度采樣間隔等;

利用plog的成員函數(shù)ReadCurve()讀取用戶所選曲線指定深度段內(nèi)的測(cè)井?dāng)?shù)值,然后統(tǒng)計(jì)出該深度段內(nèi)曲線的最大值、最小值、平均值,最后利用VC++的MessageBox()向用戶呈現(xiàn)這些信息。圖2是運(yùn)行效果示意圖。

4 結(jié)束語

利用Forward系統(tǒng)底層平臺(tái)開發(fā)工具包不僅可以開發(fā)測(cè)井分析程序,而且可以用來開發(fā)其他測(cè)井資料處理支持軟件和各種應(yīng)用工具。由于WIS文件系統(tǒng)設(shè)計(jì)先進(jìn),可以滿足目前各種測(cè)井資料的存儲(chǔ)和應(yīng)用[6],而SDK提供了各種平臺(tái)底層接口函數(shù)類庫,因此用戶可以容易地開發(fā)以WIS文件為數(shù)據(jù)對(duì)象的應(yīng)用程序。

通過本文的應(yīng)用實(shí)例開發(fā),說明了該軟件平臺(tái)工具包具有接口豐富、易于應(yīng)用等特點(diǎn),該工具包能夠?yàn)閷I(yè)工具和應(yīng)用軟件開發(fā)提供高效、便捷的編程環(huán)境,具有很好的行業(yè)應(yīng)用前景,建議多加推廣和利用。當(dāng)然,本文的方法只是作為WellBase技術(shù)開發(fā)手冊(cè)中應(yīng)用程序開發(fā)方法的一個(gè)簡(jiǎn)單補(bǔ)充,實(shí)際應(yīng)用中用戶可以有更多可選的開發(fā)方案。

參考文獻(xiàn):

[1] 中國(guó)石油天然氣集團(tuán)公司油氣勘探部等編.測(cè)井解釋平臺(tái)底層Well Base技術(shù)開發(fā)手冊(cè)[M].石油工業(yè)出版社,2000.

[2] 王勤華,張勇,李淑英等.關(guān)于Forward的幾個(gè)開發(fā)應(yīng)用技巧[J].測(cè)井技術(shù),2003.27(3):261-264

[3] 金勇,張世剛,顧列剛,杜國(guó)兵.Forward測(cè)井解釋平臺(tái)中使用的先進(jìn)技術(shù)[J].測(cè)井技術(shù),2000.24(1):64-70

[4] 阮宇編著.Visual C++6.0基礎(chǔ)教程[M].清華大學(xué)出版社,2005.

[5] 呂軍,楊琦.Visual C++與面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第2版)[M].高等教育出版社,2003.

[6] 吳建文,唐文江,朱春紅,劉擁軍.FORWARD測(cè)井解釋系統(tǒng)的功能開發(fā)與完善[J].石油工業(yè)計(jì)算機(jī)應(yīng)用,2004.12(4):39-40

主站蜘蛛池模板: 九九久久精品国产av片囯产区| 久久综合国产乱子免费| 九色综合伊人久久富二代| 亚洲日韩久久综合中文字幕| 伊人久热这里只有精品视频99| 999精品视频在线| 免费A级毛片无码免费视频| 国产成人乱无码视频| 五月天久久婷婷| 国产亚洲精品自在线| 日韩欧美色综合| 午夜啪啪福利| 91成人在线观看| 亚洲精品少妇熟女| 91尤物国产尤物福利在线| 国产三区二区| 成人午夜视频网站| 一级毛片在线播放免费观看| 国产精品制服| 国产手机在线小视频免费观看| 狠狠色香婷婷久久亚洲精品| 免费Aⅴ片在线观看蜜芽Tⅴ | 亚瑟天堂久久一区二区影院| 伊人成人在线| 中文字幕1区2区| 99久久无色码中文字幕| 2021国产乱人伦在线播放 | 色天天综合| 在线观看国产网址你懂的| 亚洲性网站| 久久精品aⅴ无码中文字幕| 福利姬国产精品一区在线| www.91在线播放| 国产精品第一区在线观看| 无码福利视频| h视频在线观看网站| 激情无码视频在线看| www.精品视频| 性色生活片在线观看| 草逼视频国产| 午夜日韩久久影院| 亚洲精品国产精品乱码不卞| 国产正在播放| 日本日韩欧美| 精品国产网站| 欧美日韩国产高清一区二区三区| 色综合婷婷| 凹凸国产分类在线观看| 最新痴汉在线无码AV| 国产尤物在线播放| 国产成人一区在线播放| 2021国产精品自拍| 18黑白丝水手服自慰喷水网站| 欧美成人aⅴ| 亚洲国产精品无码AV| 成人精品在线观看| 黄色网站不卡无码| 中文字幕va| 无码内射在线| 婷婷午夜天| 欧美日韩在线观看一区二区三区| 国产精品亚洲天堂| 午夜免费小视频| 亚洲男人的天堂在线观看| 毛片免费试看| 国产精品成人免费综合| 国产区网址| 欧美精品啪啪| 久青草免费视频| 一本大道无码日韩精品影视| 日本精品视频一区二区| 干中文字幕| 一级片免费网站| 四虎影视国产精品| 日韩大乳视频中文字幕| 粉嫩国产白浆在线观看| 丁香六月激情综合| 亚洲婷婷六月| 美女无遮挡免费视频网站| 国产一级在线播放| 欧美亚洲欧美区| 国产成人一二三|