吳 萌,方 明
(西安石油大學(xué) 計(jì)算機(jī)學(xué)院,西安 710065)
近年來(lái),為達(dá)到優(yōu)化管理流程,充分挖掘和發(fā)揮鉆井資料信息價(jià)值的目的,不斷推進(jìn)鉆井信息化工作,許多專家學(xué)者和石油企業(yè)單位對(duì)鉆井資料數(shù)據(jù)信息管理系統(tǒng)已有較多的研究、探索和實(shí)踐,建立了相應(yīng)的鉆井?dāng)?shù)據(jù)庫(kù),研發(fā)或配套了部分應(yīng)用軟件,使鉆井資料的管理逐步實(shí)現(xiàn)了信息化、智能化[1–4].這些系統(tǒng)的應(yīng)用對(duì)鉆井信息化水平的提升起到了促進(jìn)的作用,并且一定程度上降低了勘探開發(fā)的成本.但傳統(tǒng)的鉆井資料數(shù)據(jù)信息管理系統(tǒng)還存在著系統(tǒng)集成能力較差、系統(tǒng)維護(hù)困難、系統(tǒng)操作對(duì)專業(yè)程度要求高、資料數(shù)據(jù)展示不夠直觀、數(shù)據(jù)可視化效果較差等問(wèn)題.同時(shí),隨著鉆井資料數(shù)據(jù)量的不斷增多,以往系統(tǒng)的粗放式管理還會(huì)帶來(lái)的數(shù)據(jù)漏報(bào)、錯(cuò)報(bào)等問(wèn)題[5].因此,在大數(shù)據(jù)環(huán)境下,為更方便對(duì)鉆井資料進(jìn)行規(guī)范高效管理,本文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于百度地圖的鉆井資料管理系統(tǒng),有效實(shí)現(xiàn)對(duì)鉆井資料信息的規(guī)范化高效管理和直觀展示,從而能更好發(fā)揮鉆井資料數(shù)據(jù)信息的應(yīng)用價(jià)值.
百度地圖API是由百度公司開發(fā)提供的免費(fèi)對(duì)外開放的應(yīng)用程序接口,用戶在申請(qǐng)后可以直接使用百度地圖JavaScript API在多種平臺(tái)上開發(fā)功能強(qiáng)大,交互性強(qiáng)的地圖應(yīng)用[6].使用百度地圖API 可以幫助應(yīng)用程序.開發(fā)人員在無(wú)需了解復(fù)雜底層技術(shù)的情況下,完成地圖應(yīng)用的開發(fā),從而達(dá)到提升系統(tǒng)開發(fā)效率的目的.使用百度地圖API 開發(fā)的地圖應(yīng)用程序可以直觀展示數(shù)據(jù)的空間位置信息,并且支持用戶在地圖界面自定義信息窗口、使用不同類型的地圖樣式靈活進(jìn)行信息展示,使信息展示的效果更加直觀,信息展示的交互性更強(qiáng),達(dá)到提升信息展示效果的目的.
本文設(shè)計(jì)實(shí)現(xiàn)的基于百度地圖的鉆井資料信息系統(tǒng)使用瀏覽器和服務(wù)器架構(gòu)模式開發(fā),利用MySQL 數(shù)據(jù)庫(kù)管理和保存鉆井資料相關(guān)的各類屬性數(shù)據(jù),數(shù)據(jù)庫(kù)中的內(nèi)容可以根據(jù)用戶在前端頁(yè)面的操作執(zhí)行相應(yīng)的查詢、增加以及修改操作.系統(tǒng)采用Java 語(yǔ)言完成服務(wù)器端程序的開發(fā)、測(cè)試和維護(hù)工作,其中地圖展示的相關(guān)的功能使用百度地圖API 提供的應(yīng)用服務(wù)接口完成.系統(tǒng)采用JavaScript 來(lái)擴(kuò)展百度地圖API的功能,以更好地滿足系統(tǒng)實(shí)際使用的需求.基于B/S 結(jié)構(gòu)應(yīng)用程序的特點(diǎn),用戶可以使用瀏覽器訪問(wèn)信息系統(tǒng),用戶成功登陸系統(tǒng)后就可以瀏覽地圖展示界面以及查看鉆井資料信息.同時(shí),系統(tǒng)采用Apache 提供的完全由Java 語(yǔ)言開發(fā)的免費(fèi)開源的輕量級(jí)Web 應(yīng)用服務(wù)器Tomcat 作為后臺(tái)應(yīng)用程序的服務(wù)器[7].系統(tǒng)軟件體系架構(gòu)圖如圖1所示.
圖1 基于百度地圖的鉆井資料信息系統(tǒng)體系架構(gòu)圖
1)建立鉆井資料數(shù)據(jù)庫(kù)
在分析和研究現(xiàn)有鉆井?dāng)?shù)據(jù)資料信息管理需要的基礎(chǔ)上,完成數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì),建立滿足實(shí)際使用需求的鉆井資料信息系統(tǒng),完成對(duì)歷史鉆井資料的數(shù)字化管理.規(guī)范鉆井資料數(shù)據(jù)信息的管理.
2)實(shí)現(xiàn)對(duì)鉆井資料數(shù)據(jù)信息的快速檢索
為用戶提供快速查詢鉆井資料數(shù)據(jù)信息的功能,實(shí)現(xiàn)對(duì)用戶新上傳的鉆井?dāng)?shù)據(jù)進(jìn)行專業(yè)審核的功能,保證鉆井資料的格式和內(nèi)容規(guī)范化、統(tǒng)一化.方便用戶使用鉆井資料管理系統(tǒng)快速準(zhǔn)確的查找相關(guān)鉆井資料,為解決傳統(tǒng)管理方式數(shù)據(jù)表示抽象,更好的發(fā)揮鉆井資料的價(jià)值,提供一種有效的解決方案.系統(tǒng)可以及時(shí)準(zhǔn)確的提供鉆井資料,幫助相關(guān)部門快速掌握鉆井實(shí)時(shí)數(shù)據(jù),為企業(yè)的后續(xù)決策提供數(shù)據(jù)支持.
3)地圖展示功能
從數(shù)據(jù)庫(kù)中獲取單井的屬性數(shù)據(jù),結(jié)合基于百度地圖開發(fā)的地理信息展示功能在地圖上直觀地顯示鉆井的空間和地理位置信息,可以通過(guò)自定義的信息窗口展示單井的基礎(chǔ)信息,并且提供通過(guò)信息窗口提供的鏈接快速查找對(duì)應(yīng)的鉆井資料數(shù)據(jù)的功能.
在設(shè)計(jì)基于百度地圖的鉆井資料信息系統(tǒng)數(shù)據(jù)庫(kù)的過(guò)程中,嚴(yán)格遵守?cái)?shù)據(jù)庫(kù)設(shè)計(jì)3個(gè)范式的要求和數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范化理論的要求,在開發(fā)過(guò)程中不斷完善數(shù)據(jù)庫(kù)設(shè)計(jì),達(dá)到對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)逐步求精的效果.保證數(shù)據(jù)庫(kù)可以為系統(tǒng)的運(yùn)行提供良好的數(shù)據(jù)服務(wù).
以單井檔案資料管理為例,創(chuàng)建的數(shù)據(jù)表包括,單井類型管理表(wellType)、鉆井工作階段管理表(wellPro)、單井信息管理表(single_well)、單井產(chǎn)量管理表(swell_product)、鉆井資料管理表(recor).其中,單井類型管理表(wellType)屬性有:油井類型編號(hào)、油井類型名稱;鉆井工作階段管理表(wellProcess)屬性有:工作階段編號(hào)、工作階段名稱;單井信息管理表屬性有:單井編號(hào)、所屬集氣站編號(hào)、油井類型編號(hào)、經(jīng)緯度信息、鉆井工作階段編號(hào)、開鉆日期、完井日期、鉆井深度、油井狀態(tài);單井產(chǎn)量管理表屬性有:油井產(chǎn)量信息編號(hào)、單井編號(hào)、日期、產(chǎn)量信息;鉆井資料管理表屬性有:檔案編號(hào)、單井編號(hào)、上傳者編號(hào)、上傳時(shí)間、文件名稱、文件路徑、保密級(jí)別、狀態(tài)等信息.各數(shù)據(jù)庫(kù)表的結(jié)構(gòu)如表1至表5.
表1 單井類型管理表(wellType)
表2 鉆井工作階段管理表(wellPro)
表3 單井信息管理表(single_well)
表4 單井產(chǎn)量管理表(s_well_product)
以單井鉆井地理信息展示為例,展示基于百度地圖的鉆井資料管理系統(tǒng)的地圖展示功能的實(shí)現(xiàn)步驟.
表5 鉆井資料管理表(recor)
1)引入百度地圖API,在網(wǎng)頁(yè)中完成地圖加載
在引入百度地圖API 前,首先需要進(jìn)入百度地圖官網(wǎng)創(chuàng)建應(yīng)用信息,提交后可以在應(yīng)用列表中獲取百度地圖接口密鑰(ak).完成準(zhǔn)備工作后,就可以在應(yīng)用程序頁(yè)面中調(diào)用百度地圖JavaScript API.詳細(xì)代碼如圖2所示.
圖2 引入百度地圖API 代碼
2)初始化地圖
初始化地圖內(nèi)容的算法流程如算法1.
算法1.地圖內(nèi)容初始化算法1.用var map 創(chuàng)建地圖全局實(shí)例;2.設(shè)置地圖中心點(diǎn)坐標(biāo);3.使用centerAndZoom 方法獲取中心點(diǎn)經(jīng)緯度坐標(biāo),并設(shè)置地圖級(jí)別;4.使用enableScrollWheelZoom 啟用鼠標(biāo)滾輪縮放功能;5.加入NavigationControl 控件,設(shè)置地圖平移和縮放功能;6.加入ScaleControl 控件,顯示地圖比例尺;7.加入MapTypeControl 控件,設(shè)置地圖顯示模式.
3)數(shù)據(jù)顯示
在網(wǎng)頁(yè)完成地圖的初始化,將地圖加載完成后,會(huì)從后端數(shù)據(jù)庫(kù)中獲取單井的屬性數(shù)據(jù),在地圖展示頁(yè)面上顯示單井的地理位置信息.用戶可以通過(guò)自定義的信息窗口查看油井的基本信息,包括油井的編號(hào)、油井的類型等信息,支持用戶快速查看該井的檔案資料.加載單井屬性數(shù)據(jù)到地圖顯示工作的算法流程如算法2.
算法2.加載單井屬性數(shù)據(jù)到地圖顯示工作算法1.定義一個(gè)數(shù)組用來(lái)存儲(chǔ)油井的經(jīng)度和緯度的信息;2.使用循環(huán)依次加載油井的經(jīng)緯度坐標(biāo);3.按照從數(shù)據(jù)庫(kù)中獲取到的經(jīng)緯度數(shù)據(jù)信息在地圖上生成新的坐標(biāo)點(diǎn);4.將新生成的坐標(biāo)點(diǎn)添加到地圖上進(jìn)行顯示;5.創(chuàng)建信息窗口顯示基本信息.
單井信息地圖展示結(jié)果界面如圖3所示.
鉆井資料是鉆井工作人員在完成鉆井工作后的相關(guān)數(shù)據(jù)記錄,是鉆井過(guò)程中科學(xué)數(shù)據(jù)的記載,鉆井資料檔案也承載著鉆井施工過(guò)程中產(chǎn)生的技術(shù)研究數(shù)據(jù),可以為以后的鉆探開發(fā)工作提供重要的數(shù)據(jù)支持[8].對(duì)鉆井資料數(shù)據(jù)信息進(jìn)行科學(xué)有效的維護(hù)管理是充分發(fā)揮鉆井資料理論科研價(jià)值的重要基礎(chǔ).鉆井資料數(shù)據(jù)信息維護(hù)管理包括的功能有:鉆井資料數(shù)據(jù)信息的上傳、鉆井資料數(shù)據(jù)信息的快速查詢、鉆井資料數(shù)據(jù)信息的審核等.鉆井資料數(shù)據(jù)信息維護(hù)管理的程序流程圖如圖4所示.
圖3 地圖顯示界面
圖4 鉆井資料數(shù)據(jù)信息維護(hù)程序管理流程圖
1)鉆井資料數(shù)據(jù)信息的上傳
用戶在成功登陸鉆井資料管理系統(tǒng)后,可以根據(jù)權(quán)限上傳鉆井?dāng)?shù)據(jù)信息.用戶在文件上傳頁(yè)面選擇存儲(chǔ)在本地的鉆井?dāng)?shù)據(jù)信息.為提升程序開發(fā)效率,使用Apache 組織提供的開源組件Commons-FileUpload 完成文件的上傳,使用該組件可以快速解析“mutipart/from-data”類型請(qǐng)求中的各種表單域,并且可以實(shí)現(xiàn)一個(gè)或多個(gè)文件上傳.在文件上傳界面,系統(tǒng)會(huì)自動(dòng)獲取當(dāng)前用戶的登錄名,用戶需要完成的工作包括選擇鉆井?dāng)?shù)據(jù)信息所屬的部門、單位、上傳時(shí)間,選擇鉆井資料數(shù)據(jù)信息的保密級(jí)別信息,選擇包含鉆井資料數(shù)據(jù)信息的文件,完成相關(guān)的準(zhǔn)備工作后就可以點(diǎn)擊文件上傳按鈕執(zhí)行文件的上傳操作.使用Apache 提供的開源組件Commons-FileUpload 完成鉆井資料數(shù)據(jù)上傳的程序流程如圖5所示.
2)鉆井資料數(shù)據(jù)信息的審核
系統(tǒng)會(huì)對(duì)上傳的鉆井資料數(shù)據(jù)進(jìn)行兩次審核,在用戶上傳鉆井資料信息時(shí),系統(tǒng)首先會(huì)對(duì)上傳的鉆井資料數(shù)據(jù)信息的屬性進(jìn)行審核,審核的內(nèi)容包括上傳文件的類型和上傳文件的大小,只有通過(guò)審核后,用戶選擇的文件才會(huì)被允許執(zhí)行上傳操作.在文件成功上傳到系統(tǒng)中后,會(huì)由專業(yè)的人員對(duì)上傳的鉆井資料數(shù)據(jù)信息的內(nèi)容再次進(jìn)行審核,確保上傳的鉆井資料數(shù)據(jù)信息是準(zhǔn)確的、完整的,不存在信息的錯(cuò)報(bào)和漏報(bào)等情況.只有上傳的鉆井資料通過(guò)最終的各項(xiàng)審核才會(huì)被展示到檔案列表頁(yè)面,提供給用戶進(jìn)行下載操作.如果上傳的文件沒(méi)有通過(guò)專業(yè)審核,則輸出提示信息,提示文件的上傳者對(duì)上傳的鉆井資料文件進(jìn)行修改,完成修改后重新上傳.對(duì)文件屬性進(jìn)行審核的程序流程如圖6所示.
圖5 鉆井?dāng)?shù)據(jù)資料上傳程序流程圖
圖6 文件屬性審核程序流程圖
3)鉆井資料數(shù)據(jù)信息的快速查詢
系統(tǒng)提供的快速查詢方式包括:快速查詢當(dāng)前用戶上傳的所有鉆井資料,用戶在成功登錄后,系統(tǒng)會(huì)獲取當(dāng)前用戶包括用戶名在內(nèi)的登錄信息,使用登錄用戶的用戶名信息可以快速查詢出當(dāng)前用戶上傳的所有鉆井資料,其中包括未經(jīng)過(guò)審核的和審核未通過(guò)的鉆井資料信息.
在地圖展示界面快速查詢單井的所有鉆井資料,用戶可以在地圖展示頁(yè)面查看單井的空間位置信息的同時(shí),通過(guò)使用系統(tǒng)自定義的信息窗口提供的鏈接對(duì)該井的所有鉆井資料數(shù)據(jù)信息進(jìn)行快速查詢.
通過(guò)鉆井資料列表快速查詢所有鉆井資料,用戶可以按條件快速查詢需要的鉆井資料.
用戶在使用以上方法查詢出符合要求的鉆井資料信息數(shù)據(jù)后,可以使用系統(tǒng)提供的文件下載功能,將鉆井資料數(shù)據(jù)信息下載文本地使用.
結(jié)合百度地圖API與傳統(tǒng)信息管理系統(tǒng),將日益成熟的地圖服務(wù)應(yīng)用到鉆井資料的管理中,有助于優(yōu)化鉆井資料管理流程,提升管理效率,更加充分的挖掘和發(fā)揮鉆井資料數(shù)據(jù)信息的研究與應(yīng)用價(jià)值,避免由于鉆井資料管理的不規(guī)范和不方便帶來(lái)的損失,提升鉆井資料數(shù)據(jù)管理的信息化水平.展示鉆井的地理位置信息,實(shí)現(xiàn)的功能比較單一,在下一步的工作中可以引入地圖的3D 地圖展示功能和全景圖展示功能,進(jìn)一步豐富地圖展示的信息內(nèi)容,更加直觀的展示鉆井的實(shí)時(shí)狀態(tài).為鉆井資料數(shù)據(jù)的信息化管理提供了一種實(shí)時(shí)、高效、直觀的解決方案,為充分發(fā)揮鉆井資料數(shù)據(jù)信息的理論和應(yīng)用價(jià)值奠定基礎(chǔ).