江苏油田地理信息系统设计与实现崔伦辉1),张万昌2.3)和徐士进2)(1. 南京大学国际地球系统科学研究所, 江苏南京210093;2. 南京大学地球科学系, 江苏南京210093;3. 中国科学院大气物理研究所东亚区域气候-环境重点实验室, 北京100029)摘要:江苏油田经过几十年的发展积累了大量的历史数据,为有效的利用、管理这些数据为生产决策服务,我们借助开源软件MapGuide搭建了油田网络地理信息系统平台。
系统集空间数据、生产数据、影像数据于一体,通过FDO实现MapGuide与数据库的连接,并对影像进行分片处理来加快访问速度,实现了油田信息的共享、信息可视化查询分析、地图管理等功能。
关键词:MapGuide;MySQL;开源;WebGISDesign and Implementation of Jiangsu Oilfield GISLunhui, Cui1),Wanchang, Zhang2, 3) and Shijin Xu2)(1.International Institute for Earth System Science, Nanjing University,Nanjing, 2100932. Department of Earth Sciences, Nanjing University, Nanjing, 2100933. Key Laboratory of Regional Climate-Environment Research for TemperateEastAsia (RCE-TEA), Chinese Academy of Sciences, Beijing 100029) Abstract:After several decades of development, Jiangsu Oilfield has accumulated large amounts of historical data. For effective use of these data for daily production and decision-making, we developed Jiangsu oil field GIS using MapGuide. The system contains spatial data, production data and images, while MapGuide connects database via FDO technology and in order to reduce user access waiting time, we separated the large image into small pieces. The system has lots of functions such as information sharing, data query and analysis and map management.Key Words: MapGuide; MySQL; Open Source;WebGIS1 引言江苏油田经过几十年的发展积累了大量的历史数据,但是这些数据在使用过程中存在诸多问题,比如:1)数据格式不统一,有些数据是存储在excel表中,有些存储在数据库中,有些是CAD文件,有些空间数据坐标系统采用北京54坐标,有些采用西安80坐标,这样造成了在使用过程中的诸多不便。
2)存储方式多样,有些是纸质的,有些是电子的。
3)由于文件众多,已经更新的数据,在文件中未能同步更新,导致时效性,准确度较低。
如何更好的管理、利用这些数据为生产、决策服务,GIS技术显示了其自身的优越性。
它不仅能够很好的管理数据并进行直观的可视化表达,同时能够为管理者提供决策支持。
在开发江苏油田地理信息系统中,如果采用一些商业软件,比如ArcIMS、MapXtreme、MapGIS-IMS、SuperMap等,除了要承担较高的开发成本(这些软件花费少则几万多则几十万),同时它们的开放性有限,在软件选择时要考虑GIS平台和数据的兼容性[1]。
相比较而言开源软件具有费用低甚至零花费、扩展性强的特点,而且,开源软件一般都遵守OpenGIS规范,可定制性强,便于二次开放。
综合考虑性能和成本因素本系统的构建采用开源软件,GIS软件采用MapGuide,数据库采用MySQL。
2 系统设计2.1 系统总体结构设计本系统采用多层的分布式应用模型,可以有效的分散数据层、逻辑层和表示层。
多层结构设计最大的好处在于它的拓展能力和负载均衡能力[2]。
图1为系统结构图。
浏览器TomcatServletMapGuide ServerJavaBeanJDBC影像文件数据库JspApache客户端网络服务器应用服务器数据层图1 系统结构图2.1.1 客户端系统客户端为“瘦”客户端,客户端仅需一浏览器不需要安装其他任何软件。
客户端开发采用Ajax技术,MapGuide 为便于二次开发提供了MapGuide Viewer API,空间数据的显示、维护借助API函数实现。
2.1.2 Web服务器[3]系统的Web层主要是由Jsp和Servlet组成。
它们的管理和执行主要靠Tomcat和Apache来完成。
2.1.3 应用服务器应用服务器层主要包括业务逻辑和GIS服务器。
空间数据的操作通过FDO实现MapGuide Server与数据库的连接,属性数据的操作通过JDBC 实现与数据库的连接。
2.1.4 数据层包括数据库服务器和影像文件。
数据库中存储空间数据和业务数据,影像文件为江苏油田区域的QuickBird和中巴资源卫星影像文件。
2.2 数据库的设计江苏油田地理信息系统的数据源可以概括为三类:一类是基础数据,包括油井、水井、管线、房屋等信息的空间数据资料;第二类是生产数据,包括设备、仪表、站库设施等属性信息;第三类是遥感影像数据。
第一类数据和第二类数据存储在数据库中,第三类数据按文件方式存储。
空间数据库部分根据实体性质可以将地物划分为点状地物和线状地物。
由于QuickBird影像比较清晰,同时避免数字化,将房屋、罐等面状地物按点存储,这样点状地物包括油井、水井、计量站、配水间、联合站、中转站等;线状地物包括输水管线、输油管线、输气管线等。
每一地物类型在数据库中存储为一张表,对应MapGuide中的一个图层。
设备、仪表、泵、罐等属性数据存储为一般的关系表。
根据原始数据的内容、特征和生产的需求,将数据库中空间数据划分为以下11层:油井层、水井层、计量站层、配水间层、联合站层、中转站层、注水站层、输油管线层、输水管线层、输气管线层和影像层。
考虑到系统的安全因素,不同人员拥有不同的权限,为此需明确设备、设施等实体的隶属关系,以油井为例作一介绍,油井作为点状地物存储,其表结构如表1所示,由于维修记录可能为多次,将维修记录存储在另外一张表表2中,表2通过featid与表1关联。
字段名字段类型含义featid bigint(20)唯一编号,Keymc varchar(20)井名ssc varchar(20)所属厂名ssd varchar(20)所属队名jlz varchar(20)所属计量站。
geometry Geometry空间数据表1 油井数据表字段名字段类型含义id bigint(20)唯一编号,Keyfeatid bigint(20)featid号wxry varchar(20)维修人员wxsj datetime维修时间sm varchar(1000)情况说明ip varchar(20)维修人员ip地址。
表2 维修记录表2.3 系统安全设计安全性是一个系统的必要特征,数据库管理与应用系统的安全保密按照安全保密重要程度由大到小的顺序依次为信息安全、病毒防治、介质安全、数据库安全、系统安全、网络安全、设备安全等[4]。
如图2所示。
江苏油田地理信息系统在开发过程中需要考虑的安全因素包括数据库安全和系统安全。
数据库安全方面,采用基于视图的数据访问机制,用户只能使用已授权的功能,可将访问权限控制在记录级,为防止介质崩溃,定期备份数据库数据;系统安全方面,通过设置NT的域用户管理,在网络内部使用代理网关、设置网络防火墙,限定IP地址访问,安装防病毒系统等方式来提高系统的安全性。
3 系统实现为将系统做成一开放的系统,以便日后新功能的添加,系统在设计开发过程中,运用系统工程的理论和方法,对各业务模块进行统一系统功能分析,各功能模块之间采用统一的对象模型、标准的代码体系、约定的处理方式和通用的接口,充分利用MapGuide软件所提供的现有功能,并在此基础上拓展油田实际生产过程中的具体需求功能,力求开发出界面友善、功能完善、结构灵活、性能良好的系统。
3.1 MapGuide简介开源MapGuide包括MapGuide Server和MapGuide Web Server Extensions。
Server 在操作系统中作为一个服务运行,既可存取本地服务器上的数据,也可存取通过FDO技术连接其它服务器上的数据。
Web Server Extensions提供了完整的API函数,它是用户与Server交互的“桥梁”,支持PHP、.NET、Java三种开发语言。
MapGuide Studio为用户提供了一个便于发布地图的管理工具,在Studio中发布地图应用的步骤为:首先要创建Data Connection、然后创建Layer,选择Map中需要显示的Layer,最后生成Layouts,发布地图应用。
3.2 数据的预处理3.2.1 空间数据的处理原始空间数据只有点的坐标,并且不同厂区采用的坐标系不同,为方便管理将它们统一转换到WGS84坐标系下,并在ArcGIS中生成shp文件,然后导入到MySQL数据库中。
每个图层对应数据库中的一张表,表中包含属性数据和空间数据,为了使FDO能够读取数据库中的数据,需要创建几个辅助表。
比如表f_attributedefinition定义了每个空间数据表的属性字段类型;表f_classdefinition定义了每个空间数据表的classid;表f_classtype定义了类别;表f_schemainfo中记录了模式的信息;表f_spatialcontextgroup中记录了坐标系的信息。
3.2.2 影像数据的处理江苏油田位于东经117.5°~120.5°,北纬32°~33.5°之间,覆盖面积约为3万平方公里。
由于油田分布零散缺乏大比例尺的基础数据,为了直观的显示,我们购买了油井密集区的0.6米分辨率的QuickBird影像,其它地区使用免费的19.5米分辨率的中巴资源卫星影像。