唐天琪,談 帥
(江蘇省測繪研究所,江蘇 南京 210013)
與時間、空間相關(guān)的數(shù)據(jù)呈現(xiàn)出“爆炸式”增長的趨勢,時空大數(shù)據(jù)時代已經(jīng)來臨[1]?;诟鞣N測量傳感網(wǎng)絡(luò)來感知人類個體和群體與自然環(huán)境和社會環(huán)境關(guān)系的泛在測繪所產(chǎn)生的位置大數(shù)據(jù)、時空軌跡數(shù)據(jù)等實時大數(shù)據(jù)是大數(shù)據(jù)研究的重要組成部分?!吨腔鄢鞘袝r空大數(shù)據(jù)平臺建設(shè)技術(shù)大綱(2019版)》中提到“要利用空、天、地一體化對地觀測傳感網(wǎng)實時獲取的基礎(chǔ)地理信息數(shù)據(jù)和依托專業(yè)傳感器感知的、可共享的行業(yè)專題實時數(shù)據(jù)”。
江蘇省測繪研究所在2017年、2018年的基礎(chǔ)測繪項目中已對時空大數(shù)據(jù)中歷史與現(xiàn)狀基礎(chǔ)地理信息數(shù)據(jù)、歷史與現(xiàn)狀公共專題數(shù)據(jù)、空間規(guī)劃數(shù)據(jù)開展了研究,在時空大數(shù)據(jù)的匯聚整合、存儲管理、分析挖掘與可視化方面具有一定的技術(shù)基礎(chǔ),但缺少對智能感知的實時數(shù)據(jù)的研究。
2020年6月23日,北斗三號組網(wǎng)部署的最后一顆衛(wèi)星發(fā)射成功標(biāo)志著北斗全球系統(tǒng)星座部署圓滿完成[2],我國全球衛(wèi)星導(dǎo)航服務(wù)提升到一個新的高度。目前,國內(nèi)學(xué)者針對軌跡數(shù)據(jù)研究較為豐富,根據(jù)用戶類型劃分,如出租車[3]、公交車[4]、個人[5]等,研究出行規(guī)律和安全性分析;按照軌跡數(shù)據(jù)獲取、提取、可視化等步驟[6-8],探索道路提取、數(shù)據(jù)壓縮、行為識別等技術(shù)。
但是面向北斗衛(wèi)星開展的研究相對較少[9-11],為此,本文以北斗車輛監(jiān)控數(shù)據(jù)為切入點,圍繞實時時空大數(shù)據(jù)的特點進(jìn)行分析與挖掘,探索接入、處理、輸出等各個環(huán)節(jié),研究WebSocket傳輸協(xié)議,設(shè)計通信方案,以車輛定位監(jiān)控為場景,搭建地理圍欄對異常車輛情況進(jìn)行報警,開展行程分析和聚合分析。在促進(jìn)智慧城市時空信息云平臺功能升級完善的基礎(chǔ)上,為智慧城市時空基礎(chǔ)設(shè)施的全面應(yīng)用積累經(jīng)驗,為江蘇全省新型基礎(chǔ)測繪、政府部門時空大數(shù)據(jù)及地理信息應(yīng)用提供技術(shù)支持。
本文采用的數(shù)據(jù)源為江蘇北斗衛(wèi)星應(yīng)用產(chǎn)業(yè)研究院有限公司提供的2016年部分北斗車輛監(jiān)控數(shù)據(jù)和視頻數(shù)據(jù),其中車輛監(jiān)控數(shù)據(jù)記錄19 993 003條,約300 G。數(shù)據(jù)結(jié)構(gòu)詳如表1-表2所示。
表1 Vehicle數(shù)據(jù)結(jié)構(gòu)
表2 Vehicle-second數(shù)據(jù)結(jié)構(gòu)
車輛監(jiān)控數(shù)據(jù)具有數(shù)據(jù)體量大、結(jié)構(gòu)復(fù)雜的特點,尤其是沒有經(jīng)過處理的數(shù)據(jù)價值密度相對較低,用戶感興趣的往往只是某些特定空間要素和屬性信息,因此,數(shù)據(jù)處理的難點表現(xiàn)在以下3個方面:
(1)數(shù)據(jù)異構(gòu)問題
即使為同一類傳感器,其物理、產(chǎn)品特性也有較大差別,導(dǎo)致各個傳感器件采集的數(shù)據(jù)擁有不同類型、不同時效、不同數(shù)據(jù)結(jié)構(gòu),物聯(lián)網(wǎng)多模式并存使數(shù)據(jù)難以得到統(tǒng)一,為實時處理帶來困難。
(2)對指標(biāo)展開增量計算
對于計數(shù)、求和等簡單指標(biāo)來說,通過查詢結(jié)果合并即可,但是,對于相對復(fù)雜的指標(biāo),如涉及到長周期時間窗口或熱點數(shù)據(jù)維度等,需要進(jìn)行多次計算,顯著增加了計算的開銷。
(3)資產(chǎn)跟蹤管理問題
通過地理信息技術(shù)對車輛等資產(chǎn)進(jìn)行跟蹤管理,及時向目標(biāo)傳達(dá)指定時間及地點,如向車輛傳達(dá)指定的路線信息和空間限制信息,從而形成車輛管理網(wǎng)絡(luò),車輛監(jiān)管人員及時發(fā)現(xiàn)車輛偏離、進(jìn)入限制區(qū)域等異常情況,并對需求時間段內(nèi)車輛行駛情況進(jìn)行統(tǒng)計,為車輛管理決策提供依據(jù)。
結(jié)合現(xiàn)階段大數(shù)據(jù)技術(shù)發(fā)展和使用情況來看,已經(jīng)能夠一定程度上實現(xiàn)大數(shù)據(jù)處理,一種是以Hadoop為代表的批量大數(shù)據(jù)處理技術(shù),該技術(shù)首先將數(shù)據(jù)信息匯總成批進(jìn)行批量預(yù)處理,再將處理后的數(shù)據(jù)傳輸并保存至分析結(jié)果庫,以支持實時查詢服務(wù),但是該技術(shù)不能給予最新的數(shù)據(jù)和信息進(jìn)行查詢,存在一定的遲滯。另一種是流式大數(shù)據(jù)處理技術(shù),以Storm、Spark為代表,具有較高時效性,能夠?qū)崿F(xiàn)對即時性數(shù)據(jù)的處理與反饋。此外,若是在實際計算中,使用粗放的調(diào)度策略,會導(dǎo)致系統(tǒng)內(nèi)存的大量浪費?;谶@樣的情況,必須使用能夠?qū)M(jìn)度進(jìn)行實時感知的融合存儲策略,優(yōu)化流式大數(shù)據(jù)實時處理的內(nèi)存使用效率。
為此,本文結(jié)合上述優(yōu)勢提出針對性解決方案,包括基于不同情況下構(gòu)建輸入連接器、實時地理信息數(shù)據(jù)處理分析、輸出連接器配置以及車輛定位監(jiān)控場景下地理圍欄應(yīng)用等(圖1)。既擴(kuò)展了適用于車載GPS設(shè)備以及大數(shù)據(jù)支持的連接器,又針對GIS事件實時數(shù)據(jù)流有較好的空間分析能力。
車輛軌跡數(shù)據(jù)具有長期性,局部時間連續(xù)但整體時間不連續(xù)的突出特征,如圖2所示,如果將相隔時間較長的兩個定位點串接在一起形成的軌跡較為突兀。
為此,本文分析車輛軌跡數(shù)據(jù)時間軸,發(fā)現(xiàn)對于一般車輛來說,把軌跡分段時間間隔值設(shè)置為10 min的效果較好(分段時間間隔值指的是相鄰定位點時間間隔在10 min內(nèi),則認(rèn)為該車輛在連續(xù)行駛)。對于一些車輛本身定位點間隔較長的情況,可以根據(jù)需要把軌跡分段時間間隔值設(shè)置為30 min或1 h,這樣基本上避免了簡單地串接起兩段軌跡造成的軌跡失真現(xiàn)象。
(1)去除停車期間車輛定位點團(tuán)狀現(xiàn)象
車輛停車期間,由于GPS信號一直處于接收狀態(tài),出現(xiàn)由GPS信號解析得到的同一個定位點會在車輛停車點附近隨機分布的現(xiàn)象(圖3)。經(jīng)過分析對比發(fā)現(xiàn),形成團(tuán)狀現(xiàn)象的定位點基本上在停車點周邊10 m范圍內(nèi),去除距離在10 m內(nèi)的相鄰點后,這種現(xiàn)象基本上得以避免。
(2)去除定位漂移造成的軌跡尖角現(xiàn)象
受車輛GPS信號接收的影響,車輛定位點會出現(xiàn)忽然漂移較遠(yuǎn)再回到道路附近的現(xiàn)象。對此,本文將明顯漂移的定位點看作噪點,進(jìn)行去除。如圖4所示,此類漂移點常常和前后定位點構(gòu)成銳角,借助Python的Numpy庫,按照時間序列讀取車輛軌跡數(shù)據(jù),分析連續(xù)三點是否構(gòu)成銳角,從而決定是否去除連續(xù)三點中的中間點。
(3)區(qū)別處理車輛轉(zhuǎn)彎掉頭和定位漂移現(xiàn)象
構(gòu)成銳角的情況分為2種:① 車輛轉(zhuǎn)彎或掉頭處的點與其相鄰的點;② 定位漂移和其相鄰點,前者保留而后者要去除。本文對車輛轉(zhuǎn)彎掉頭處多次分析后發(fā)現(xiàn),車輛轉(zhuǎn)彎處構(gòu)成的銳角一般不超過60°,雖然掉頭構(gòu)成的銳角和漂移點的銳角無法通過角度來區(qū)別,但通過距離可以區(qū)別,掉頭處的點一般在10 m之外30 m之內(nèi),而漂移點常常是在30 m之外。為此,通過角度和距離的綜合分析,對定位點進(jìn)行去留的操作后,如圖5所示,異常點出現(xiàn)頻率大大降低。
即使使用相同的適配器,仍然不能保證接入的數(shù)據(jù)結(jié)構(gòu)完全一致,最常見的問題是相同結(jié)構(gòu)數(shù)據(jù)存在不同字段名稱。利用字段映射方法,建立字段的一一對應(yīng)關(guān)系,把不同的數(shù)據(jù)結(jié)構(gòu)完成數(shù)據(jù)同構(gòu)化,保證后續(xù)數(shù)據(jù)流處理進(jìn)程的可靠性(圖6)。
本文采用WebSocket通信方案進(jìn)行實時數(shù)據(jù)的分發(fā)與處理,具體方案分為3步走(圖7):① 構(gòu)建WebSocket服務(wù)器來接收車輛終端的實時數(shù)據(jù);② 實時處理服務(wù)器與WebSocket服務(wù)器建立Web Socket通信,獲取車輛的位置等信息,進(jìn)行實時分析處理;③ 通過Web服務(wù)器把處理后的信息發(fā)布出來,提供給終端用戶使用。
當(dāng)數(shù)據(jù)正常接入時,需要完成4個操作:① 識別用戶發(fā)送的連接請求;② 回復(fù)請求報文完成握手;③ 建立連接并檢查;④ 推送最新空間位置信息到客戶端。
當(dāng)出現(xiàn)異常情況,需要斷開連接時,涉及2個操作:① 主動放棄連接,釋放資源;② 識別主動申請關(guān)閉連接的請求并關(guān)閉連接。為此,本文將WebSocket服務(wù)器整體功能歸納為請求處理、數(shù)據(jù)讀取、數(shù)據(jù)發(fā)送、業(yè)務(wù)處理4個部分。
地理圍欄是一種新的地理信息服務(wù)理念和模式,是具有時間和地理雙屬性的模型??臻g地理邊界難以通過文字指令和語言傳達(dá)準(zhǔn)確,但將限制區(qū)域以閉合多邊形的方式繪制在地圖上則直觀準(zhǔn)確得多,故將限制區(qū)域以閉合圖形方式在電子地圖上標(biāo)記出來,并設(shè)置限制區(qū)域生效的時間段信息,形成具有時空限制條件的邏輯圍欄。將要觀測監(jiān)控的要素信息與地理圍欄進(jìn)行關(guān)聯(lián),可以為特定要素指派或匹配相應(yīng)的地理圍欄,直觀地對要素進(jìn)行分類管理。
動態(tài)設(shè)置車輛規(guī)則是建立屬性監(jiān)控和空間圍欄監(jiān)控的過程,本文在預(yù)創(chuàng)建服務(wù)流程的基礎(chǔ)上,動態(tài)添加車輛數(shù)據(jù)管理規(guī)則。
一個基本的車輛規(guī)則創(chuàng)建流程如圖8所示,滿足定義的車輛數(shù)據(jù)從多個輸入控件流入(圖中所示為kafka-json-in、websocket-json-in),經(jīng)過初步字段映射(FieldMapper),將多種不同結(jié)構(gòu)的數(shù)據(jù)處理為標(biāo)準(zhǔn)定義的數(shù)據(jù)匯總至數(shù)據(jù)字段處理器(dataHandler)組件中,經(jīng)由多個輸出組件輸出。圖層輸出(feature)組件負(fù)責(zé)將數(shù)據(jù)存入圖層中,提供歷史軌跡的查詢;流服務(wù)輸出(stream-service-out)組件輸出動態(tài)的數(shù)據(jù)流,用于在地圖上展示車輛實時位置和相關(guān)信息;Websocket外部json輸出(websocket-external-json-out)組件以json的格式通過websocket客戶端向車輛系統(tǒng)的服務(wù)端推送數(shù)據(jù),用作車輛的統(tǒng)計展示。
將特定區(qū)域范圍或某點指定半徑范圍的緩沖區(qū)設(shè)置為地理圍欄,當(dāng)車輛駛?cè)牖蝰傠x該區(qū)域時觸發(fā)報警事件(表3)。在設(shè)置時間段內(nèi),車輛對象在電子地圖上移動時,其關(guān)聯(lián)的地理圍欄發(fā)生拓?fù)潢P(guān)系變化的情況。如目標(biāo)對象進(jìn)入地理圍欄,觸發(fā)“進(jìn)入”事件;目標(biāo)對象離開地理圍欄,觸發(fā)“離開”事件;目標(biāo)對象位置信息消失,則觸發(fā)“消失”事件。當(dāng)事件被觸發(fā),則創(chuàng)建一條事件信息記錄,可在系統(tǒng)一系列數(shù)據(jù)分析、展示功能下,進(jìn)行事件信息存儲、統(tǒng)計、分析、展示等處理。
表3 地理事件觸發(fā)
車輛規(guī)則的動態(tài)指定,即將車輛與規(guī)則的關(guān)系應(yīng)用到了每一條流經(jīng)數(shù)據(jù)字段處理器組件的車輛數(shù)據(jù)上。在車輛規(guī)則動態(tài)創(chuàng)建的過程中,數(shù)據(jù)字段處理器組件起到承上啟下的重要作用,可以通過地理事件處理器的二次開發(fā)來完成,其關(guān)鍵作用在于通過RPC遠(yuǎn)程調(diào)用車輛系統(tǒng)的API查詢所有被系統(tǒng)管理的車輛數(shù)據(jù),補全每條通過組件的數(shù)據(jù)缺失的關(guān)鍵字段信息,包括車輛所屬單位(groupid)、車輛應(yīng)用的規(guī)則id(ruleid)、報警方式(alarmmode)、報警郵件地址(email)、報警聯(lián)系電話(tel)以及圍欄標(biāo)記(geofence)的字段信息,后續(xù)可根據(jù)需要擴(kuò)展更多字段。
本次分析采用261萬個軌跡點樣例數(shù)據(jù),分析步驟為(圖9):① 數(shù)據(jù)清洗:經(jīng)分析發(fā)現(xiàn),數(shù)據(jù)存在異常偏差點,因此,將遠(yuǎn)離道路的偏差點認(rèn)為是噪點,對道路數(shù)據(jù)進(jìn)行緩沖區(qū)分析,剔除不在緩沖區(qū)內(nèi)的軌跡點;② 獲得初始行程:將軌跡點按照日期分成不同的子集,按時間順序依次連接,形成每日的初始行程;③ 切割初始行程:本次實驗每日行程切割間隔設(shè)置為0.5 h,如果時間相鄰的兩點時間間隔在0.5 h以上,則進(jìn)行分割,同時剔除距離少于1 km的行程;④ 連接隔天行程:依據(jù)當(dāng)天的第一個行程開始時間與前一天最后一個行程的結(jié)束時間,如果兩個時間間隔在15 min內(nèi),則連接這兩個行程。
經(jīng)過上述步驟,2 619 501條軌跡記錄共形成2 885條行程。行程主要集中在華北、華東和華南地區(qū)(圖10)。行程平均長度為15.5 km,最短行程1 km(程序限制),最長139.9 km。所有行程平均車速為33.5 km/h,最低平均車速為0.6 km/h,最高平均車速為65.9 km/h。
通過對軌跡數(shù)據(jù)進(jìn)行預(yù)處理,去除噪音,獲取起訖點數(shù)據(jù),將數(shù)據(jù)存儲在Elasticsearch中,構(gòu)建空間索引,提供分析聚合接口,前端調(diào)用聚合接口并進(jìn)行可視化,熱力圖結(jié)果如圖11所示,顏色越亮(橘黃色)的地方表明聚集程度越高,從可視化結(jié)果來看,本次分析的軌跡數(shù)據(jù)主要分布在華東地區(qū),以南京市內(nèi)居多。在實際應(yīng)用中可以直觀形象地展示高人流量聚集區(qū)域,如景區(qū)、服務(wù)區(qū)等,提前規(guī)劃調(diào)整出行路線,有效躲避擁擠。
此外,為了豐富可視化效果,利用有顏色的線條表示軌跡信息。針對數(shù)據(jù)量較大的情況,設(shè)置閾值進(jìn)行聚類,將具有相近特征的軌跡數(shù)據(jù)進(jìn)行合并展示,如圖12所示,效果與熱力圖類似,高亮的地方表明軌跡數(shù)據(jù)較多,在實際應(yīng)用中可用于研究個人行為特征、旅游出行線路喜愛度等。
大數(shù)據(jù)時代的到來,對數(shù)據(jù)分析與挖掘提出較高要求,尤其是針對實時大數(shù)據(jù)的分析需求日益增長。本文以北斗車輛監(jiān)控數(shù)據(jù)作為切入點,研究數(shù)據(jù)接入、處理、輸出的各個環(huán)節(jié),解決數(shù)據(jù)預(yù)處理中軌跡分段、軌跡漂移的問題,引入地理圍欄技術(shù)參與車輛監(jiān)控,對圍欄搭建進(jìn)行深入研究,并開展行程分析和聚合分析,豐富數(shù)據(jù)可視化展示效果。未來將進(jìn)一步提升計算能力,增加可視化展示方式。