孫世紀 張桐源 楊雄 高宇辰



摘要:伴隨著高速發(fā)展的城市交通系統(tǒng),每天都會有乘客通過各種方式產(chǎn)生大規(guī)模交通相關的數(shù)據(jù),并且這些交通數(shù)據(jù)可以用來反映某一區(qū)域真實的交通狀況,在此基礎上,妥善地處理并使用這些數(shù)據(jù)來改善交通問題并為城市居民提供方便可靠的服務。該課題設計出了一種基于數(shù)據(jù)挖掘技術和可視化技術的解決方案,以達到展示地鐵相關站點線路信息并且可以清晰地查看某時某刻上海地鐵的運行視圖。提出一種基于leaflet的地鐵交通大數(shù)據(jù)可視化分析方法,通過RStudio平臺將地鐵中所包含的大量客流量數(shù)據(jù)進行數(shù)據(jù)讀取、數(shù)據(jù)清洗、數(shù)據(jù)分析,最后生成相關可視化結(jié)果,經(jīng)過可視化分析,進而達到預測乘客的乘坐習慣、換乘規(guī)律及站點的功能特性。
關鍵詞:leaflet;R語言;可視化;數(shù)據(jù)分析;地鐵
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)34-0060-03
1 引言
上海地鐵經(jīng)30多年的發(fā)展,截至2021年12月30日,上海地鐵運營里程為831千米,位于中國第一名,也是世界第一位,截至2021年12月,上海地鐵運營線路共20條(含磁浮線),共設車站508座(含磁浮線2座),運營里程共831千米(含磁浮線29千米),統(tǒng)計數(shù)據(jù)均不含金山鐵路 。隨著線網(wǎng)規(guī)模的快速增長,客流也持續(xù)增加,日均客流從2003年超過100萬乘次到2018 年超過1000 萬乘次只經(jīng)歷了15年[1]。目前,地鐵已然成為上海市民出行的首選,占公共交通出行比例已超過66%。城市的經(jīng)濟和社會發(fā)展依賴于交通,但近年來交通的發(fā)展也依賴于城市社會的快速發(fā)展,基本適應了城市居民多樣化的外出需求。但是上海軌道交通目前我國的交通系統(tǒng)還存在著高峰時段擁堵、通勤成本等突出問題。如何合理有效地解決這些問題,是軌道交通發(fā)展中必然會遇到的一個難題。本課題對于上海地鐵客流數(shù)據(jù)基于R語言leaflet進行可視化分析。
2 可視化技術
數(shù)據(jù)可視化技術,一般是指基于計算 機科學中的圖形學或者圖像處理技術把一些特定的數(shù)據(jù)集(經(jīng)過數(shù)據(jù)預處理之后)轉(zhuǎn)換為對應的可視化圖形或者統(tǒng)計圖形從而進行交互處理的技術。數(shù)據(jù)可視化技術是數(shù)據(jù)挖掘與可視化技術的結(jié)合,而且同時具有兩者的優(yōu)勢。除此之外,數(shù)據(jù)可視化技術也擴展了現(xiàn)有的一些數(shù)據(jù)圖表所具備的傳統(tǒng)功能,所以可以使用戶更加充分清晰地了解相關數(shù)據(jù)集的結(jié)構(gòu)。數(shù)據(jù)可視化也是傳統(tǒng)數(shù)據(jù)挖掘技術中基于圖形分析的重要方法之一,在我們進行數(shù)據(jù)挖掘過程中,使用數(shù)據(jù)可視化技術一方面可以有助于我們快速準確地發(fā)現(xiàn)一些相關的知識和數(shù)據(jù),另一方面它可以幫助用戶控制數(shù)據(jù)挖掘的分析過程。不僅如此,該技術通過在數(shù)據(jù)挖掘的過程中同時提供多種形式的數(shù)據(jù)呈現(xiàn)方式進而實現(xiàn)了人與數(shù)據(jù)的直接交互,有助于用戶觀察和分析數(shù)據(jù)中所包含的寶貴信息,這是深入了解軌道交通中的客流量規(guī)律及人類移動規(guī)律現(xiàn)象和激發(fā)構(gòu)思過程的一個實用工具。數(shù)據(jù)可視化技術在挖掘交通客流量數(shù)據(jù)方面主要提供了兩個方面的應用:一方面拓寬了用戶對交通流量數(shù)據(jù)的認識以及分析;第二,對原始數(shù)據(jù)本身進行優(yōu)化和更新,進而強化數(shù)據(jù)的深層應用[2]。綜上所述,通過采用這種將數(shù)據(jù)集轉(zhuǎn)化為不同圖形、表格的可視化方法,從而將大量的交通數(shù)據(jù)進行人機交互并使用精確度高的可視化交通信息,進而了解軌道交通中所蘊含的規(guī)律。
3 可視化平臺搭建與數(shù)據(jù)處理
3.1 可視化平臺搭建
本課題使用了Rstudio軟件中的shinyapp來搭建平臺。R軟件本身是被用于統(tǒng)計分析、繪圖的語言和操作平臺。R語言本身的使用場景主要適用于基于本地會話(local session) 的編程語言,因此缺乏了交互性、嵌入性以及自動化。在此基礎上,如果Rstudio想要基于R來構(gòu)建BI工具,就需 要體現(xiàn)出本地的編程語言和線上展示之間的連接關系并將他們進行交互結(jié)合。所以,這也體現(xiàn)出了shiny作為實現(xiàn)以上需求的功能,并在結(jié)構(gòu) 設計上強調(diào)了三個根本 要素:服務器(Serve) 、交互界面(UI) 和反應連結(jié)(Reactivity) 。
這也可以反映出shiny設計的一個根本思路:反應表達式(reactive expression) 。最簡潔的理解反應式表達的示例如圖1所示。
3.2 數(shù)據(jù)處理
要是實現(xiàn)基于原始數(shù)據(jù)的數(shù)據(jù)預處理工作,包括規(guī)范數(shù)據(jù)格式、清洗數(shù)據(jù)、數(shù)據(jù)標準化和處理缺失數(shù)據(jù),校正不一致數(shù)據(jù)以及刪除一些重復數(shù)據(jù)等;然后統(tǒng)計每五分鐘進出站點的客流量數(shù)據(jù),再將當日的地鐵刷卡數(shù)據(jù)合并到一個集合中,方便后續(xù)進行數(shù)據(jù)可視化等操作, 通過R語言中的dplyr包對數(shù)據(jù)進行清洗dplyr包:dplyr的主要功能是方便。使用者對存儲的數(shù)據(jù)進行簡化提取[3]。而且除了可以處理本地數(shù)據(jù)格式外,還可以使用完全相同的R代碼處理遠程數(shù)據(jù)庫。與Python軟件中的pandas功能很類似,該包的一些功能能對數(shù)據(jù)類型為表格數(shù)據(jù)(dataframe)的數(shù)據(jù)做方便的數(shù)據(jù)的處理和分析操作,從而實現(xiàn)數(shù)據(jù)的清洗處理,其中包括了對數(shù)據(jù)進行整合、關聯(lián)、排序、篩選、匯總、分組等功能。具體地,首先dplyr包中有一種類似管道操作符號%>%,該符號的作用體現(xiàn)在‘it feeds to what is before to what is after’即:將上一句的對象作為第一個參數(shù)傳遞到下一句的函數(shù)中,該功能類似于unix的管道編程風格,使得代碼更加簡潔易讀。通過數(shù)據(jù)挖掘函數(shù)對上海地鐵數(shù)據(jù)進行清洗和篩選,最后統(tǒng)計得出地鐵站點進出站(每五分鐘)的相關數(shù)據(jù),如表1所示。
3.3 可視化成果
在對上海地鐵進行可視化的過程中,上海地圖以及線路站點視圖是其中一個重要模塊,并且其中存在很多功能需要與地圖進行交互操作。為了完成目標,選擇了R語言中的Leaflet包來實現(xiàn)繪制地圖的相關功能。Leaflet是屬于JavaScript庫中的一個現(xiàn)代開源地圖軟件并可以用于創(chuàng)建移動友好交互式(mobile-friendly interactive) 地圖,它在2010年由烏克蘭的Vladimir Agafonkin與其領導下的一個專業(yè)團隊共同開發(fā)完成的,并且廣泛被使用于《紐約時報》《華盛頓郵報》、GitHub和Flickr等網(wǎng)站,也被OpenStreetMap、Mapbox和CartoDB等GIS專家使用[4]。由于它只有40KB左右大小,所以比較適用于移動端,并且它對于使用者來說提供了許多常用的與地圖交互的功能,例如縮放與平移。Leaflet地圖包確保了用戶在使用過程中能感知到其具有簡潔性、高性能和可適用性等特點,最重要的是它幾乎適用于我們?nèi)粘J褂玫乃兄髁鞯木W(wǎng)站以及桌面端的開發(fā)和移動端開發(fā)[5],該地圖庫不僅包含了多種多樣的地圖插件而且可以在此基礎上自由地擴展與使用相關功能。雖然Leaflet本身不存在地圖數(shù)據(jù),但是在使用過程中可以通過選擇一個基礎底圖層(例如世界地圖)作為基礎地圖,并且可以在功能上結(jié)合市面上普遍使用的高德地圖、百度地圖以及谷歌地圖等App。
在本課題中,首先通過library()加載leaflet包,然后通過addProviderTiles(“cartoDB.Positron”) 語句令其自動加載世界地圖,并且地圖自帶縮放功能。在此之后需要對地鐵站的位置進行標記和顯示,先從station.csv文件中獲取站點的經(jīng)緯度之后,再使用addCircleMarkers()函數(shù)對地圖上對指定經(jīng)緯度的點進行標記[6],該功能還可以調(diào)節(jié)點的顏色、透明度、大小以及虛實等;在此過程中,可以使用Setview()函數(shù)來調(diào)節(jié)地圖的中心位置和縮放比例。最后通過addPolylines()函數(shù)將地鐵站點用多邊形線段連接起來。如圖2所示。
4 總結(jié)與展望
該設計基于可視化技術實現(xiàn)了一種交互式平臺的搭建:在開發(fā)過程中使用了Rstudio平臺、dplyr包以及Leaflet包和相關的繪圖技術,并使用一些包的相關功能完成了對大規(guī)模數(shù)據(jù)的查詢與儲存及如何使用靜態(tài)數(shù)據(jù)與動態(tài)地圖進行交互操作等一系列問題統(tǒng)計出了上海地鐵的客流量數(shù)據(jù)并結(jié)合R語言中一些函數(shù)功能對復雜的數(shù)據(jù)進行處理進而完成了客流量大小的統(tǒng)計和繪制站點線路圖[7];其中還包括:從乘客刷卡數(shù)據(jù)中提取客流規(guī)律,然后在這之中還發(fā)現(xiàn)了一些地鐵站點的客流模式(時間和空間維度),結(jié)合一些數(shù)據(jù)可視化圖形總結(jié)出上海地鐵的客流規(guī)律,以此為地鐵運營模式的改進和云計算大數(shù)據(jù)世紀下乘客的出行規(guī)律的分析提供幫助[8]。
本課題通過使用數(shù)據(jù)可視化技術、數(shù)據(jù)科學的理論知識以及數(shù)據(jù)預處理的分析方式及其他開發(fā)方式和技術,深入地研究與調(diào)查上海地鐵的客流量數(shù)據(jù)。并基于一種開源的數(shù)據(jù)分析平臺,得出相關的結(jié)論可以更加準確地了解上海城市居民的出行規(guī)律以及出行特征,以此拓展到其他城市并為一些城市未來的交通規(guī)劃和發(fā)展提供了相關的解決方案。
參考文獻:
[1] 畢湘利.上海地鐵高質(zhì)量發(fā)展的探索與實踐[J].城市軌道交通研究,2021,24(1):6,224.
[2] 殷瑋川,何世偉,李玉斌,等.基于云計算的地鐵大數(shù)據(jù)分析方法研究[J].鐵道科學與工程學報,2018,15(11):2995-3002.
[3] 殷瑋宏,楊健,何兆東,等.基于數(shù)據(jù)挖掘的深圳市地鐵刷卡數(shù)據(jù)可視化分析[J].現(xiàn)代信息科技,2020,4(14):106-112.
[4] Al-Dohuki S,Wu Y Y,Kamw F,et al.SemanticTraj:a new approach to interacting with massive taxi trajectories[J].IEEE Transactions on Visualization and Computer Graphics,2017,23(1):11-20.
[5] Ovenden M. Metro maps of the world[J].Capital Transport,2005(12):43-46.
[6] Thi Nguyen H,Thi le L,Thi Ngoc Huynh C,et al.Integrating retinal variables into graph visualizing multivariate data to increase visual features[M].Lecture Notes of the Institute for Computer Sciences,Social Informatics and Telecommunications Engineering.Cham:Springer International Publishing,2019:74-89.
[7] 張素潔,謝小園.杭州地鐵客流特征分析與客流預測[J].價值工程,2019,38(19):65-67.
[8] Nagel T,Gro? B.Shanghai metro flow:multiple perspectives into a subway system[J].Leonardo,2017,50(5):511-512.
【通聯(lián)編輯:王力】