大数据GIS技术之分布式计算全解析

编者按:超图于2017 GIS 软件技术大会上发布了大数据时代的GIS基础软件——SuperMap GIS 9D。为了让大家能更全面的认识SuperMap GIS 9D在大数据领域的成果和能力,我们策划了SuperMap GIS 9D大数据系列文章,从技术、产品、数据和应用等多个维度进行全面、系统的介绍和阐述。欢迎走进大数据时代GIS技术的饕餮盛宴!

如果说分布式存储技术是为了解决大数据GIS中的数据组织与管理,那么分布式计算技术就是服务大数据GIS中的空间数据处理和分析。通过分布式存储技术,我们解决了超大规模空间数据的高效存储、高效检索、按需扩展等问题,进而需要面对超大规模空间数据的处理和分析需求。在相关需求实现过程中,我们同样需要分布式技术作为支撑。

Spark是目前大数据技术中使用最为广泛的分布式计算框架,在SuperMap GIS 9D产品中,我们将SuperMap GIS基础内核与Spark框架进行了深度融合。基于Spark中的核心RDD编程模型,我们扩展了适用于空间数据表达的FeatureRDD模型。对于多种数据源的对接,其本质就是将多种数据源中的空间数据读取到FeatureRDD当中。

在SuperMap GIS 9D产品中,我们支持了包括UDB、PostgreSQL、MongoDB在内的多种数据库型存储引擎,也支持了HDFS这样的分布式文件系统,并且也支持Elasticsearch中存储的空间数据。类似的,分布式计算的结果也使用FeatureRDD进行表达,可以方便的写入到各种数据存储引擎当中,而且MongoDB、HDFS、Elasticsearch这样的分布式存储方案都可以支持高性能的分布式写入,缩短数据整体写入时间。

更为重要的是,我们基于FeatureRDD模型构建了超过20个分布式空间数据处理和分析算子,来支持用户多样化的数据分析需求。帮助用户从空间、时间、属性多个维度了解和认知大数据,同时提供更加强劲的分析性能挖掘更多有价值的信息。

根据大数据GIS面向的不同领域,我们可以将其划分为空间大数据技术与传统GIS的分布式重构,这两个方向虽然都涉及空间数据处理与分析,但由于面向的数据和问题不同,适用的功能和算法也存在差异。接下来我们分别对这两方面的功能进行梳理和介绍。

1

空间大数据

这方面的数据来源非常多样,包括浮动车轨迹、手机信令、社交网络、Web访问日志、传感器等,属于传统GIS关注度较低的新型数据,但是由于其含有地理空间坐标适合通过GIS软件进行地理空间维度的分析。根据功能适用性不同又划分为了数据汇总和模式分析两类。

数据汇总

聚合分析

聚合分析用于计算点的空间分布,并进行属性统计。其特点是可以设置均匀格网(四边形或六边形)进行汇总,也可以设置多边形(行政区)进行汇总;可对多个属性字段,进行多种(最大值、总和、均值、方差等)统计计算。应用场景如现有全国范围的某品牌门店营业数据,将位置聚合到六边形格网中,再在每个聚合格网中进行属性的统计计算,可以统计店铺数目,也可以统计销售额总和、最大销售额等信息。

区域汇总

区域汇总用于计算区域内的目标数目、长度或面积,并进行属性统计。输入数据类型是线和面,支持矩形、六边形网格和任意多边形汇总。其特点是支持线和面数据的统计汇总。汇总属性值时,可以直接汇总属性值,也可以以被统计对象相交部分为权重,进行带权重值的精细化统计。应用场景可以使用线状高铁数据,配合行政边界面数据,统计每个行政边界中的高铁总长度,平均长度等;也可以使用面状土地利用图层,配合流域图层,计算每个流域中类型最多的土地利用类型(众数)。

属性汇总

属性汇总工具用于对属性信息进行分组统计分析。输入数据类型是点、线、面或纯属性数据。其特点是支持设置多个分组字段,并支持设置多个统计字段。应用场景如现有某城市管理案卷数据,可以先以城市网格作为分组字段,再以案卷类型为分组字段,统计每个城市网格内,每种案卷的发案数目,涉案金额总和等信息。

要素连接

要素连接分析工具是根据位置、时间和属性信息,找到满足指定关联关系的匹配对。它支持属性、空间、时间三种维度的匹配,输入输出数据类型为点、线、面。主要应用于要素间在时空维度上某些指标的关联性分析,例如可以计算一小时内从北京出发的航班的所有飞行记录,再比如现有全球的航运轨迹点数据,可以设置匹配距离为1公里,匹配时间为1秒钟,计算出满足该条件的匹配,并可以基于该结果,分析全球航路的拥堵情况。

轨迹重建

轨迹重建工具分析具有时间属性的点要素或面要素,基于要素的唯一标识确定需要追踪的要素,并根据时间序列追踪要素并形成轨迹对象,重建轨迹线。输入数据类型是点或面,结果数据类型是线或面。其特点是支持点数据和面数据(如台风影响范围),可以设置分割距离,也可以设置分割时间,用于给轨迹进行逻辑分段。可应用于构建航运轨迹、海运轨迹、台风轨迹等。

模式分析

OD分析

OD分析工具是计算出行数据中各起点和终点间的通行量,并进行属性统计。输入数据主要是出行记录或带时间的手机位置信息。其特点是进行OD分析的同时,支持指定字段值的统计,以及输出结果中既有OD线结果,也有站点面的统计结果。应用场景如利用出租车数据,分析各区县的联系程度,哪些是人口流入区,哪些是人口流出区。

密度分析

密度分析用于计算每个点的指定邻域形状内的每单位面积量值。输入数据类型是点,支持矩形和六边形网格。计算方法为点的测量值除以指定邻域面积,点的邻域叠加处,其密度值也相加,每个输出范围的密度均为叠加在范围上的所有邻域密度值之和。特点是点数据可以设置多个权重字段,一次性计算出多个权重值的密度分布(用格网的多个属性字段表达);以及可以设置格网大小和搜索半径,调整结果输出的分布趋势。它的应用场景可以是现有移动信令位置数据,计算得到人流分布的聚集情况图,协助进行基站部署和网络优化;也可以是现有犯罪事件位置数据,计算得到一张犯罪高发区域风险的平面图,协助优化警力部署。

热点分析

热点分析工具基于空间统计模型,对点要素进行统计学计算,来识别具有统计显著性的高值(热点)和低值(冷点)的空间聚类。输入数据类型是点,支持矩形和六边形网格。应用场景如现有全球的航运轨迹点数据,可以计算出航运轨迹点的热点。

2

传统GIS的分布式重构

如果说空间大数据分析是面向新型的,含有地理空间位置信息的IT大数据进行的分析,那么传统GIS的分布式重构则是聚焦在GIS的传统领域,对国土测绘行业中的超大规模数据进行数据处理和空间分析。为了支撑亿级以及十亿级规模空间对象的高效计算,我们使用分布式计算技术对传统的空间查询,叠加分析等经典算法进行了重构,大幅提升了算法性能。根据功能特点,可以划分为空间叠加、位置查找、邻近分析、数据管理等几大类。

空间叠加

叠加分析

叠加分析是GIS矢量分析的核心功能,由于在GIS数据中,经常存在分层管理的各种空间数据,如地类图斑数据与行政区划数据分别存储在两个矢量面图层,当需要基于行政区划维度对地类图斑进行统计汇总时就需要进行二者的叠加运算。具体包含相交、擦除、合并等七种算子,并且可以进行点线面三种空间数据类型的组合。

矢量裁剪

矢量裁剪是指用叠加数据集(裁剪数据集)从源数据集(被裁剪数据集)中提取部分特征(点、线、面)集合的功能。较常使用的模式为使用一个行政区划面对象对各种点线面底图进行裁剪,提取出来感兴趣的区域进行后续计算分析。

属性更新

属性更新工具通过空间关系实现叠加数据集(更新数据集)与源数据集(被更新数据集的属性值批量赋值。应用场景如现有覆盖整个区域的地类图斑面状数据,还有各类专题面状数目(高程、坡度、滑坡等级、农用地分布等),需要根据空间关系进行叠加赋值,将专题数据的属性值赋值到地类图斑的不同字段之上,再进行后续的字段间统计计算。

位置查找

空间查询

空间查询是指通过几何对象之间的空间位置关系构建过滤条件,从已有的数据中查询出满足过滤条件的对象。SuperMap GIS 9D支持对象空间查询(一对多模式)和空间查询(多对多模式),特别是多对多模式的空间查询支持亿级要素与十万级要素的空间查询。应用场景如现有覆盖整个区域的地类图斑面状数据,计划修建一条横跨整个区域的高铁,需要查询出所有受高铁影响的图斑。

邻近分析

缓冲区分析

缓冲区分析是根据指定的距离,在点、线、面几何对象周围建立一定宽度的区域的分析方法。缓冲区分析在GIS 空间分析中经常用到,且往往结合叠加分析来共同解决实际问题。例如,在环境治理时,常在污染的河流周围划出一定宽度的范围表示受到污染的区域;又如扩建道路时,可根据道路扩宽宽度对道路创建缓冲区,然后将缓冲区图层与建筑图层叠加,通过叠加分析查找落入缓冲区而需要被拆除的建筑。

数据管理

创建空间索引

构建索引工具主要是对基于Spark的空间大数据分析前的预处理工作,是对数据的重分区过程。由于数据分区是Spark的RDD数据模型内部并行计算的一个计算单元,分区的数目决定了并行计算的粒度,且每个分区的计算都是在一个任务中进行的。所以实现优化的数据分区是Spark重要的优化手段,可以为基于Spark的GIS空间分析提供性能支持。构建索引工具包括格网索引和四叉树索引两种类型。格网索引构建速度较快,适合分布均匀的数据,四叉树索引对分布不均匀的数据有较好的分区效果。

复制数据集

复制数据集工具是使用分布式计算方式对大规模数据集进行复制。可以指定范围复制,即只提取某一块数据;或指定采样比率复制,即随机抽样出部分数据进行观察。输入大数据类型是点、线、面或纯属性数据。应用场景如利用全国POI数据,提取出东南沿海数据进行分析;利用全国信令数据,采样出万分之一的数据,进行数据分布规律的识别与分析。

如上所述,在SuperMap GIS 9D产品中,我们基于Spark技术实现了多种空间数据处理和分析功能的分布式计算,并且面向空间大数据和传统GIS的分布式重构两个领域提供了多种方便易用的分析功能。另一方面,我们也清晰的认识到,在大数据GIS应用中常常需要结合具体应用场景进行有针对性的组织和扩展开发,那么如何使用SuperMap iObjects Java for Spark扩展模块进行大数据GIS应用开发,我们将在后续的文章中进行具体介绍,请大家持续关注!

本期供稿 基础研发中心 卢浩

本期责编谢林 曾志明

本文来自企鹅号 - 超图软件媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

译文:Python深度学习框架评价

原文链接https://indico.io/blog/python-deep-learning-frameworks-reviewed/ 麦迪逊月 - 201...

3498
来自专栏java架构技术

java程序员|超详细面经(四面一总结),助你逆袭!

面经不同的人问的问题很可能不同,不能押宝在这里,不过帮助大家用来做模拟还是不错的~以下按收到offer顺序列出

1041
来自专栏牛客网

百度核心搜索面经

2、介绍实习时的经验,主要问了我做了哪些事,如何定位程序中出现的问题,然后也问了我打日志的频率的问题。 

1792
来自专栏Albert陈凯

NO

N ---- 非关系型数据库( Not Only SQL):这个词听起来几乎就是「SQL,结构化查询语言」的反义词,SQL 是传统的关系型数据管理系统(RDBM...

2606
来自专栏企鹅号快讯

AI 时代下腾讯的海量业务智能监控实践

作者丨李春晓:腾讯高级工程师,目前为腾讯SNG社交网络运营部社交平台业务运维组员工。 海量业务的挑战 互联网业务讲究“极致、口碑、快”,经历过长时间的演进,腾讯...

42710
来自专栏AI科技评论

为 Java 开发者量身定制的五款机器学习库

编者按:机器学习是目前最炙手可热的技术之一,各大公司都在积极招聘相关的编程人才,来填补机器学习和深度学习代码编写的空缺。诚然,根据相关的招聘统计数据,Pytho...

29411
来自专栏Albert陈凯

如何高效地学习编程语言

这是Clojure好书《Clojure for the Brave and True》作者 Daniel Higginbotham 写于2017年4月16日的博...

3416
来自专栏一个会写诗的程序员的博客

Paul Graham:梦寐以求的编程语言

这是一篇2001年发表的博文,距今超过10年。但是,好的文章是不会随时间流逝而贬值滴。 作者 Paul Graham 是硅谷大牛。对许多问题(包括:编程技术、...

762
来自专栏织云平台团队的专栏

AI 时代下的海量业务智能监控实践

作者丨李春晓:腾讯高级工程师,目前为腾讯SNG社交网络运营部社交平台业务运维组员工。 海量业务的挑战 互联网业务讲究“极致、口碑、快”,经历过长时间的演进,腾...

1K10
来自专栏PPV课数据科学社区

【工具】数据科学家必知必会的 7 款 Python 工具

如果你有志于做一个数据专家,你就应该保持一颗好奇心,总是不断探索,学习,问各种问题。在线入门教程和视频教程能帮你走出第一步,但是最好的方式就是通过熟悉各种已经在...

3146

扫码关注云+社区