随着环保工作的不断展开和深化以及环保大数据工程的建设实施,对基于WebGIS的数据可视化查询和综合分析等要求也越来越高,目前江苏省环境信息系统的设计架构,受到传统数据库对大数据处理性能和浏览器加载能力的制约,在WebGIS中加载大量的几何图形(如在页面中加载上万个污染源点位)时,容易发生加载延时过长,甚至浏览器崩溃的问题,极大地影响了工作效率。
随着大数据技术的快速发展,Hadoop等大数据计算平台能够将海量的数据进行分布并进行处理,为海量环保地理数据的有效存储和高效运算提供了可能。同时,随着WebGIS技术的发展,如HTML5等技术的不断成熟,也为大数据在浏览器客户端的加载绘制提供了优化的方案。
江苏省生态环境大数据图形化展示平台的建设,就是在面对大数据环境下,利用Hadoop技术和HTML5技术,提出一种GIS数据可视化系统的优化方案。
1Hadoop和HTML5技术综述
11Hadoop技术
Hadoop是一个由Apache基金开发的分布式系统基础架构。Hadoop由HDFS、MapReduce、HBase、Hive等部分组成,其设计核心是HDFS和MapReduce,HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算,Hbase则为处理后的数据提供存储。
12HTML5技术
HTML5是标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改,HTML5提供了高度的兼容性和标准性,能够将视频、音频、图像、动画以及同电脑的交互都标准化,同时,HTML5提供了丰富的标签对微数据和微格式等方面的支持,为用户构建数据驱动的Web应用提供支撑。其中的HTMLCanvas,作为一个HTML5支持的图像标签,可以用脚本进行高性能的图像绘制、渲染功能。
2基于Hadoop的数据架构设计
在环保大数据可视化系统中,Hadoop作为一个大数据分布式处理架构,主要利用其中HDFS、MapReduce、HBase等技术实现数据层面的数据库设计,为环保空间大数据提供分布式的计算架构。
21构建GeoJson的地理数据格式
GeoJson是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。
由于Hadoop不支持传统的空间数据格式,因此对于矢量空间数据而言,可以采用基于GeoJson格式来实现空间几何实体的描述。它支持OGC定义的以下几种几何类型:Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection。又因为其具有表达数据的简洁性、JavaScript原生支持等特点。
GeoJson格式的地理数据中包含对一条空间数据对象的空间坐标、id、type等内容描述。格式如下:
{“name”:”subway_point”,”type”:”FeatureCollection”
,”features”:[
{“type”:“Feature”,“geometry”:{“type”:“Point”,“coordinates”:[116189086914063,399382934570313]},”properties”:{“OBJECTID”:1}}
,{“type”:”Feature”,”geometry”:{“type”:”Point”,”coordinates”:[116197875976563,399296875]},”properties”:{“OBJECTID”:2}}]
}
以GeoJson格式存储的数据,通过数据转换软件,将空间数据转换成对应的JSON文本,就能满足Hadoop管理和运算的需求。
22基于Hadoop的系统存储结构
基于Hadoop的环保大数据可视化系统存储结构设计如图1所示,利用Hadoop分布式技术为系统设计数据存储和数据处理的模型和架构,使用Hadoop分布式文件系统存储海量环保数据,使用MapReduce并行处理数据,使用Hbase存储处理后的海量数据,从而实现海量环保数据的存储和计算。
数据层基于Hadoop的分布式架构,其中,HDFS用于数据存储和数据管理,基于HBase建立空间数据表,其中地图和业务元数据存储在HBase表中,地图瓦片数据存储在HDFS中,这样解决了HDFS不便管理小文件的问题,同时利用HBase时间戳来实现数据版本控制。通过MapReduce分布式并行计算机架构,将空间数据的处理和分析任务分散到各个计算节点,利用各节点上的地图服务、业务数据服务,对海量数据进行并发计算,以提高数据处理的效率。
23数据查询与分析过程
环保大数据可视化系统中,包含基本的空间查询,如空间位置查询、空间分析等;还包含空间数据的属性数据查询,如监测点位的监测数据,这两种查询在传统查询模式下,多利用建设空间索引和数据索引的方式,来减少I/O的使用次数,来提高系统效率,而在Hadoop存储结构下,利用数据分割和MapReduce能够提供更好的数据运行效率。
基于MapReduce的空间查询,是在Hbase表中,将表分为多个Region,每个以Hbase表分块作为Map任务划分依据,Map函数的key作为该要素的ID,value为该要素ID对应的记录。在针对查询条件对各要素进行查询筛选。对于筛选后的数据进行分类,将分类ID作为Map结果的key,再交由Reduce进行合并处理,结果存入数据库。
3HTML5可视化优化设计
HTMLCanvas作为一个HTML5支持的图像标签,可以通过脚本在浏览器中进行图形渲染,通过JavaScript脚本将图形直接绘制到Canvas容器内。利用Canvas中的API,实现对图形的绘制,其优势在于,可以实现百万级空间对象的快速渲染,为环保大数据的可视化提供客户端优化解决方案。
绘制示例代码如下:
html,body{
margin:0px;
padding:0px;
}
canvas{
border:1pxsolid#000;
}
4系统实现
41系统整体架构设计
基于Hadoop的环保大数据可视化系统为B/S结构的Web系统,系统采用三层架构设计,包含数据层、服务层、应用层。
(1)数据层。数据层由关系型数据库SQLServer和非关系型数据系统HDFS、Hbase组成,在数据存储中Hadoop分布式文件系统(HDFS)用于存储非结构化数据包括Geojson格式的瓦片文件,Hbase用于存储空间数据和运行数据,业务数据中的各类元数据和属性数据存储在关系型数据库中。
(2)服务层。服务层通过对外提供WMS、WFS、WPS等Web服务的方式,对外提供地图数据服务、元数据管理服务、业务数据服务等,为系统提供应用支撑。
(3)应用层。应用层作为系统的表达层,利用HTML5技术,在浏览器端为系统提供各类基础应用服务、业务数据应用服务,为用户提供系统展示及交互界面。
42系统功能设计
421空间数据查询
(1)污染源空间查询。实现江苏省40余万污染源(工业类、农业类、生活类污染源)的快速分类查询、快速点位查询,并实现污染源名称、编号、所属流域、地址、行业类别等属性信息的查询展示。
(2)空气质量站点查询。实现全省空气质量监测站点位置的快速查询,并实现全省空气质量监测数据的实时查询展示。
(3)水质监测站点查询。实现全省水质监测站点查询,以及水质监测数据及流域污染物种类的查询展示。
(4)危废监控查询。实现全省危废企业点位查询和监测数据的查询展示。
422数据统计分析
(1)主要水污染物统计查询。以水质监测数据为基础,针对各流域实现流域内主要污染物,包括氨氮、总磷、总氮等指标的数据统计。并在地图上以图表等形式进行展示。
(2)污染源分布统计。统计全省污染源企业按照不同行业、不同污染类别等指标,在全省空间上的分布统计,在地图上进行渲染展示。
43性能测试与结果分析
江苏省生态环境大数据平台利用本文提出的系统架构,部署运行在一个6个节点Hadoop集群上,DataNode节点5个,NameNode节点1个,HMaster节点1个,RegionServer节点5个,Zookeeper节点3个。
为测试系统的实际查询与渲染能力,对全省污染源点位进行查询渲染,对14万企业污染源数据进行测试,性能测试结果如下表所示:
5结论
本文通过利用Hadoop和HTML5技术,对传统结构的WebGIS结构进行了优化,并利用此结构,建设了江苏省生态环境大数据平台。
实验证明,使用Hadoop的体系架构和HTML5展示大数据量的地理数据对于传统架构在数据处理和展示效率上有着极大的增强,对于使用此方法来构建WebGIS系统有着高效的空间存储效率和展示效率。
参考文献:
[1]叶娜,雒伟民,张峰,等基于WebGIS的图形加载性能优化研究[J].福建电脑,2013,11(9)
[2]尹芳,冯敏基于开源Hadoop的矢量空间数据分布式处理研究[J].计算机工程与应用,2013,49(16):25-29