矿区地质数据综合集成管理平台的设计与实现*
2023-01-18陈黎明冯晓林张佳琦
陈黎明,冯晓林,张佳琦
(1. 山西省煤炭地质114勘查院,山西 长治 046011;2.太原理工大学 矿业工程学院,山西 太原 030024)
0 引言
煤矿地质勘探是煤炭生产过程中必不可少的基础工作,矿区经过多年的地质勘探工作,逐渐积累形成了庞大的地质资料数据集,地质资料的准确性、完整性是煤矿安全生产的重要保障[1]。由于地质数据种类繁多,结构复杂,目前还没有形成完备的管理模式。地质数据在应用过程中经常更新、检索、叠加和关联图形信息,目前仍然应用单一的数据文件进行分散管理,对已有成果重新利用带来不便,且效率低下,也存在保密数据泄密的风险。
为实现地质勘探数据管理标准化,地质数据共享互操作,同时解决数据分散化同质化问题,集成化的概念被引入地质勘探领域[2-3],根据地质勘探数据的自身特点、结构类型的不同,采用的数据集成方法不同。开发专用的地质数据综合处理软件是一种常用的集成手段[3-5],马锋[3]提出基于MapGIS平台管理的工程地质资料集成与服务架构,并就数据库的建设进行了分析,主要以MapGIS能兼容的数据为主,数据兼容范围有限,利用GIS技术平台集成小范围内的地质勘探数据,其优点成本低、效率高,对于大范围矿区,单一应用GIS平台集成种类繁多的多源异构数据存在困难。
由于矿区开采范围相对固定,开采周期长,随着开采技术的革新和发展,煤矿生产中逐渐积累了大量的地质勘探数据,地质数据具有多源异构、多基准、多维度、多尺度、多时空等特点[6],这给地质勘探数据的综合集成造成一定困难。需根据矿区地质勘探数据自身的特点和应用目标来研究探索一套行之有效的综合集成方法,实现矿区地质勘探数据的高效利用和信息共享,同时能够节约成本,避免重复勘探。
尽管地质科技人员已经认识到地质数据集成的重要性,并就地质勘探数据如何有效集成、进行过有益的探索和研究,主要开展了区域性勘探找矿[7]和成矿机理综合探测[8]等方面的研究和应用,但是针对矿区的地质勘探数据综合集成平台的设计与开发鲜有研究。为此,本文针对矿区地质勘探数据呈现出多源异构的特点,主要应用GIS中间件和数据库中间件技术构建了矿区地质勘探数据综合集成管理平台,并以潞安—晋城矿区为研究区域,实现了矿区地质数据成果的综合集成,较好地解决了潞安—晋城矿区地质勘探数据存在管理上离散化和应用中同质化的问题,为今后建设矿区生产“一张图”信息平台奠定基础,同时促进“集成化”在矿区地质数据管理中的推广和应用。
1 平台总体设计
1.1 平台架构设计
矿区地质勘探数据集成的关键是如何有效集成非结构化空间数据,不同软件有不同的数据格式,为了实现数据互操作和开放共享,软件之间常用数据格式转换来完成异构数据的集成,数据格式存在兼容性差,信息丢失等诸多问题[6]。近年来,在计算机科学领域发展起来的中间件数据访问技术是解决多源异构数据访问操作的一种主流技术,中间件是独立于系统软件的中间应用程序,标准化了访问接口,统一了协议[9]。将GIS中间件技术和数据库中间件技术相结合可实现矿区地质多源异构数据的协同访问操作和数据共享服务。
考虑到开发成果和效率,本文应用空间数据库中间件技术和主流GIS中间件技术构建了如图1所示的矿区地质数据综合集成平台架构,主要由数据存储层、计算服务层、应用层组成。数据存储层负责对多源异构数据访问与管理,其中非结构化空间数据是独立的专用数据文件,可利用MySql、PostgreSQL等开源空间数据引擎来实现管理,在空间数据库中用二进制大字段存储。结构化数据常用二维表格和独立的Access数据库管理,结构化数据相对容易集成。计算服务层应用数据库中间件的提供的访问接口完成用户提交的服务请求操作。应用层负责发送客户端程序向服务层提交的服务请求任务和操作命令,例如数据的查询检索、查看浏览、计算分析以及数据的传输服务等。
图1 矿区地质数据集成平台架构Fig.1 Framework of mining area geological data integration platform
1.2 功能模块设计
系统主要功能模块划分如图2所示。
图2 矿区地质数据集成平台的功能模块Fig.2 Functional module f mining area geological data integration platform
1)数据入库:主要完成各类数据存入数据库,每一类数据需要构建一个对应的数据表,表与表之间建立对应关系。地质数据资料类型多样,单个图形数据文件较大,因此,在数据入库时,充分考虑数据表结构性能优化、SQL语言调优。此外,要能够通过系统界面上传到数据库中,同时支持下载到本地。
2)查询统计:通过关键词、坐标范围以及空间对象的属性值完成查询和统计。
3)浏览查看:设计各类数据的浏览查看功能,图形数据支持常用矢量格式,文档数据以PDF、Word为主,表格数据导出Excel格式。
4)空间查询与分析:给定区域范围,通过空间查询分析给出区域内已有资料的分布情况。
5)打印输出:设计具有打印预览功能的输出模块;系统能够将结构化数据,如钻孔生成统计报表。
6)系统管理:用户在管理员赋予的权限下应用平台,例如:一般用户仅供预览和查看,高级用户可供上传下载和编辑。高级用户同时能够记录用户的操作日志,实现用户数据操作的溯源。
1.3 数据库结构设计
对于任何数据管理系统,数据库的建立是不可缺少的,合理的数据库表结构既能方便数据的管理又能提高系统的运行速度[9]。本系统以勘查项目作为基本管理单元,勘查项目涉及的地质数据主要包含有钻孔数据、钻孔柱状图、文档数据和图形数据等。为了方便数据的管理,为每种数据都设计了各自的表结构,同时赋予主键和建立索引,如此既保证了数据不会冗余又增强了数据的操作效率,对图形图像、文档数据等非结构化数据在数据表中以二进制格式字段表现。
平台共设计了15个数据表,其中涉及勘查项目信息有“项目基本信息表”和“边界点坐标表”;文档类数据表有文档数据表、图形数据表和钻孔柱状图表;钻孔数据表主要有钻孔的基础信息、单孔的基本信息、地质记录、煤层记录、煤质分析信息和煤样试验记录等8个表;辅助表有用户管理表和操作日志表。图3从左到右依次为:项目基本信息表、文档数据表和边界点坐标表的字段值及数据类型。
图3 主要表结构及数据类型Fig.3 Main table structure and data type
2 实现的关键技术
数据库中间件是操作异构数据库的一种主流技术,数据库中间已经实现了数据库常用数据访问功能,因而可避免访问操作异构数据库的底层操作逻辑,同时降低了客户端与数据库服务之间的耦合度[4]。GIS中间件是实现多源异构数据集成的另一种主流技术,GIS中间件实现了复杂的非结构化空间数据的访问操作,其优点是为客户端提供统一的空间数据读写接口,不需要直接访问操作数据库,而是借用数据库中间件技术来间接访问和管理非结构化空间数据。GIS中间件能够兼容主流非结构化数据格式,因而不需要格式转换就能够完成各类数据的共享和互操作,同时能够完成GIS常用的地理计算和空间分析。本文应用ADO.NET数据库中间件和MapWinGIS中间件(一种主流GIS中间件)以及NPOI组件进行联合开发矿区地质数据综合集成平台。
2.1 MapWinGIS中间件
MapWinGIS最初是为解决GIS问题而开发的一种开源地理信息系统软件,现在开发人员常将其当作一种可以用来可视化并操作地理矢量、栅格数据的地图引擎,其在COM思想的基础上,利用VC++语言开发,并且可以在多种语言环境下进行功能开发设计,包括主流的.NET开发平台,能快速添加到用户开发的软件系统中[10]。
MapWinGIS实现了主流GIS数据访问功能,可以直接操作Shapfile、Image、TIN 、Grid、DBF常用格式的数据文件;对图形进行查看浏览,属性编辑、实体标注,矢量数据符号化,栅格数据透明化;对矢量数据进行空间分析、查询;在图层上直接增加新的空间数据,读取图层中的相关数据[11]。
2.2 ADO.NET中间件
ADO.NET是支持数据库应用程序开发的数据访问中间件,它是建立在.NET Framwork提供的平台上的数据库访问编程模型,它由.NET Framwork中提供的一组数据访问类和命名空间组成,包含了一系列函数访问的组件库。可以使用COM编程技术来访问数据库[12]。ADO.NET包括5个主要数据库访问对象(Connection、DataReader、Command、DataSet、DataAdapter)。应用ADO.NET访问数据库首先要建立数据库连接,然后可直接读取或更新数据。ADO.NET访问数据库操作流程如图4所示。
图4 ADO访问数据库操作流程Fig.4 Operation flow of ADO accessing database
2.3 NPOI组件
地质数据有大量的钻孔记录、岩层台账等格式化数据,原始记录多数以Excel、Access格式进行存储,系统考虑到数据交换和报表统计分析,需要将Excel格式文件导入数据库,也可以将数据表中查询结果导出为Excel格式文件。NPOI是一个开源的C#读写Excel、Word等文档格式的第三方组件库,可以在不用安装office的情况下读写几乎所有的Office文件格式[13],而且其读写速度快稳定性好,组件中包含的Excel操作对象与其对应的操作方法,实现对Excel文档的导入与导出操作,应用NPOI组件显著提升了效率,节约了开发成本。
根据图1所示的地质勘探数据综合集成平台架构和上述数据库和GIS中间件关键技术,设计并开发了矿区地质勘探数据综合集成平台。鉴于该平台主要应用于地质部门相对固定的使用人员,而且地质数据的保密性要求高,故该平台采用C/S(Client/Server)模式进行开发。平台可安装在矿区内部的专用私有云上,结合企业局域网访问速度快,非常适用非结构化空间数据的操作和管理,而且安全性高。
3 平台的实现及应用
矿区地质数据综合集成平台利用软件Visual studio 2019进行开发,基于Microsoft .NetFramework 4.7.2构建,采用C#语言,以开源数据库MySQL为后台数据库管理存储数据,在MapWinGIS和ADO.Net中间件的支持下,实现了矿区地质数据综合集成管理。平台具备数据入库、查看浏览、检索查询、空间分析、统计汇总等基本功能,同时为管理人员提供地质数据维护和编辑等高级功能,注册用户经过管理员分配访问权限后方可登录平台进行操作,平台自动记录用户的操作并形成访问日志,便于数据操作的溯源,保证数据的安全。目前该平台在山西省煤炭地质114勘查院得到应用,并对潞安—晋城矿区地质数据进行综合集成,取得了预期效果。潞安—晋城矿区地质勘探数据成果经平台集成化之后,地质数据管理分散化和应用同质化问题得以解决,使地质成果管理规范,成果应用高效快捷。
4 结束语
地质矿产勘查为矿产资源开采提供必要的基础地质资料,是资源开采过程中一项基础性内容。本文针对矿区地质勘探数据存在管理分散化、应用同质化且有数据丢失风险等问题,经过对矿区地质勘探数据的结构和特点进行分析和总结,综合应用空间数据库技术和GIS技术,设计了适用于矿区地质数据综合集成的可视化平台。该平台应用MapWinGIS中间件实现图形数据的集成,应用NPOI组件完成结构化类数据的集成,应用空间数据库技术管理多源异常数据。该平台部署灵活、易操作、开发成本低,为实现矿区的地质勘探成果综合集成和共享提供技术支持,管理上避免数据的分散化,应用上降低数据同质化,从而可为煤矿企业在资源勘探中提高效率并节约成本。