馬 滄 徐士進 董少春 徐 震 張 霞
摘 要:根據(jù)油田地面工程信息管理需求,開發(fā)基于MapGuide的具有3層瀏覽器/服務(wù)器(Browser/Serrer,B/S)體系結(jié)構(gòu)的WebGIS,建立油田地面管理信息系統(tǒng). 該系統(tǒng)具有地圖瀏覽、數(shù)據(jù)動態(tài)添加、實時顯示和漫游等功能;充分利用WebGIS技術(shù),建立共享管理平臺,實現(xiàn)油田地面信息管理的網(wǎng)絡(luò)化;實現(xiàn)油田單井、管線、站庫、廠區(qū)、道路和地形等地面數(shù)據(jù)的統(tǒng)一管理,形成集原油、天然氣、油田伴生氣集輸,注水和采出水處理管網(wǎng),以及輸供電線路為一體的可視化數(shù)據(jù)平臺,為數(shù)字油田的地面工程管理提供解決方案. 該系統(tǒng)在江蘇油田的應(yīng)用證明其可行性.
關(guān)鍵詞:油田地面工程信息管理;MapGuide;WebGIS
中圖分類號:TE4;P208;TP311.52
文獻標(biāo)志碼:A
Oilfield ground management information system based on MapGuide
MA Cang1,XU Shijin1,DONG Shaochun1,XU Zhen1,ZHANG Xia2
(1.Dept. of Earth Sci.,Nanjing Univ.,Nanjing 210093,China;
2.No.1 Oil Extraction Factory of Jiangsu Oilfield,Yangzhou Jiangsu 225009,China)
Abstract:According to the requirements of oilfield ground engineering information management,a WebGIS with three-tier Browser/Serrer(B/S) architecture is developed based on MapGuide to implement oilfield ground management information system. It has the functions such as map browse,dynamic appending data,real-time display,roaming and so on;WebGIS technology is fully used,a share management platform is established,and the oilfield ground information management is implemented based on network;the integrated management of single oilfield well,pipelines,station warehouses,plant area,roads,terrain and so on is realized,and a visual data platform is accomplished,which integrates the management of concentrated transportation of crude,natural gas and associated gas of oil field,treatment pipeline networks of injection water and produced water,and power transmission lines;it provides a solution for the digital oilfield ground engineering management. The application in Jiangsu oilfield in China shows its feasibility.
Key words:oilfield ground engineering information management;MapGuide;WebGIS
0 引 言
WebGIS 是建立在Internet 上具有瀏覽器/服務(wù)器(Browser/Server,B/S)體系結(jié)構(gòu)的網(wǎng)絡(luò)GIS.它改變傳統(tǒng)GIS的運行模式,使得用戶可以利用瀏覽器從Web上的任意節(jié)點瀏覽WebGIS 站點中的空間數(shù)據(jù),進行資料傳輸、制作專題圖等,從而將Web 的信息發(fā)布與GIS 這一直觀工具結(jié)合,使人們通過Web瀏覽查詢信息更加方便,也使GIS的功能通過Web得到普及和擴展.[1]在通用的地理信息系統(tǒng)工具支持下建立實用信息系統(tǒng),可以節(jié)省軟件開發(fā)的人力物力和財力、縮短系統(tǒng)建立周期、提高系統(tǒng)水平,使GIS技術(shù)易于推廣,也可以把更多的精力投入到高層次的應(yīng)用開發(fā)上.
過去油田地面工程信息一直存在數(shù)據(jù)零散、缺失的問題,給領(lǐng)導(dǎo)決策、科研開發(fā)、規(guī)劃設(shè)計以及生產(chǎn)管理帶來很大困難.隨著時間的延續(xù)和人員變動,這些問題將會越來越突出.MIS成為企業(yè)信息化工程的重要研究內(nèi)容[2],能夠通過友好的GIS應(yīng)用界面獲取這些詳細(xì)、準(zhǔn)確、實時和有針對性的數(shù)據(jù)[3].利用網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù)開發(fā)建立地面建設(shè)工程信息管理系統(tǒng),是充分利用地面工程信息資源,提高地面工程規(guī)劃設(shè)計水平及生產(chǎn)管理水平,保證地面工程信息統(tǒng)一、集中、分級共享管理的有效手段[4];可以方便、迅速、精確地對油田地面空間信息及屬性信息進行儲存、查詢、分析,以彌補手工繪制地圖或計算機繪圖不能有效組織信息、管理信息和應(yīng)用信息的不足,提高油田規(guī)劃方案的質(zhì)量及效率[5].GIS 技術(shù)恰好為石油行業(yè)搭建1個理想的數(shù)字化可視平臺,將地面地理信息、地下地質(zhì)信息及生產(chǎn)信息在同一應(yīng)用平臺上有機結(jié)合起來進行綜合研究分析,因此需要積極開發(fā)WebGIS[6].本文即針對油田系統(tǒng)的上述特點,利用油田內(nèi)部的網(wǎng)絡(luò)優(yōu)勢,開發(fā)1種基于MapGuide的3層B/S結(jié)構(gòu)的WebGIS架構(gòu),實現(xiàn)油田地面建設(shè)工程的信息化網(wǎng)絡(luò)管理.
1 MapGuide的技術(shù)特點
石油行業(yè)日常業(yè)務(wù)中1個非常重要的需求就是對地下油井、管線的管理與操作,即要求通過可視化界面瀏覽與監(jiān)控輸油管線,實時添加、修改和刪除管線、油井的信息等,另外還需要對各種類型的數(shù)據(jù)進行統(tǒng)一管理.與其他WebGIS商用軟件平臺(如ESRI的ArcIMS,MapInfo的MapXtreme,Autodesk的MapGuide等)產(chǎn)品相比,MapGuide在這些方面有著較大優(yōu)勢.它是Autodesk公司提供的開源WebGIS解決方案,既可以方便快速地進行地圖發(fā)布,也可以實現(xiàn)MapTip功能.另外,它還將Tile功能封裝于其產(chǎn)品中,可對Raster圖像進行分塊發(fā)布,提高瀏覽速度,對于要求疊加顯示高分辨率遙感影像的應(yīng)用系統(tǒng),具有獨特優(yōu)勢.油田有著大量用AutoCAD制圖的圖形數(shù)據(jù),而MapGuide對DWG格式的支持也非常好.MapGuide使用FDO(Feature Data Object)對工業(yè)標(biāo)準(zhǔn)空間數(shù)據(jù)格式(如Oracle,SQL Server ODBC,Oracle Spatial,ArcSDE,OGC WMS,OGC WFS,SDF,DWF,DWG,SHP和Imagery等)進行直接調(diào)用.FDO提供1個單一接口連接全部數(shù)據(jù),使得用戶可以用統(tǒng)一的方式直接訪問多種不同GIS數(shù)據(jù),而不需要把現(xiàn)有數(shù)據(jù)上載到服務(wù)器或者轉(zhuǎn)換格式,方便異構(gòu)數(shù)據(jù)的統(tǒng)一管理.
MapGuide支持客戶端與服務(wù)器之間大量、頻繁、即時的交互通信,并以GML(Geography Markup Language)或圖片形式傳輸數(shù)據(jù),內(nèi)嵌的AJAX Viewer是1個基于AJAX(Asynchronous JavaScript and XML)技術(shù)的純DHTML瀏覽器,不需要在客戶端安裝插件和ActiveX控件,通過對XML文件的操作動態(tài)生成地圖.AJAX使用DOM(Document Object Model)進行動態(tài)顯示及交互,使用XML 和XSLT(eXtensible Stylesheet Language)進行數(shù)據(jù)交換及相關(guān)操作,使用 XMLHttpRequest 進行異步數(shù)據(jù)查詢、檢索,使用 JavaScript 將所有的東西綁定在一起.[7]因此,能夠創(chuàng)建更好、更快、更具有交互性的Web應(yīng)用程序.
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)需求
本系統(tǒng)實現(xiàn)對江蘇油田的單井、管線、站庫、廠區(qū)及道路、地形等地面數(shù)據(jù)及相關(guān)信息進行統(tǒng)一的可視化管理.以地理空間信息為基礎(chǔ)平臺,將油氣田地面建設(shè)工程的各種空間實體與數(shù)據(jù)自然組織在一起,建設(shè)成為1個集原油集輸、天然氣或油田伴生氣集輸、注水及采出水處理管網(wǎng)、輸供電線路為一體的可視化數(shù)據(jù)平臺,使用戶可以在實際地理背景下方便地查詢生產(chǎn)數(shù)據(jù).用戶可在任何地點(如油田公司機關(guān)各部室、設(shè)計院、各廠等)通過網(wǎng)絡(luò),對地面工程的生產(chǎn)管理和地面建設(shè)規(guī)劃等進行信息化操作,對相應(yīng)的空間數(shù)據(jù)進行查詢、管理及維護,使規(guī)劃設(shè)計人員擺脫用彩筆和大圖紙進行手工計算的工作現(xiàn)狀,縮短工作周期,提高規(guī)劃方案的準(zhǔn)確性和科學(xué)性.[5]
2.2 系統(tǒng)架構(gòu)
基于MapGuide的3層B/S結(jié)構(gòu)的WebGIS架構(gòu),分為服務(wù)器層、網(wǎng)絡(luò)層和客戶端層,采用Windows Server 2003 + Apache + Jsp的開發(fā)架構(gòu),使用MapGuide提供的豐富API(MapGuide Web API和Viewer API)進行靈活的二次開發(fā),見圖1.
圖 1 系統(tǒng)結(jié)構(gòu)
用戶使用瀏覽器進行操作,通過TCP/IP協(xié)議從客戶端傳遞請求,通過MapGuide Web API訪問Web Extensions.Web Extensions包含1個MapAgent CGI/Fast-CGI模塊,可以使MapGuide Server提供的服務(wù)通過Internet或Intranet傳遞給客戶端應(yīng)用程序.MapGuide Server分為站點服務(wù)器(Site Server)和支持服務(wù)器(Support Server).站點服務(wù)器負(fù)責(zé)用戶認(rèn)證、管理邏輯事務(wù)、數(shù)據(jù)倉庫和資源管理,1個站點只有1個服務(wù)器.支持服務(wù)器負(fù)責(zé)基于DWF或映像文件創(chuàng)建地圖,通過FDO訪問數(shù)據(jù)及地圖分塊管理,1個站點可以有多個支持服務(wù)器.客戶在向某個服務(wù)器提出服務(wù)請求時,并不需要知道所要求的信息是否在該服務(wù)器上、信息在哪里,統(tǒng)一由服務(wù)器解決.如果服務(wù)器發(fā)現(xiàn)所請求的信息不在該服務(wù)器上,它就會向其他服務(wù)器發(fā)送請求并找到所需信息.MapGuide Server提供以下服務(wù):站點服務(wù)(Site Service)、資源服務(wù)(Resource Service)、圖形服務(wù)(Drawing Service)、特征服務(wù)(Feature Service)、地圖服務(wù)(Mapping Service)、渲染服務(wù)(Rendering Service)和分塊服務(wù)(Tile Service).這7種服務(wù)都是用來處理用戶發(fā)送的一系列請求的,對于使用者是同一對象.通過對這7種服務(wù)的API操作,可以實現(xiàn)系統(tǒng)功能.當(dāng)用戶發(fā)送請求瀏覽頁面時,首先在站點服務(wù)器創(chuàng)建與站點之間的連接,建立用戶session,然后創(chuàng)建服務(wù).資源服務(wù)主要用來管理資源數(shù)據(jù)庫和地圖數(shù)據(jù),例如對地圖的加載、復(fù)制、移動、重命名和刪除.地圖和渲染服務(wù)用來顯示和打印地圖、管理地圖圖層和層組以及創(chuàng)建地圖圖例.要素服務(wù)用于保存和返回與數(shù)據(jù)類型無關(guān)的特征數(shù)據(jù),利用FDO訪問不同格式的地圖數(shù)據(jù),針對地圖數(shù)據(jù)源執(zhí)行空間和列表查詢,編輯地圖(創(chuàng)建、更新和刪除).分塊服務(wù)用來對系統(tǒng)中使用的高分辨率影像數(shù)據(jù)進行分塊,使地圖顯示平滑連續(xù).MapGuide提供1個XML(eXtensible Markup Language)數(shù)據(jù)庫用于存儲和管理資源,支持大多數(shù)普遍使用的空間數(shù)據(jù)格式、數(shù)據(jù)庫格式和OGC標(biāo)準(zhǔn).
3 系統(tǒng)功能及實現(xiàn)
對系統(tǒng)的功能設(shè)計,主要突出增強可視化數(shù)據(jù)管理,對生產(chǎn)流程中的井、管線、各種站庫設(shè)備的動態(tài)實時監(jiān)控維護功能,并對其進行設(shè)計及動態(tài)關(guān)聯(lián)顯示等.具體功能模塊見圖2.
圖 2 系統(tǒng)功能模塊
3.1 地圖及圖層瀏覽
地圖包括地形圖、地面系統(tǒng)圖、工藝流程圖、站內(nèi)平面布置圖等.該模塊主要實現(xiàn)對圖形信息進行放大、縮小、漫游、要素選擇、縮放到選定區(qū)、快速返回初始頁面等功能.在高分辨率遙感影像做背景的情況下,可直接從計算機屏幕上查看地面管線、井位、站庫等在野外的真實位置.實際效果見圖3.
圖 3 系統(tǒng)瀏覽界面
瀏覽功能包括專題圖層的分層瀏覽和不同專題圖層的疊加瀏覽.由于各種信息均以圖層方式存儲顯示(如油井、水井、集/輸油管線、集/輸氣管線、站庫等都分別為1個單獨圖層),可以選擇單獨顯示,如只顯示所查看區(qū)域的油井圖層;也可以選擇不同圖層的疊加瀏覽,如同時顯示所查看區(qū)域的油井圖層和集/輸油管線圖層.這樣,就可以對不同層面上的生產(chǎn)流程分別進行考察或綜合分析.
3.2 數(shù)據(jù)管理
江蘇油田提供大量實驗區(qū)空間數(shù)據(jù)和屬性數(shù)據(jù),如井(油井、水井、氣井)、管線(油管線、水管線、氣管線)和各類站庫(聯(lián)合站、計量站、中轉(zhuǎn)站、配水間、注水站等)的坐標(biāo)數(shù)據(jù)及其內(nèi)部各種設(shè)備(泵、罐、分離器等)的本身數(shù)據(jù)和維護信息,及其他相關(guān)信息(房屋、道路、水池等).由于其過去均以Excel表格形式存儲,需要轉(zhuǎn)換成具有統(tǒng)一參考坐標(biāo)的SHP文件,再進行相應(yīng)的管理維護.
根據(jù)油田實際需求建立相應(yīng)數(shù)據(jù)庫,需要歸納劃分各種生產(chǎn)活動中涉及到的實體,從概念模型設(shè)計到抽象模型設(shè)計,建立可提供強大搜索支持的空間和屬性數(shù)據(jù)庫,以支撐用戶對各類信息和流程的查詢、瀏覽和分析(見圖4).[8]另外,對數(shù)據(jù)操作進行權(quán)限分級設(shè)置,通過設(shè)置管理員權(quán)限,使管理人員通過用戶驗證,對后臺數(shù)據(jù)庫進行插入、刪除、更新等管理維護.普通人員只能進行瀏覽、查詢操作,不能增刪數(shù)據(jù)庫.相應(yīng)界面效果見圖5和6.
圖 4 數(shù)據(jù)管理示意圖
圖 5 站庫查詢編輯界面
圖 6 設(shè)備查詢編輯界面
3.3 地圖查詢
對不同專題圖中要素的查詢顯示及對地面信息的查詢是GIS平臺的重要功能之一,主要分為2種查詢.
(1)對空間要素的查詢(包括油水井信息查詢和管線查詢等).這種查詢是對MapGuide Web Server Extensions提供的MapGuide Web API進行二次開發(fā)而實現(xiàn)的.為了檢索現(xiàn)有要素,并通過一定格式返回查詢結(jié)果,需要進行以下操作.
①創(chuàng)建查詢:
Query = new MgFeatureQuery-Options().
②創(chuàng)建filter限定查詢條件:包括basic filter和spatial filter,也可以組合使用.
③查找要素:使用MgFeatureService::SelectFeatures()方法,查詢包含要查找要素的要素類.
④調(diào)用MgFeatureReader::ReadNext()方法,繼續(xù)讀取要素到feature reader中.
⑤使用MgFeatureReader::GetGeometry()方法獲得geometry數(shù)據(jù),此時數(shù)據(jù)格式為AGF格式.
⑥使用MgAgfReaderWriter::Read()方法把AGF格式轉(zhuǎn)換為MgGeometry對象格式.
⑦返回查詢結(jié)果.
(2)對空間要素的屬性進行查詢(包括站庫信息查詢、站庫設(shè)備查詢以及聯(lián)合站的流程查詢等).此功能主要在構(gòu)建空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫的基礎(chǔ)上實現(xiàn),通過對各種屬性數(shù)據(jù)的組合查詢,得到所需數(shù)據(jù)結(jié)果列表,并提供把結(jié)果列表轉(zhuǎn)化為Excel格式表格的功能,為日常工作提供方便.
對空間數(shù)據(jù)和屬性數(shù)據(jù)的查詢可以通過MapGuide支持的FDO接口對各種數(shù)據(jù)格式進行統(tǒng)一管理及關(guān)聯(lián)顯示,見圖7.
圖 7 查詢結(jié)果界面
由于油田系統(tǒng)的數(shù)據(jù)量較大,在與服務(wù)器進行數(shù)據(jù)交互時,如果按傳統(tǒng)頁面交互來操作,其響應(yīng)效率是個很大的問題,而MapGuide在瀏覽器端支持AJAX技術(shù),因此在瀏覽器端顯示查詢結(jié)果時,可以利用其與服務(wù)器應(yīng)答的異步性,在客戶端通過瀏覽器利用JavaScript 處理DOM數(shù)據(jù),并依據(jù)XHTML和CSS(Cascading Style Sheet) 規(guī)范進行界面繪制.
3.4 地圖設(shè)計
油田的工程設(shè)計規(guī)劃人員對專題圖的設(shè)計有很大需求.此功能的開發(fā)可以使用戶在瀏覽器端,結(jié)合地形圖、坐標(biāo)系統(tǒng)直接創(chuàng)建臨時層,進行點(油井、水井等)、線(管線等)的添加、修改和刪除操作,以此更新地圖或設(shè)計新地圖(功能界面見圖8).由于有相應(yīng)的參考坐標(biāo)系,還可以在設(shè)計地圖時,及時準(zhǔn)確地得到各個點的坐標(biāo),有利于與油田其他各種空間信息相融合.
圖 8 地圖更新界面
MapGuide在Resource Database中以XML文件存儲map definitions,layer definitions,data source connections,symbol definitions和Web layouts.這些XML文件被稱為resources,以目錄結(jié)構(gòu)存儲在Resource Database中.每個resource有2個基本組成部分:header和content.content就是XML文件本身,header也是XML文件,用來定義access permissions和resource的元數(shù)據(jù).因此,不用讀完文件全部內(nèi)容就可立即分辨出definition的類型.所有resource XML均根據(jù)W3C XML schema描述.
地圖設(shè)計功能的實現(xiàn)主要針對以XML格式存儲的resource進行操作.Resource Database分為2個存儲容器:library repository和session repository.library repository 用來存儲resource文件,可以對其編輯和管理,是所有用戶共享的;session repository 存儲特定用戶信息,只有此用戶有訪問權(quán)限.當(dāng)session結(jié)束,session repository中的信息也被刪除.在進行地圖設(shè)計時,首先創(chuàng)建臨時層,保存層的定義為1個resource,存儲在session repository中,再把這個resource添加到地圖中.具體步驟如下:
(1)把XML格式的layer definition添加到地圖中,返回層對象.
(2)添加這個新層的definition resource到session repository中.
(3)把已經(jīng)保存到session repository中的這個layer resource添加到地圖中,返回層對象.
(4)添加這個新層到group中.
如果只是想根據(jù)地形查看一下設(shè)計效果,則可直接刪除臨時層,并不會被寫入到數(shù)據(jù)庫中;如果確定要添加點(油井、水井等)、線(管線等),則需要把臨時層轉(zhuǎn)換為永久層,寫入到XML數(shù)據(jù)庫,存儲在library repository中.
byteSource = new MgByteSource(layerDefinition,strlen(layerDefinition));
byteSource.SetMimeType(MgMimeType::Xml);
resourceId = new MgResourceIdentifier(“Library://LayerName.LayerDefinition”);
resourceService.SetResource(resourceId,byteSource.GetReader(),null)
在地圖設(shè)計中,以直觀地形圖等專題圖為背景,參考標(biāo)準(zhǔn)坐標(biāo)系,實現(xiàn)實時距離量算,對具體生產(chǎn)應(yīng)用的幫助非常大.該功能也在創(chuàng)建臨時層基礎(chǔ)上實現(xiàn).它以SRS(Spatial Reference System)為單位計算,首先創(chuàng)建1個MgCoordinateSystemMeasure對象,作為參數(shù)傳遞給MgGeometry::Distance().例如,計算2個MgGeometry類型對象a和b之間的距離時,使用SRS完成以下步驟:
measure = new MgCoordinateSystemMeasure(srs);
distInMapUnits = a.Distance(b,measure);
distInMeters = srs.ConvertCoordinateSystemUnitsToMeters(distInMapUnits)
在用戶使用實現(xiàn)距離量算功能的同時,在地圖上實時顯示出所量算的路線線段.通過以下步驟實現(xiàn)顯示線段的功能:(1)把數(shù)字化坐標(biāo)從客戶端傳遞到服務(wù)器端;(2)創(chuàng)建臨時要素源,用來繪制線段;(3)創(chuàng)建1個圖層,用來顯示上一步的臨時要素源.
4 討論與總結(jié)
本系統(tǒng)使用Autodesk公司的開源GIS平臺MapGuide開發(fā)油田地面信息管理系統(tǒng).充分利用對空間數(shù)據(jù)支持非常好的WebGIS技術(shù),建立1個共享管理平臺,實現(xiàn)油田地面信息管理的網(wǎng)絡(luò)化,并在江蘇油田的實際生產(chǎn)中加以應(yīng)用,充分證明此系統(tǒng)的可行性.開源軟件的應(yīng)用使該系統(tǒng)具有較高的可移植性和可擴展性,也更容易被推廣.下一步還將充分利用WebGIS的優(yōu)勢,開發(fā)與PDA的集成,使油田的野外作業(yè)變得更加方便快捷.
參考文獻:
[1] 趙明宸,韓林. 基于WebGIS的油氣勘探開發(fā)信息可視化管理系統(tǒng)的研究與開發(fā)[J]. 計算機應(yīng)用研究,2004,21(8):225-226.
[2] 胡正才,張李超,王劉記. 基于XML和Web服務(wù)的開放式企業(yè)管理信息系統(tǒng)構(gòu)建方案[J].計算機輔助工程,2008,17(1):96-100.
[3] 龐鯤,邢漢承. 多種非空間數(shù)據(jù)與GIS應(yīng)用的集成[J]. 計算機輔助工程,2003,12(3):56-60.
[4] 談可莉,徐浩. 大慶油田地面工程信息系統(tǒng)建設(shè)的理論與實踐[J]. 油氣田地面工程,2007,26(1):8-11.
[5] 畢碩本,馮磊. 油田地面建設(shè)信息系統(tǒng)總體設(shè)計[J]. 東北測繪,1998,21(4):33-36.
[6] 謝亮,胡明. 組建基于WebGIS的油田信息系統(tǒng)的構(gòu)想[J]. 西部探礦工程,2006 (10):298-299.
[7] 吳運超,王汶,牛錚. AJAX在WebGIS 中的應(yīng)用[J]. 地理與地理信息科學(xué),2007(2):43-46.
[8] MATHIYALAGAN V,GRUNWALD S,REDDY K R. A WebGIS and geodatabase for Floridas wetlands[J]. Comput & Electron in Agriculture,2005,47(1):69-75.
(編輯 廖粵新)