应用
论文示例
应用1:空间聚合(Spatial Aggregation)
假设一位研究空气质量和树木之间的关系的环境科学家想要探索旧金山的树木数量。查询可以利用由GeoSpark提供的SpatialRangeQuery()来返回旧金山的所有树。另外,一个显示旧金山树木分布的热图(空间聚合)也能有帮助。这个空间聚合查询(即:热图)需要计算地图上每一个区域的所有树木。在热图中,在空间查询方面,热图是一种空间连接,其中的目标集是旧金山的树图,查询区域集合是一组区域或多边形,构成了旧金山的地图。在热图中,区域的数量取决于显示分辨率或粒度。GeoSpark程序如下所列:
(1)调用GeoSpark PointRDD初始化方法,将树的数据集存储在内存中。
(2)在PointRDD中调用GeoSpark SpatialJoinQuery()。第一个参数是一组多边形,可以存储在空间的PolygonRDD或常规列表中。第二个是“count”,这意味着计算每个区域中树的数量。
(3)使用一个新的SpatiaPolygonRDD来存储步骤(2)的结果。步骤(2)返回每个多边形的计数。每个元组的格式是这样的:(多边形,count)这样的多边形表示空间区域的边界。
(4)在Spark中调用持久性方法来持久化结果PolygonRDD。
应用程序2:空间自相关(Spatial Autocorrelation)
空间自相关研究:相邻元素空间数据点是否可能在某些非空间属性中具有相关性。Moran的I和Geary的C(均为空间自相关的量度)是空间自相关的两种常见的指数。以指数为基础,分析者可以判断这些对象是否相互影响。
全球Moran的I和Geary的C反映了整个数据集的空间自相关性。与全球指数相比,当地的Moran的I和Geary的C反映了一个特定对象和它的相邻元素之间的相关性。Moran的I和Geary的C指数是由两个具体的公式定义的。这些公式的一个重要部分是找到空间邻矩阵。对于全球和当地指数,有对应的全球的相邻矩阵和当地的相邻矩阵。在这个矩阵中,每个元组代表的是两个对象,比如点、矩形或多边形,它们是相邻的还是不在空间中的。程序员可以利用GeoSpark提供的空间和空间查询处理层来实现空间自相关的分析过程,假设一个数据集是由数百万个点对象组成的。在GeoSpark中找到全球相邻矩阵的过程如下:
(1)调用GeoSpark点初始化方法将数据集存储在内存中。
(2)在PointRDD中调用GeoSpark空间连接查询。第一个参数是查询点集本身,第二个是查询距离。在这种情况下,我们假设查询距离是10英里。
(3)使用一个空间配对的新实例来存储步骤(2)的结果。步骤(2)将返回一个新的列,它有一个新的列,在10英里内指定每个元组的相邻元素。这种格式是这样的:点坐标(经度,纬度),相邻元素1坐标(经度,纬度),相邻元素2坐标(经度,纬度)……
(4)在Spark中调用持久性方法来持久化结果。
应用3:空间共位(Spatial Co-location)
空间共位是指两个或两个以上的物种在相邻关系中所处的位置。Ripley的K函数经常用于判断联合位置。它通常会执行多次,并形成一个二维的曲线来观察。K函数的计算也需要两个类型对象之间的相邻矩阵。正如我们在空间自相关分析中提到的,相邻的矩阵是一个连接查询的结果。在GeoSpark中寻找这个矩阵的过程有以下步骤:
(1)调用GeoSpark点初始化方法,将这两个数据集存储在内存中。
(2)在其中一个点上调用GeoSpark空间连接查询。第一个参数是另一个点,第二个参数是查询距离。在这种情况下,我们假设查询距离是10英里。
(3)使用一个空间配对的新实例来存储步骤(2)的结果。步骤(2)将返回一个新的列,它有一个新的列,在10英里内指定每个元组的相邻元素。格式如下:点坐标(经度、纬度)、相邻元素1坐标(经度、纬度)、相邻元素2坐标(经度、纬度)……
(4)在Apache Spark层中调用持久性方法来持久化结果。
实际应用
使用公司:GYANA
更了解你的竞争对手
了解现实世界中人类行为的趋势和变化。Gyana为您提供量化的客户见解,比如哪些其他商店在当地竞争您的客户,以及您的实体店铺如何匹配位置。
更能应对于现实生活
Gyana给你很奇怪的指标。你将通过网页分析面板认出他们。
不过,与Google Analytics或Mixpanel不同的是,Gyana指标基于来自无数传感器和第三方数据提供商的地理空间数据。
不同于webalytics,Gyana会告诉你前后关联。
了解客户的情况
Gyana向您显示客户的旅程。
最后,你可以确定与品牌的潜在合作伙伴关系,以鼓励客户接下来前往您的店面。
发现客户群中完全未知的细分,以及是什么使他们这样做的问题。
使用公司Blue DME
我们的目标是复杂/长期的B2C行业。
汽车工业
为您的销售团队增加客户知识和之后最佳行动。提供客户需求的特点的汽车。 为您的销售人员开发实时使用可以进行活动的线下商店。
保险
缓解流失并防止使用NBA。个性化保险优惠。检测任何交叉销售机会。
房地产
基于特征和潜在行为自动定价。为难以出售物业确定的正确客户。优先在电视/邮寄活动之后处理潜在客户。
关于交通的GIS用例
动态可视化页面,表示上海出租车实时情况可视化,红色为当前载客车辆,蓝色为当前空载车辆。
补充_作者原话
用户可以把GeoSpark轻松地导入他自己的GIS项目程序里面,然后用分布式集群对大规模空间数据进行坐标转换,处理,查询和可视化。用户亦可直接使用Scala shell直接导入GeoSpark,进行交互式处理。
现在有一些中小型GIS公司用在他们的生产和测试环境里面,还有两家FLAG级别的公司在用(由于隐私控制的原因暂时不能透露)。
该文章这部分大部分翻译自关于geospark的论文和使用的网站,并添加了一些补充。所以归类为翻译。
写在最后:这是我之前做的一些技术初步调研,主要目的是了解和展示一些技术,并进行了一些个人总结,其中必然有疏漏。其中引用了不少论文,百科和他人博客,但因为时间太久大都忘了出处,如果侵权提示后删除。