Large-scale Geospatial Analytics前景分析

一、前言

最近看了sigmod2023的一篇tutorial,在此记录一下。

Tsz Nam Chan在sigmod2023发布了一篇tutorial名为Large-scale Geospatial Analytics: Problems, Challenges, and Opportunities.,以及一篇Demonstrations名为PyNKDV: An Efficient Network Kernel Density Visualization Library for Geospatial Analytic Systems.,顾名思义,前者分析了地理空间分析工具的发展现状以及相关技术需求,后者是作者设计的一种可供参考和使用的地理空间分析系统。

二、Large-scale Geospatial Analytics

目前的问题:大多数常用的地理空间分析工具在支持大规模数据集方面效率不高,甚至不可行。

地理分析工具的两种应用类型:热点检测(对应KDV技术,kernel density visualization),相关性分析(对应k-function技术)

1. 定义

定义1(生成KDV)

给定一个位置数据集P=\{\vec{P_1}, \vec{P_2}, \dots,\vec{P_n}\},包含n个空间数据点以及一个具有X*Y像素的地理区域,需要根据核心密度值F_P(\vec{q})对每个像素着色:

F_p(q)=\sum\limits_{\vec{q}\in P}{w*K(\vec{q},\vec{p})}

其中w是归一化参数,K是kernel function,kernel function有好多种:

定义2(k-function)

k-function用于相关性分析,相关性分析用来分析一个位置数据集是否展示了集群属性。

给定P=\{\vec{P_1}, \vec{P_2}, \dots,\vec{P_n}\},以及空间阈值s,则该数据集的k函数为:

K_p(s)=\sum \limits_{\vec{p_i}\in P}\sum \limits_{\vec{p_j}\in P}I(dist(\vec{p_i},\vec{p_j})\leqslant s)

其中I是指示函数:

I(x)=\left\{\begin{matrix}1 & if\:x\:is\:true \\ 0 & otherwise \end{matrix}\right.

定义3(k-function plot)

给定一个位置数据集P,随机生成L个大小为n的数据集R_1,R_2,\dots,R_L,D个空间阈值s_1, s_2, \dots, s_D.

L(s_d)=min(K_{R_1}(s_d), K_{R_2}(s_d),\dots,K_{R_L}(s_d))

U(s_d)=max(K_{R_1}(s_d), K_{R_2}(s_d),\dots,K_{R_L}(s_d))

黑色曲线超过蓝色虚线时,认为数据集对于这些阈值有有意义的集群/热点,否则,认为数据点要么是随机分布的,要么是分散的。

2. KDV的最新解决方案

目前提高KDV生成效率的方法有四种:

(1)函数近似方法

开发kernel density函数F_p(\vec{q})的有效上下界函数LB(\vec{q})UB(\vec{q})

因为LB(\vec{q})\leqslant F_p(\vec{q})\leqslant UB(\vec{q}),所以试着缩小上下界,就可以得到密度函数的近似值

\frac{UB(\vec{q})}{LB(\vec{q})}\leqslant 1+\varepsilon\enspace\rightarrow \enspace (1-\varepsilon )F_p(\vec{q})\leqslant R(\vec{q})\leqslant (1+\varepsilon )F_p(\vec{q})

其中R(\vec{q})就是近似密度值

(2)数据采样方法

提取数据集P的子集S,修正密度函数:

F_s^{(M)}(\vec{q})=\sum \limits_{\vec{p_i}\in S}w_i*k(\vec{q},\vec{p_i})

(3)计算共享法

利用一些共享属性,提高计算单个KDV或多个KDV的效率

(4)并行/分布式和基于硬件的方法

用GPU等优化计算

3. KDV的两种变体

(1)NKDV

在道路网络中,用最短路径dist_G(\vec{p_i},\vec{p_j})代替K(\vec{q},\vec{p})中的dist(\vec{p_i},\vec{p_j}),因为空间上相近的点,在道路上可能并不相近。(例如图中的q1和q2) 

(2)STKDV

考虑病毒传播等情景,不同时间戳的热点不同,因此需要根据不同时间戳的数据计算密度函数

4. k-function的最新解决方案

(1)range-query-based methods

定义2中计算k-function的公式表明我们需要计算与每个数据点pi的距离s内的所有数据点pj,以便计算k-function,因此一种方法是采用一些索引结构,如kd-tree、球树等获得每个数据点的范围查询集R(\vec{p_i})

R(\vec{p_i})=\{\vec{p_j}\in P:dist(\vec{p_i},\vec{p_j})\leqslant s\}

k-function可以表示为:

K_p(s)=\sum \limits_{\vec{p_i}\in P}\left | R(\vec{p_i}) \right |

(2)parallel/distributed and hardware-based methods

5. k-function的两种变体

(1)network k-function

和NKDV的场景相同,将距离换成最短路

(2)spatiotemporal k-function

和STKDV的场景相同,这里需要添加时间戳变量,使用三维曲面绘制k-function plot。

位置数据集表示为:

 计算方法变成:

 6. Future Opportunities

KDV:降低KDV、NKDV、STKDV的时间复杂度,处理其它核函数的优化

k-function:有很多方法可以优化network k-function,但很少有方法处理k-function和spationtemporal k-function,根据作者了解,目前方法的时间复杂度为O(n2)。

并且提到KDV生成效率的方法尚未扩展到k-function。

三、PyNKDV

该方法可以在不同的地理空间分析系统中有效地生成NKDV,包括QGIS和ArcGIS。

也就是计算定义1中的函数

F_p(q)=\sum\limits_{\vec{q}\in P}{w*K(\vec{q},\vec{p}))}

1. ADA(Aggregate distance augmentation)

在道路系统中,每个点只属于一条边,因此密度函数可化为:

其中

 增强总距离,对于每个边e=(u,v)的所有数据点p:

已知dist_G(q,u)dist_G(q,v),可以用二分搜索在O(log|P(e)|)的时间内计算函数f_e(q),具体做法为:先用二分查找找到满足dist_G(u,p)\leqslant b-dist_G(q,u)的最大的p*,然后用O(1)的时间计算f_e(q)

 2. 并行计算

计算f_e(q_1)f_e(q_2)不互相依赖,可并行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值