基于WebGIS的形变监测成果管理与展示系统
2020-11-30郭晓彤吴希文
郭晓彤,王 华,吴希文,柏 俊,戴 泉
(1.广东工业大学 土木与交通工程学院,广东 广州510006;2. 广州海川信息科技有限公司,广东 广州510300)
近年来,空间对地观测技术在监测地表形变中得到了广泛应用。全球定位系统(Global Positioning System,GPS)和合成孔径干涉雷达(Synthetic Aperture Radar Interferometry,InSAR)测量技术能获取高精度、高分辨率的微小地表形变量。目前长基线高精度GPS相对定位精度为1 0-8~10-9,InSAR技术的精度达到厘米甚至毫米级,空间分辨率达到米级。随着对地表形变监测的不断加强,监测区域不断增多,GPS/InSAR技术形变监测成果的数据种类多并且数据量大,导致对其管理难度增大。
与传统的GIS相比,网络地理信息技术(WebGIS)具有访问范围广、跨平台、成本低、高效、实时更新等特点[1]。通过互联网技术,对数据进行可视化可实现成果直观表达、实时监测管理和共享,促使WebGIS被广泛应用于农业[2]、森林、气象[3]、湿地[4]、交通管制监测等城市规划领域。例如,张胜等[5]实现了基于.NET技术的WebGIS应用,Liu与Xi[6]利用Ajax(Asynchronous Javascript and XML,异步 JavaScript和XML)技术和OpenLayers框架实现了GIS客户端在地图页面上浏览无刷新,周海彬等[7]提出了基于WebGIS的数字城市规划模型,袁长征等[8]利用SQL Server数据库和OpenLayers框架实现了空间数据存储、分析与可视化;OpenLayers由于具有开发成本低、可集成管理空间数据与属性数据、可进行数据可视化表达等特点,被广泛应用于实现GIS的网络化应用,达到实时共享数据资料的效果。本文主要介绍利用ASP.NET和OpenLayers框架在线展示和管理GPS/InSAR形变监测成果。
1 OpenLayers与ASP.NET介绍
1.1 Openlayers
OpenLayers框架是一个轻量级的JavaScript开源库,在基于WebGIS的二次开发中广泛应用;支持多种格式的数据资源和地图服务的访问,如支持天地图、公开地图(OpenStreetMap,OSM)等在线地图以及由地图服务器(GeoServer)发布的仓库管理系统(Warehouse Management System,WMS)、Web要素服务(Web Feature Service,WFS)等地图服务[9],被广大研究者用来研发有关地理信息的地图操作。
OpenLayers封装了各种地图操作的控件,不仅支持在线地图的加载、缩放、鹰眼等常规操作,还能实现图层叠加、切换、要素渲染、添加、移除等功能。在一定程度上,简化了WebGIS的客户端开发[10],突破了传统GIS的应用与研究,使得地理信息系统的实现与维护逐步走向网络化、数据化。
1.2 ASP.NET
ASP.NET是一种基于.NET Framework的Web应用开发技术;它集成了多种强类型编程语言共同开发、统一编程的执行环境,例如C#、VB.NET等[11],不仅保留了ASP以前版本的特点,还借鉴Java、VB等语言开发的优势引入了许多新特性,为动态Web开发提供了强大的类库资源,有效缩短了Web应用程序开发的周期[12],使得基于WebGIS的形变监测成果在线展示系统的开发更加便捷和高效[4]。
2 系统实现方案
本系统以GPS野外测量处理成果以及遥感卫星InSAR数据分析处理成果的图形化展示[13]为目标,以关系数据库管理系统(本系统应用了SQL Server数据库)、地理数据结构化编码语言(Geospatial Data Interchange Format Based on JavaScript Object Notaion,Geo JSON)文件、Keyhole标记语言(Keyhole Markup Language,KML)文件为数据源,Ajax技术为网页数据交互方式,建立一套完整的形变监测成果数据展示体系,系统的整体结构如图1所示。
图1 系统整体架构Fig.1 System architecture
基于WebGIS框架的二次开发,本系统主要调用OpenLayers地图控件的接口如表1所示[14]。系统的业务流程主要分为数据文件读取、图形对象坐标处理、图形要素在线展示3个步骤。
表1 OpenLayers部分控件及实现功能Table 1 Some controls of Open Layers and their implementation parameters
2.1 数据读取
本系统利用了Ajax进行页面与Web服务器的数据异步传输,通过ADO.NET的方式访问数据库获取数据,实现了网页的局部更新,提高了数据维护的效率。GPS野外测量的成果为测站坐标(B,L,H)及其形变速度(Ve,Vn,Vu)。为此,数据库中对应存储了测站坐标、形变速度及其属性信息,只需根据数据表结构获取数据即可。
InSAR数据处理的成果分为头文件(RSC格式),研究地区的沉降量、沉降累积量、沉降增量等数据文件(DAT格式)以及解缠图等图像文件,为此,数据库中存储了文件相对路径及其属性信息。其中,头文件是对数据文件的描述,利用头文件中的描述信息,调用BinaryReader类可以读取数据文件里n行m列的数据点沉降量。图像数据包括KML文件和PNG图片,利用XDocument类便可读取KML文件中用于展示PNG图像的范围经纬度。
2.2 坐标转换
在创建并初始化地图对象时,一般指定EPSG∶4326(WGS84)坐标系,该格式是由开放地理空间信息联盟(Open Geospatial Consortium,OGC)定义的,因而本系统主要通过二维坐标(B,L)来展示几何要素。由于GPS的速度(Ve,Vn,Vu)测量成果单位为mm/a,因此为了在系统中展示速度数据,需要根据图例标量、该点速度和起点坐标(测站点位置)利用高斯投影坐标反算原理计算出大地坐标下的增量及起始点坐标,绘制并展示有向线段,才能实现速度数据可视化。
InSAR测量成果的每个数据点坐标需要根据头文件里的起点坐标(Bfirst,Lfirst)、行数n、列数m以及步长Bstep,Lstep进行计算得到。
2.3 监测数据在线展示
随着WebGIS技术的快速发展,通过浏览器展示地理数据的方式日益多元化,本文采用了ASP.NET和OpenLayers进行系统开发,实现了跨浏览器快速展示地图要素。
GPS成果主要以点要素(地理位置)和线要素(形变速度)展示[13],若以测站点展示,则根据其测站模式进行点位和点名的标注;若以形变速度展示,则绘制有向线段进行速度的展示。
InSAR成果主要以点云(地理位置、沉降量)或者图像方式展示;若以点云展示,则根据其沉降量进行要素渲染,以不同颜色的实心圆表示每个沉降点,并根据地图分辨率和屏幕范围分级展示点云,从而实现了监测数据的可视化[15]。InSAR的图像分为解缠图、速率图等,若以图像方式展示,则主要通过解析KML文件获取该图像的范围经纬度,在地图上添加图像的方式展示。
3 WebGIS系统的实现与应用
基于上述的系统设计方案,采用ASP.NET和OpenLayers框架进行系统的数据读取、坐标转换、成果在线展示等功能的实现,下文展示系统的部分关键代码。
3.1 监测数据的读取与坐标计算
(1)读取DAT文件中的InSAR数据。
FileStream fs = new FileStream(File_binary,
FileMode.Open, FileAccess.Read);
fs.Seek(0,SeekOrigin.Begin);
BinaryReader r = new BinaryReader(fs);
float num = r.ReadSingle();
(2)获取监测数据,并计算用于展示GPS速度的有向线段的起始点坐标以及InSAR沉降点的坐标。
3.2 数据可视化与在线展示
(1)在线地图加载:在WebGIS系统的客户端开发时,主要利用OpenLayers的Map类、Layer类[3,11]加载BingMap、GoogleTerrainMap和天地图3种在线地图作为底图。
(2)数据渲染与在线展示:条件检索后,利用OpenLayers进行Json格式数据渲染和在线展示。条件检索分为GPS和InSAR两个模块的监测成果查询,用户可根据其属性(项目、省份等)或者地理位置进行查询[10]。
①GPS监测成果的展示:GPS测量成果的坐标点(B,L)通过点位标注展示,以蓝色实心圆表示连续站,红色方块表示流动站,如图2(a)所示;其形变监测的速度成果利用有向线段进行展示,如图2(b)所示。图2~4底图均来源于天地图(https://map.tianditu.gov.cn)。
图2 GPS查询结果Fig.2 GPS query results
注册地图的单击事件,实现在单击后,获取地图的地理坐标并与已有查询结果的测站点的坐标进行逐一对比,若两坐标之差小于某阈值(如0.01°),则展示匹配测站点的属性信息,如时间序列图、坐落位置等,如图2(c)所示。
②InSAR监测成果的展示:InSAR成果主要以点云、图像或者时间序列图展示。查询成功后,在地图上展示满足条件的成果数据的区域范围,如图3(a)所示;点击某区域范围,可以查看该地区的沉降情况;若查看点云形式展示的成果数据,需要对沉降点数据进行渲染。首先,定义彩虹渐变颜色数组并获取图例中InSAR颜色条对应的沉降量极值;其次,进行空值过滤并利用沉降量最大值和最小值计算每个数据点对应的颜色数组下标;最后,为每个数据点赋颜色值,展示结果如图3(b)所示。
时间序列图是反映某沉降点在其测量时段内的沉降变化,通常以监测时间为横坐标,沉降累积量或增量为纵坐标绘制时间序列图。点击地图上的沉降点,可以进行该沉降点的动态时间序列图的查看,如图3(c)所示,图中蓝线代表沉降累积量,橙线代表沉降增量;若以KML形式展示,则设置展示样式为KML形式,图3(d)为云南监测区域的解缠图。
考虑到InSAR成果在以点云形式展示时,涉及的数据量十分庞大,可能会导致页面的响应迟缓甚至崩溃,因此采用依比例分级展示点云数据的方式进行。将点云数据分为十级加载,通过设置地图监听,根据地图的当前分辨率和屏幕范围获取对应的点云数据进行展示。经过实验验证,分级加载展示数据的方式大大缩短了点云展示的时间,降低了页面卡顿的可能。如图3(b)为地图Map中视图View的地图缩放级别Zoom值介于10~11范围时的点云展示;每当分辨率和屏幕范围发生变化,都会进行点云刷新,如图3(c)为Zoom值介于13~14范围的展示结果。
3.3 其他功能实现
图3 InSAR查询结果Fig.3 InSAR query results
系统的其他功能包括登陆验证、数据编辑、文件导入、数据下载等。管理员进行登陆验证后,可以查看、编辑和管理数据库内的监测数据,实现对监测成果的实时更新与共享;系统支持GeoJSON和KML数据文件的导入和展示,只要把监测成果数据转换为GeoJSON或KML格式并导入地图中展示,便可以快速进行粗差剔除和检验监测成果的质量,图4为形变监测成果数据以KML形式存储的文件导入在线地图后的展示结果,可以清晰看到中国区域范围内的断层情况。
图4 KML文件在线导入展示Fig.4 The KML file is imported and displayed online
4 结论
本文介绍了一种基于WebGIS框架的GPS/InSAR形变监测成果在线管理与展示系统,使得用户可以方便地在浏览器上查看、管理监测数据。系统的开发中用到的OpenLayers框架、JQuery、Ajax等技术使得系统的构建结构更清晰,扩展性更强;开发中,针对InSAR大数据的展示,采用了依比例分级展示点云数据的方法;针对GPS变形速度的展示,利用高斯反算原理等方法;确保了成果展示的高效性,为类似于基于开源WebGIS应用的地图服务平台开发提供了参考和借鉴。
总的来说,本系统的开发与实现基本完成,实现了变形监测成果的有效管理,通过网络技术将数据图形化的展示途径,使得数据更加直观,提高了对形变监测成果的检验、管理的效率;系统在投入运营前还可以进一步的性能优化,例如,对于大型图像处理和展示优化,可以采用金字塔-哈希索引技术[16]和瓦片切分[17]的方法进行图像处理;对于多用户并发请求的优化,可以采用集群和多线程方法提高并发访问的效率、缓存和动态数据管理方法提高客户端交互性能[16];后续研究中将进一步分析提高系统性能的方法。