李红文 赵绍兵 李 桢
(1.自然资源部第一航测遥感院 陕西西安 710054;2.自然资源部陕西基础地理信息中心 陕西西安 710054)
我国山地丘陵占比高,地质构造复杂,气候类型多样,人类活动丰富,自然灾害隐患多、分布广,是世界上地质灾害最严重、受威胁人口最多的国家之一。据统计,目前全国有地质灾害隐患点20多万处,其中特大型和大型滑坡、崩塌、泥石流地质灾害隐患点近3万处。因此,采用不同的监测技术在滑坡隐患点布设监测站点,进行高精度连续监测是滑坡预警、减灾防灾必不可少的关键环节。有效管理不同类型监测站点采集的监测数据,直接体现了整个滑坡监测预警系统的水平。
本文以某滑坡监测站点数据管理为例,基于开源平台Cesium三维地图引擎,利用EasyUI、High- charts和HTML5等技术构建滑坡监测数据管理系统。其中,Cesium是基于JavaScript编写的使用WebGL的地图引擎,支持3D、2D和2.5D形式的地图展示及多源的地理空间数据和地图服务,可以自行绘制图形、高亮区域,并能提供良好的触摸支持,兼容绝大多数的浏览器。Highcharts 是一个用纯JavaScript编写的一个图表库, 能够在Web网站或是Web应用程序中很简单便捷地添加有交互性的图表。HighCharts支持的图表类型有曲线图、区域图、柱状图、饼状图、散状点图和综合图表。
通过 Cesium在三维地图上加载滑坡隐患处的地形数据和高分遥感影像等空间数据,以及位移监测、裂缝监测、降雨量监测、地下水水位监测、土壤湿度监测和视频监测的站点数据,实现监测点位信息的快速查询、三维浏览、监测数据管理、监测数据查询和统计分析,并利用Highcharts图表技术对监测时序数据进行可视化展示,为后续滑坡监测预警系统建设提供基础数据支撑[1]。
系统采用多层架构体系构建,包括数据采集层、基础设施层、数据层、数据服务层和应用层。其中,数据采集层,通过在滑坡隐患体相关位置部署降雨量监测、位移监测、裂缝监测、地下水位监测、土壤湿度监测和视频监控等设备,实时采集数据,通过互联网、无线网和监测专网等基础设施层设备传输到数据管理层;基础设施层,主要由软件系统、硬件系统和网络设备组成;数据层,按照目前主流的监测预警系统建设技术标准构建,基于监测数据多源性,分级分层次组织存储,主要包括滑坡体的基础地理空间数据、监测站点信息及其实时监测数据;数据服务层,主要功能是将与滑坡有关联的数据,发布为标准数据服务,以Web共享服务形式呈现给应用层;应用层,主要是实现系统功能,包括三维场景浏览、站点管理、数据查询、数据统计和图表分析等。滑坡监测数据管理系统架构如图1所示。
图1 滑坡监测数据管理系统总体架构
滑坡监测数据库是输入、输出多源异构监测数据及提供数据服务的中心。数据库采用“Geodatabase + SQL Server”构建模式,实现空间地理数据和时序监测数据的一体化管理、查询和分析,为滑坡监测数据管理系统、监测预警系统和风险评估系统等应用系统建设提供数据支撑。
数据库采用属性数据库与空间数据库分离设计的思路,属性数据选用主流的监测数据管理软件SQL Server数据库,空间数据采用ArcGIS的Geodatabase数据模型进行管理。属性数据库主要存储和管理各种传感器采集的监测数据和系统维护数据,其中,系统维护数据包括用户信息、用户权限和通用枚举数据;监测数据包括监测站点基本信息和多种实时监测数据。空间数据库存储和管理基础地理空间数据,包括基础矢量数据,如行政界线、道路、河流和地名,以及滑坡隐患处的高分遥感影像数据。数据库逻辑结构如图2所示。
图2 滑坡监测数据库逻辑结构
功能模块包括三维展示、站点查询、监测数据查询、监测数据统计和系统管理[4]。
1)三维展示。使用Cesium技术开发三维Web前端展示页面,实现滑坡三维场景渲染,完成三维地图缩放、漫游、全图显示、标注、卷帘和清除等常用的基本操作功能;实现对滑坡点位、监测站点三维场景中的位置定位功能。
2)站点查询。实现监测站点基本信息查询,包括位移、裂缝、降雨、地下水、土壤湿度和视频等站点部署设备基本信息查询和位置快速显示。
3)监测数据查询。实现任意监测点位的实时监测数据、历史数据的查询和浏览。
4)监测数据统计。实现任意监测点的监测数据,按照时间和类型进行统计,利用Highcharts技术开发曲线图、折线图、饼状图和柱状图等多种图形展示及对比分析。
5)系统管理。实现用户增加、删除、编辑、权限设置和角色分配等功能,以及对各种数据信息的查询、添加、编辑、删除、导入和导出等数据常用管理功能。
1)采用开源Cesium技术开发滑坡监测数据管理系统的三维功能模块。Cesium是一个较优秀的三维地球GIS引擎(开源且免费),能够加载各种符合标准的地图图层,支持瓦片图、矢量图等,支持3DMax等建模软件生成的obj文件,支持通用的GIS计算和DEM高程图。国内许多三维GIS产品都基于Cesium进行封装。针对滑坡监测数据管理系统功能需求,在Cesium原有功能基础上进行定制研发,快速构建跨平台、易共享、易维护的三维数字地球可视化Web系统[2-3]。
2)采用数据融合技术处理和管理多源的监测数据。要实现滑坡隐患处的三维呈现和传统监测数据的管理,必须解决数据融合问题。系统涉及的数据包括滑坡隐患处的高分影像、地形数据、基础矢量数据、滑坡点位和监测站点专题数据,以及位移、裂缝、降雨量、地下水位和土壤湿度等监测设备采集的时序数据,其中,时序监测数据量大、时间跨度长且数据之间缺少关联。在系统设计相应的数据融合模型时,以基础矢量地图为底图数据,利用数据融合处理工具,采用人工和自动化处理,实现多源滑坡监测数据的融合、组织和管理[4-5]。
3)采用Highcharts技术实现系统图表展示。目前多源、长时序监测数据图表展示采用的软件包括国产的Echarts和国外的Highcharts。Highcharts底层采用SVG技术,具有不依赖分辨率、支持事件处理器、适用于带有大型渲染区域的应用程序等特点,另外Highcharts界面美观、兼容性好。Highcharts由于使用JavaScript编写,不需要像Flash和Java那样需要插件才可以运行,而且运行速度快,支持当前大多数浏览器。Echarts底层采用Canvas技术,具有依赖分辨率、不支持事件处理器、文本渲染能力较弱、能够以PNG格式保存结果图像等特点。由于滑坡监测数据管理系统涉及的统计图表要求不受分辨率的限制,能够支持事件响应,能与用户进行交流,因此,选择使用Highcharts技术开发本系统的统计图表展示功能[6]。
4)采用.NET MVC技术实现数据管理功能。MVC (Model View Controller)是模型-视图-控制器的缩写,是一种设计创建 Web 应用程序的框架模式,它强制性地使应用程序的输入、处理和输出分开。使用MVC应用程序被分成3个核心部件:模型、视图和控制器,它们各自处理自己的任务。其中,Model(模型)表示监测数据记录对象;View(视图)显示数据,建立在Model层之上;Controller(控制器)读写监测数据,控制用户输入,并向模型发送数据。MVC 模式同时提供了对 HTML、CSS 和 Java-Script 的完全控制。本系统采用.NET MVC技术实现了滑坡监测数据的查询、浏览、编辑和统计分析等数据管理功能。
5)采用EasyUI技术实现系统界面布局。 EasyUI是一种基于jQuery、Angular、Vue和React的用户界面插件集合,开发人员采用EasyUI技术能快速地创建Web程序页面,而且开发的应用页面完美支持HTML5,页面互动性强。
滑坡监测数据管理系统基于Cesium、EasyUI、Highcharts和HTML5等技术开发,采用MVC三层架构实现了监测数据的获取、查询、浏览、编辑和统计分析等功能,提供了良好的三维场景浏览和传统数据管理功能。图3所示为某滑坡监测站点的数据管理系统的主要界面。
图3 系统实现的主要功能界面
本文基于Cesium定制研发的滑坡监测数据管理系统,具备了跨平台、易共享、易维护和投入少等特性,具有三维浏览、点位查询定位、监测数据查询和统计分析等功能,满足了用户基本三维场景展示功能的需求,实现了对滑坡监测数据查询、统计和管理。这是一次利用开源平台开发传统数据管理应用系统的尝试,可为相关应用系统架构、设计和功能的实现提供思路和参考。