基于MapGuide的油田地面管理信息系统
2009-04-21马沧徐士进董少春徐震张霞
马 沧 徐士进 董少春 徐 震 张 霞
摘 要:根据油田地面工程信息管理需求,开发基于MapGuide的具有3层浏览器/服务器(Browser/Serrer,B/S)体系结构的WebGIS,建立油田地面管理信息系统. 该系统具有地图浏览、数据动态添加、实时显示和漫游等功能;充分利用WebGIS技术,建立共享管理平台,实现油田地面信息管理的网络化;实现油田单井、管线、站库、厂区、道路和地形等地面数据的统一管理,形成集原油、天然气、油田伴生气集输,注水和采出水处理管网,以及输供电线路为一体的可视化数据平台,为数字油田的地面工程管理提供解决方案. 该系统在江苏油田的应用证明其可行性.
关键词:油田地面工程信息管理;MapGuide;WebGIS
中图分类号:TE4;P208;TP311.52
文献标志码: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 上具有浏览器/服务器(Browser/Server,B/S)体系结构的网络GIS.它改变传统GIS的运行模式,使得用户可以利用浏览器从Web上的任意节点浏览WebGIS 站点中的空间数据,进行资料传输、制作专题图等,从而将Web 的信息发布与GIS 这一直观工具结合,使人们通过Web浏览查询信息更加方便,也使GIS的功能通过Web得到普及和扩展.[1]在通用的地理信息系统工具支持下建立实用信息系统,可以节省软件开发的人力物力和财力、缩短系统建立周期、提高系统水平,使GIS技术易于推广,也可以把更多的精力投入到高层次的应用开发上.
过去油田地面工程信息一直存在数据零散、缺失的问题,给领导决策、科研开发、规划设计以及生产管理带来很大困难.随着时间的延续和人员变动,这些问题将会越来越突出.MIS成为企业信息化工程的重要研究内容[2],能够通过友好的GIS应用界面获取这些详细、准确、实时和有针对性的数据[3].利用网络技术和数据库技术开发建立地面建设工程信息管理系统,是充分利用地面工程信息资源,提高地面工程规划设计水平及生产管理水平,保证地面工程信息统一、集中、分级共享管理的有效手段[4];可以方便、迅速、精确地对油田地面空间信息及属性信息进行储存、查询、分析,以弥补手工绘制地图或计算机绘图不能有效组织信息、管理信息和应用信息的不足,提高油田规划方案的质量及效率[5].GIS 技术恰好为石油行业搭建1个理想的数字化可视平台,将地面地理信息、地下地质信息及生产信息在同一应用平台上有机结合起来进行综合研究分析,因此需要积极开发WebGIS[6].本文即针对油田系统的上述特点,利用油田内部的网络优势,开发1种基于MapGuide的3层B/S结构的WebGIS架构,实现油田地面建设工程的信息化网络管理.
1 MapGuide的技术特点
石油行业日常业务中1个非常重要的需求就是对地下油井、管线的管理与操作,即要求通过可视化界面浏览与监控输油管线,实时添加、修改和删除管线、油井的信息等,另外还需要对各种类型的数据进行统一管理.与其他WebGIS商用软件平台(如ESRI的ArcIMS,MapInfo的MapXtreme,Autodesk的MapGuide等)产品相比,MapGuide在这些方面有着较大优势.它是Autodesk公司提供的开源WebGIS解决方案,既可以方便快速地进行地图发布,也可以实现MapTip功能.另外,它还将Tile功能封装于其产品中,可对Raster图像进行分块发布,提高浏览速度,对于要求叠加显示高分辨率遥感影像的应用系统,具有独特优势.油田有着大量用AutoCAD制图的图形数据,而MapGuide对DWG格式的支持也非常好.MapGuide使用FDO(Feature Data Object)对工业标准空间数据格式(如Oracle,SQL Server ODBC,Oracle Spatial,ArcSDE,OGC WMS,OGC WFS,SDF,DWF,DWG,SHP和Imagery等)进行直接调用.FDO提供1个单一接口连接全部数据,使得用户可以用统一的方式直接访问多种不同GIS数据,而不需要把现有数据上载到服务器或者转换格式,方便异构数据的统一管理.
MapGuide支持客户端与服务器之间大量、频繁、即时的交互通信,并以GML(Geography Markup Language)或图片形式传输数据,内嵌的AJAX Viewer是1个基于AJAX(Asynchronous JavaScript and XML)技术的纯DHTML浏览器,不需要在客户端安装插件和ActiveX控件,通过对XML文件的操作动态生成地图.AJAX使用DOM(Document Object Model)进行动态显示及交互,使用XML 和XSLT(eXtensible Stylesheet Language)进行数据交换及相关操作,使用 XMLHttpRequest 进行异步数据查询、检索,使用 JavaScript 将所有的东西绑定在一起.[7]因此,能够创建更好、更快、更具有交互性的Web应用程序.
2 系统设计
2.1 系统需求
本系统实现对江苏油田的单井、管线、站库、厂区及道路、地形等地面数据及相关信息进行统一的可视化管理.以地理空间信息为基础平台,将油气田地面建设工程的各种空间实体与数据自然组织在一起,建设成为1个集原油集输、天然气或油田伴生气集输、注水及采出水处理管网、输供电线路为一体的可视化数据平台,使用户可以在实际地理背景下方便地查询生产数据.用户可在任何地点(如油田公司机关各部室、设计院、各厂等)通过网络,对地面工程的生产管理和地面建设规划等进行信息化操作,对相应的空间数据进行查询、管理及维护,使规划设计人员摆脱用彩笔和大图纸进行手工计算的工作现状,缩短工作周期,提高规划方案的准确性和科学性.[5]
2.2 系统架构
基于MapGuide的3层B/S结构的WebGIS架构,分为服务器层、网络层和客户端层,采用Windows Server 2003 + Apache + Jsp的开发架构,使用MapGuide提供的丰富API(MapGuide Web API和Viewer API)进行灵活的二次开发,见图1.
图 1 系统结构
用户使用浏览器进行操作,通过TCP/IP协议从客户端传递请求,通过MapGuide Web API访问Web Extensions.Web Extensions包含1个MapAgent CGI/Fast-CGI模块,可以使MapGuide Server提供的服务通过Internet或Intranet传递给客户端应用程序.MapGuide Server分为站点服务器(Site Server)和支持服务器(Support Server).站点服务器负责用户认证、管理逻辑事务、数据仓库和资源管理,1个站点只有1个服务器.支持服务器负责基于DWF或映像文件创建地图,通过FDO访问数据及地图分块管理,1个站点可以有多个支持服务器.客户在向某个服务器提出服务请求时,并不需要知道所要求的信息是否在该服务器上、信息在哪里,统一由服务器解决.如果服务器发现所请求的信息不在该服务器上,它就会向其他服务器发送请求并找到所需信息.MapGuide Server提供以下服务:站点服务(Site Service)、资源服务(Resource Service)、图形服务(Drawing Service)、特征服务(Feature Service)、地图服务(Mapping Service)、渲染服务(Rendering Service)和分块服务(Tile Service).这7种服务都是用来处理用户发送的一系列请求的,对于使用者是同一对象.通过对这7种服务的API操作,可以实现系统功能.当用户发送请求浏览页面时,首先在站点服务器创建与站点之间的连接,建立用户session,然后创建服务.资源服务主要用来管理资源数据库和地图数据,例如对地图的加载、复制、移动、重命名和删除.地图和渲染服务用来显示和打印地图、管理地图图层和层组以及创建地图图例.要素服务用于保存和返回与数据类型无关的特征数据,利用FDO访问不同格式的地图数据,针对地图数据源执行空间和列表查询,编辑地图(创建、更新和删除).分块服务用来对系统中使用的高分辨率影像数据进行分块,使地图显示平滑连续.MapGuide提供1个XML(eXtensible Markup Language)数据库用于存储和管理资源,支持大多数普遍使用的空间数据格式、数据库格式和OGC标准.
3 系统功能及实现
对系统的功能设计,主要突出增强可视化数据管理,对生产流程中的井、管线、各种站库设备的动态实时监控维护功能,并对其进行设计及动态关联显示等.具体功能模块见图2.
图 2 系统功能模块
3.1 地图及图层浏览
地图包括地形图、地面系统图、工艺流程图、站内平面布置图等.该模块主要实现对图形信息进行放大、缩小、漫游、要素选择、缩放到选定区、快速返回初始页面等功能.在高分辨率遥感影像做背景的情况下,可直接从计算机屏幕上查看地面管线、井位、站库等在野外的真实位置.实际效果见图3.
图 3 系统浏览界面
浏览功能包括专题图层的分层浏览和不同专题图层的叠加浏览.由于各种信息均以图层方式存储显示(如油井、水井、集/输油管线、集/输气管线、站库等都分别为1个单独图层),可以选择单独显示,如只显示所查看区域的油井图层;也可以选择不同图层的叠加浏览,如同时显示所查看区域的油井图层和集/输油管线图层.这样,就可以对不同层面上的生产流程分别进行考察或综合分析.
3.2 数据管理
江苏油田提供大量实验区空间数据和属性数据,如井(油井、水井、气井)、管线(油管线、水管线、气管线)和各类站库(联合站、计量站、中转站、配水间、注水站等)的坐标数据及其内部各种设备(泵、罐、分离器等)的本身数据和维护信息,及其他相关信息(房屋、道路、水池等).由于其过去均以Excel表格形式存储,需要转换成具有统一参考坐标的SHP文件,再进行相应的管理维护.
根据油田实际需求建立相应数据库,需要归纳划分各种生产活动中涉及到的实体,从概念模型设计到抽象模型设计,建立可提供强大搜索支持的空间和属性数据库,以支撑用户对各类信息和流程的查询、浏览和分析(见图4).[8]另外,对数据操作进行权限分级设置,通过设置管理员权限,使管理人员通过用户验证,对后台数据库进行插入、删除、更新等管理维护.普通人员只能进行浏览、查询操作,不能增删数据库.相应界面效果见图5和6.
图 4 数据管理示意图
图 5 站库查询编辑界面
图 6 设备查询编辑界面
3.3 地图查询
对不同专题图中要素的查询显示及对地面信息的查询是GIS平台的重要功能之一,主要分为2种查询.
(1)对空间要素的查询(包括油水井信息查询和管线查询等).这种查询是对MapGuide Web Server Extensions提供的MapGuide Web API进行二次开发而实现的.为了检索现有要素,并通过一定格式返回查询结果,需要进行以下操作.
①创建查询:
Query = new MgFeatureQuery-Options().
②创建filter限定查询条件:包括basic filter和spatial filter,也可以组合使用.
③查找要素:使用MgFeatureService::SelectFeatures()方法,查询包含要查找要素的要素类.
④调用MgFeatureReader::ReadNext()方法,继续读取要素到feature reader中.
⑤使用MgFeatureReader::GetGeometry()方法获得geometry数据,此时数据格式为AGF格式.
⑥使用MgAgfReaderWriter::Read()方法把AGF格式转换为MgGeometry对象格式.
⑦返回查询结果.
(2)对空间要素的属性进行查询(包括站库信息查询、站库设备查询以及联合站的流程查询等).此功能主要在构建空间数据库和属性数据库的基础上实现,通过对各种属性数据的组合查询,得到所需数据结果列表,并提供把结果列表转化为Excel格式表格的功能,为日常工作提供方便.
对空间数据和属性数据的查询可以通过MapGuide支持的FDO接口对各种数据格式进行统一管理及关联显示,见图7.
图 7 查询结果界面
由于油田系统的数据量较大,在与服务器进行数据交互时,如果按传统页面交互来操作,其响应效率是个很大的问题,而MapGuide在浏览器端支持AJAX技术,因此在浏览器端显示查询结果时,可以利用其与服务器应答的异步性,在客户端通过浏览器利用JavaScript 处理DOM数据,并依据XHTML和CSS(Cascading Style Sheet) 规范进行界面绘制.
3.4 地图设计
油田的工程设计规划人员对专题图的设计有很大需求.此功能的开发可以使用户在浏览器端,结合地形图、坐标系统直接创建临时层,进行点(油井、水井等)、线(管线等)的添加、修改和删除操作,以此更新地图或设计新地图(功能界面见图8).由于有相应的参考坐标系,还可以在设计地图时,及时准确地得到各个点的坐标,有利于与油田其他各种空间信息相融合.
图 8 地图更新界面
MapGuide在Resource Database中以XML文件存储map definitions,layer definitions,data source connections,symbol definitions和Web layouts.这些XML文件被称为resources,以目录结构存储在Resource Database中.每个resource有2个基本组成部分:header和content.content就是XML文件本身,header也是XML文件,用来定义access permissions和resource的元数据.因此,不用读完文件全部内容就可立即分辨出definition的类型.所有resource XML均根据W3C XML schema描述.
地图设计功能的实现主要针对以XML格式存储的resource进行操作.Resource Database分为2个存储容器:library repository和session repository.library repository 用来存储resource文件,可以对其编辑和管理,是所有用户共享的;session repository 存储特定用户信息,只有此用户有访问权限.当session结束,session repository中的信息也被删除.在进行地图设计时,首先创建临时层,保存层的定义为1个resource,存储在session repository中,再把这个resource添加到地图中.具体步骤如下:
(1)把XML格式的layer definition添加到地图中,返回层对象.
(2)添加这个新层的definition resource到session repository中.
(3)把已经保存到session repository中的这个layer resource添加到地图中,返回层对象.
(4)添加这个新层到group中.
如果只是想根据地形查看一下设计效果,则可直接删除临时层,并不会被写入到数据库中;如果确定要添加点(油井、水井等)、线(管线等),则需要把临时层转换为永久层,写入到XML数据库,存储在library repository中.
byteSource = new MgByteSource(layerDefinition,strlen(layerDefinition));
byteSource.SetMimeType(MgMimeType::Xml);
resourceId = new MgResourceIdentifier(“Library://LayerName.LayerDefinition”);
resourceService.SetResource(resourceId,byteSource.GetReader(),null)
在地图设计中,以直观地形图等专题图为背景,参考标准坐标系,实现实时距离量算,对具体生产应用的帮助非常大.该功能也在创建临时层基础上实现.它以SRS(Spatial Reference System)为单位计算,首先创建1个MgCoordinateSystemMeasure对象,作为参数传递给MgGeometry::Distance().例如,计算2个MgGeometry类型对象a和b之间的距离时,使用SRS完成以下步骤:
measure = new MgCoordinateSystemMeasure(srs);
distInMapUnits = a.Distance(b,measure);
distInMeters = srs.ConvertCoordinateSystemUnitsToMeters(distInMapUnits)
在用户使用实现距离量算功能的同时,在地图上实时显示出所量算的路线线段.通过以下步骤实现显示线段的功能:(1)把数字化坐标从客户端传递到服务器端;(2)创建临时要素源,用来绘制线段;(3)创建1个图层,用来显示上一步的临时要素源.
4 讨论与总结
本系统使用Autodesk公司的开源GIS平台MapGuide开发油田地面信息管理系统.充分利用对空间数据支持非常好的WebGIS技术,建立1个共享管理平台,实现油田地面信息管理的网络化,并在江苏油田的实际生产中加以应用,充分证明此系统的可行性.开源软件的应用使该系统具有较高的可移植性和可扩展性,也更容易被推广.下一步还将充分利用WebGIS的优势,开发与PDA的集成,使油田的野外作业变得更加方便快捷.
参考文献:
[1] 赵明宸,韩林. 基于WebGIS的油气勘探开发信息可视化管理系统的研究与开发[J]. 计算机应用研究,2004,21(8):225-226.
[2] 胡正才,张李超,王刘记. 基于XML和Web服务的开放式企业管理信息系统构建方案[J].计算机辅助工程,2008,17(1):96-100.
[3] 庞鲲,邢汉承. 多种非空间数据与GIS应用的集成[J]. 计算机辅助工程,2003,12(3):56-60.
[4] 谈可莉,徐浩. 大庆油田地面工程信息系统建设的理论与实践[J]. 油气田地面工程,2007,26(1):8-11.
[5] 毕硕本,冯磊. 油田地面建设信息系统总体设计[J]. 东北测绘,1998,21(4):33-36.
[6] 谢亮,胡明. 组建基于WebGIS的油田信息系统的构想[J]. 西部探矿工程,2006 (10):298-299.
[7] 吴运超,王汶,牛铮. AJAX在WebGIS 中的应用[J]. 地理与地理信息科学,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.
(编辑 廖粤新)