余思汗,李 伟,王建勇,刘 超,单帅帅
(1.宁夏回族自治区地震局,宁夏 银川 750001;2.北方信息控制研究院集团有限公司,江苏 南京 210000)
地震应急专题图是指发生了破坏性地震后,尽可能完善、详尽地显示地震灾区的各种专题要素的地图[1]。它综合表达了地形地貌、人口分布、交通道路、危险源和重要目标信息[2]。专题图的优点就在于能够清晰地反映出震区的各种要素分布情况,通过灾情研判分析,能够科学地部署救援力量,精准实施切实可行的救援方案,因而专题图在地震救援方面发挥着至关重要的作用。
目前,地震应急专题图的制作是通过在地理信息辅助决策软件中取出地震影响场范围来人工操作ArcGIS软件制作专题图,这不仅要求操作人员具有一定的GIS知识,还要求他们能够熟练地使用ArcGIS等软件的能力,而普通的工作人员很难高效、快速、准确地完成地震应急专题图的制作[3]。因此实现简单高效的地震应急专题图成图软件成为解决问题的关键。对于以上问题,本文基于ArcGIS Engine二次开发组件,采用C#编程语言,开发出一套脱离ArcGIS Desktop的地震应急快速成图软件,通过调用人工配置MXD专题图模板和“十五”数字化改造后应急系统确定地震影响场,来实现地震应急专题图快速产出功能。
ArcGIS Engine 是美国 ESRI(Environmental Systems Research Institute,Inc.美国环境系统研究所公司)推出的一套完备的嵌入式GIS组件库和工具库,值得一提的是,使用ArcGIS Engine开发的GIS应用程序可以脱离ArcGIS Desktop而独立运行。用户根据自己的需求,使用ArcGIS Engine软件包开发具有针对性的GIS软件,能够避免使用ArcGIS Desktop复杂的工具箱带来的不便,也在某种程度上节约了开发经费[4]。而且ArcGIS Engine可以在多种开发语言环境下进行开发,它所提供的GIS组件和可视化控件都是可以在ArcGIS Desktop框架之外使用[5]。控件、工具条和对象库是ArcGIS Engine平台的3个关键部分。控件是通过嵌入方式成为GIS程序的用户界面组成部分;工具条是进行地理信息交互的GIS工具集合;对象库是ArcObject的几何图形、GIS数据源和Geodatabase的集合[6]。开发人员无需重新开发GIS功能,可以直接把定制好的工具嵌入已有的程序中,实现根据用户需求随时创建自定义应用软件的开发模式[7]。
专题图是地理要素、经济要素和人文要素等的表达形式的地图,根据对每个要素的不同需求,进行有选择的要素目的渲染,从而凸显出该要素在地理空间上的分布情况,使读图者能够很直观地得到所需的信息。所以专题图在制作过程中,需要详尽地考虑到地图表达方式,在制作复杂的专题图时,首先寻找出每一类专题图所存在的共同特征,把相同特征的专题图进行统一的地图表达处理,再对所需的专题图进行简单的模板加工,最后完成制作专题图模板,这样不但提高了制图效率和制图质量[8],还把繁琐的流程简化了,并且也使得专题图在表达上具有统一美观性。
本文利用ArcMap进行专题图MXD模板的文档制作,模板图层主要包括基础地理数据图层和专题图表达要素信息图层。专题图应该遵从完整的制图规范,制图要素主要内容包括:空间坐标系、底图、专题内容、指北针、比例尺、图例、图面整饰等,除此之外对于有其他需求的专题图还需加说明、表格等。为了避免重复的工作,本文对专题图模板特别进行分类整饰,根据需要表达的专题要素,进行不同图层的渲染,再将图层连接以及符号化样式储存在MXD文档中。图1为地震专题图的制作流程。
图1地震专题图的制作流程图Fig.1 Flow charts for making thematic maps of earthquakes
专题图的要素内容是为地震应急工作开展服务的,根据当前的地震应急需求而设计图件,主要包括的专题图件有:震中位置图、地震影响估计范围图、震中与主要城市距离分布图、震区交通图、震区人口分布图、震区水库分布图、震区GDP图、震区历史地震分布图、震区医院分布图、震区学校分布图、震区危险源分布图、震区潜在地质灾害分布图、震区烈度区划图、震区地质图和震区地震动峰值加速度区划图。专题图要素内容要求完整详实,图幅大小选用合适,根据图幅大小,设置合适的比例尺,并调整专题图中的注记字体大小,配置好的专题图MXD文档,根据专题图的要素内容和图幅大小进行命名保存。由于震级的大小不同,以及断裂的方向问题,导致的影响场范围和大小也不相同,为了尽可能地表达详尽,需调整各个震级专题图模板的比例尺大小,尽可能的把模板细划,以确保适用于各种情况。制作完成的专题图模板为后期的快速成图提供了方便,采用直接调用的方式,便可在最短的时间内获取到所需的各类专题图。
以专题图的MXD文档为数据源,本文开发地震应急快速成图软件,从实际应用的角度出发,对地震应急快速成图软件的开发提出以下几个方面的要求:
(1)稳定性。稳定性是衡量一个软件好坏最基本的评价指标,软件各项功能完美运行的前提是软件拥有良好的稳定性。软件要能够实现长时间无错运行,这就要求软件拥有良好的容错能力,对运行过程中产生的错误或异常情况能够进行有效的捕捉和及时的处理。
(2)易用性。对于一个应用软件,应当尽可能的让用户轻松使用,并提供良好的用户体验,因此要求本系统拥有友好的操作界面,对用户执行的各项操作有及时的反馈,对执行时间较长的操作应当有执行进度的显示,并采用多线程技术,使得耗时操作在执行过程中不影响其它操作的执行。
(3)适应性。在实际使用过程中,软件可能会被部署在不同的计算机中,不同的计算机的硬件和软件环境可能会有所差别,这就要求所开发的应用软件能够适用于当前主流配置的计算机。
(4)可扩展性。一个软件往往需要进行迭代开发来实现对软件的不断完善,随着今后研究的深入会对已有的技术方法进行改进或产生新的技术方法,这就要求所开发的软件具有良好的可扩展性,能够在原有软件的基础上实现功能升级和新功能的增加。
本文软件为C/S架构,软件总体结构主要分为五个功能模块:MXD文档一键导入模块、MXD文档预览模块、地图标题替换模块、震中设定模块和专题图成图模块。
(1)MXD文档一键导入模块:在地震应急制图的实际应用中,往往需要生成震区各类专题地图,每一类专题地图对应了一个MXD文档,因此需要加载多个MXD文档,只需要将要生成专题图的MXD文档放在同一个文件夹下,本模块便可一次性读取全部MXD文档,减少用户的操作数量。
(2)MXD文档预览模块:当用户选择导入软件的MXD文档时,软件可将选择的MXD文档加载在地图控件中,并且提供了缩放、选择、漫游和识别等工具,便于用户对加载的MXD文档进行预览检查。
(3)地图标题替换模块:对于地震应急成图的系列MXD文档,其标题的关键部分是地名和震级,该模块允许用户输入新的地名和震级,并用新的地名和震级替换MXD文档原来的地名和震级。
(4)震中设定模块:在该模块中用户可以设置指定坐标的震中位置,当完成震中设置后,系统将当前MXD文档的地图中心设置为指定的坐标位置,对于设置的震中以指定的方式进行渲染并进行显示。
(5)专题图成图模块:该模块是本文软件的输出模块,在上述四个模块执行完毕后,需要将更改后的MXD文档保存成图片,并保存在计算机的指定位置中。该模块提供了两种地图导出方法,一种是将指定的MXD文档导出,另一种是将加载的所有MXD文档导出。并且该模块支持对修改后的MXD文档自动保存。
震中设定模块是本软件的核心功能模块,该模块实现了将MXD文档的地图中心平移至指定的坐标位置,并且以指定的渲染方式将震中显示在地图中。
本软件将震中位置以点的形式进行展示,震中点作为一个单独的矢量图层进行管理。该模块的实现分为了五个步骤:第一步将保存在指定位置的震中图层添加到MXD文档中,并将该图层置于最上层,防止其它图层遮挡震中图层;第二步获取添加的震中图层,主要是获取震中图层的属性表;第三步删除震中图层属性表中已有的数据,因为震中位置只有一个,防止已有数据对制图结果产生影响;第五步将用户输入的坐标数据添加到震中图层属性表中,生成新的震中点,并将新生成的震中点以指定渲染方式显示在地图中。
第五步实现的代码如图2所示:
图2指定渲染格式代码Fig.2 Specify render format code
3.4.1软件开发环境
地震应急快速成图软件的开发环境包括了硬件环境和软件环境,其中硬件环境包括CPU、硬盘、显卡和内存等,具体见表1。软件环境包括计算机操作系统、集成开发环境、二次开发组件和开发语言等,具体见表2。
表1软件开发的硬件环境
表2软件开发的软件环境
3.4.2系统界面及主要功能示例
本文软件界面设计简洁,菜单操作简单,选项设置较少,人机交互性较好,无论是对于专业GIS人员还是对于非专业GIS人员都能够快速上手。软件主界面由上到下分为四个部分,最上层为标题栏,用来显示系统名称同时包含最小化和关闭按钮;标题栏下方是菜单栏,采用树型结构提供系统各功能操作入口;菜单栏下方为工具栏,以图标形式显示系统常用的操作按钮;工具栏下方为目录控件和地图控件,目录控件用来显示当前被导入软件中的MXD文档名称,地图控件用来显示选择的MXD文档内容。软件的主界面如图3所示。
图3软件界面图Fig.3 Software interface diagram
通过软件操作界面的命令按钮,专题图制图人员能够很轻松地完成地震专题图制图工作。使用软件可以调用不同幅面的专题图MXD文档,可以产出A1、A3、A4等不同幅面的专题图,其输出的图件格式为jpg,分辨率为默认情况下的300dpi,完全符合现阶段的地震专题图制图工作[9]。该软件输出的专题图成果范例如图4所示。
图4专题图成果(以中卫市地震演练为例)Fig.4 Thematic map achievements(taking Zhongwei city earthquake exercise as an example)
本文阐述了ArcGIS Engine平台进行GIS软件的二次开发,将用户需求和用户体验作为软件开发的目的,建立一套完全脱离ArcGIS Desktop而独立运行的地震应急快速成图软件,以达到操作简单、成图效率高的预期目标。该软件的部署,实现了没有专业GIS知识背景的人员也能够高效率、高质量地完成地震专题图的制作,为震后救援工作的开展提供了强有力的图件保障。事实证明通过ArcGIS Engine组件的二次开发,能够实现低成本、高效率的实用型GIS软件,也为今后进行更加复杂的GIS软件二次开发提供了一个方向。