天天看點

PostgreSQL 空間獨立事件相關性分析 二 - 人車拟合

PostgreSQL , PostGIS , 人車拟合

獨立事件相關性分析是一件很有意思的事情,例如

探探軟體的擦肩而過功能點,在不同時空與你擦肩而過的人。

輿情分析。

商品最佳銷售組合。

安全系統中的人車拟合,對時空資料進行處理,用于司機、乘客、車輛的拟合。

1、建立表結構

2、生成測試資料。

以杭州市為例,經緯度範圍如下:

活躍量假設:

2.1、寫入人的活動位置資料,按天分區,保留一年。

采用時序資料中最常用的brin索引。

建立人+時間的索引。

2.2、寫入車輛的活動位置資料,按天分區,保留一年。

建立車+時間的索引。

3、求某個時間區間的人車拟合

3.1、車輛,行駛過程中抓到的N個點,傳回時間,位置。

傳回對應時間區間的N個點附近的人交集

例子:

3.2、人,運動過程中抓到的N個點,傳回時間,位置。

傳回對應時間區間的N個點附近的車輛的交集

1、存儲、索引優化思路。

時間截斷 + 空間排序 存儲

例如

存儲修整後,建立以上結構的btree或BRIN索引。

當搜尋某個時間點,出現在某個點附近的記錄時,可以并行,并且搜尋的資料塊是比較少的,因為密集存儲。

2、其他需求:缺失位置的補齊。某些情況下,可能導緻車輛、人的位置資訊未采集的情況,例如經過擁堵路段、采集裝置死角等。

在位置擷取出現空缺的情況下,使用pgrouting,以及路網資訊,生成若幹條路徑,補齊為出現的點。同時估算時間,得到點和經過的時間。

3、其他需求:異常位置糾正。

4、拟合性能,以天為分區。1000萬人口,1000萬車輛。人的軌迹數,一天10億。車的軌迹數,一天1億。

可以做到毫秒級别的拟合響應。

<a href="https://github.com/digoal/blog/blob/master/201703/20170331_02.md">《潘金蓮改變了曆史之 - PostgreSQL輿情事件分析應用》</a>

<a href="https://github.com/digoal/blog/blob/master/201704/20170410_02.md">《為什麼啤酒和紙尿褲最搭 - 用HybridDB/PostgreSQL查詢商品營銷最佳組合》</a>