2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

如何利用Python獲取路網(wǎng)交通態(tài)勢

 千年老藤 2024-06-22 發(fā)布于廣西

溫馨提示:沒有設(shè)置星標(biāo)的小伙伴可能會收不到文章的推送信息,歡迎各位新老朋友給【hello trans】加個星標(biāo),以便及時獲得最新推文,感謝支持。

本文主要是提供技術(shù)路線和思路,使用Python語言,通過高德API接口,來獲取路網(wǎng)實時的交通態(tài)勢。

(一)效果預(yù)覽

圖片

圖片

圖片

(二)準(zhǔn)備工作

(1)高德api key申請

進入高德開放平臺,地址為:https://lbs.amap.com/。當(dāng)然直接使用瀏覽器進行搜索【高德開放平臺】也可以快速進入。首先進入控制臺,然后點擊管理key。添加一個【web服務(wù)】的key即可。

圖片

圖片

圖片

個人用戶者,每天免費使用的key額度是有限的,以路徑規(guī)劃為例,每天免費調(diào)用量上限為5000。換言之,我們每次構(gòu)造的OD對不能超過5000個。如果想要調(diào)用更多的量可以向高德進行申請。

圖片

圖片

(2)范圍shp文件準(zhǔn)備

以arcgis為例,在arcgis中加載好高德的在線地圖,然后再右側(cè)目錄欄連接到我們的目錄(代碼所在的根目錄)。

圖片

然后在該目錄下新建一個shp文件。

圖片

名稱命名為【bounds】,要素選擇面,坐標(biāo)系選擇地理坐標(biāo)系WGS84。

圖片

然后,在左側(cè)圖層欄,選擇bounds圖層【開始編輯】。

圖片

在新彈出的編輯窗口選擇面,然后就可以繪制出范圍了。

圖片

圖片

最后停止停止編輯,保存即可,這一步arcgis的操作比較簡單,就不詳細展開。

(三)代碼演示

要使用路徑規(guī)劃API來獲取信息就需要提前構(gòu)造OD對,通過讀取邊界范圍的最大最小值來生成均勻的點。

圖片

構(gòu)造完OD,就需要使用路徑規(guī)劃API來獲取信息。詳細的url中的請求參數(shù)和返回的信息可以查看官方的開發(fā)者文檔。

圖片

利用python寫一個循環(huán),來獲取多個od路徑。主要思路如下:

圖片

這段代碼通過高德地圖API獲取每一對起點(Origin)和終點(Destination)之間的駕車路線信息,并處理請求結(jié)果,包括錯誤處理。具體步驟如下:

  • 讀取起點和終點:從之前生成的O.txt和D.txt文件中讀取所有起點和終點坐標(biāo),組合成OD對,并保存到一個新的OD.txt文件中。

  • 創(chuàng)建保存目錄:確保json_get目錄存在,用于存放后續(xù)請求的結(jié)果。

  • 構(gòu)建并發(fā)送API請求:遍歷每個OD對,構(gòu)造包含API密鑰、起點、終點的請求URL,然后使用urllib.request.urlopen發(fā)送請求。用戶需手動輸入高德地圖API的密鑰。

  • 處理響應(yīng):

    • 如果請求成功(狀態(tài)碼為1),解析返回的JSON數(shù)據(jù),提取路線信息,并記錄到結(jié)果列表中。

    • 遇到URLError或其他異常時,記錄錯誤信息,并將該OD對的狀態(tài)標(biāo)記為FAILED。

    • 每處理完一對OD,都會打印處理進度和可能遇到的錯誤信息。

  • 保存結(jié)果:將所有請求的結(jié)果(包括成功的路線數(shù)據(jù)和失敗的信息)保存到j(luò)son_get目錄下的path_results.json文件中,采用JSON格式存儲,便于后續(xù)分析。

  • 控制請求速度:注釋掉了動態(tài)延時的部分(原本設(shè)計用于遵守API請求速率限制),但可根據(jù)實際需求取消注釋并設(shè)置合適的延時間隔。

然后就是將url返回的信息按照我們的需求提取出來。

圖片

最后,可以對結(jié)果進行簡單的可視化:

圖片

(四)圖形化小程序演示

為了方便使用,對進行了整合,寫了一個圖形界面的小工具。以下對該工具進行一個簡單的介紹:

圖片

圖片

圖片

圖片

這是主要界面,一共分為四個步驟,操作的演示視頻如下:

(五)注意事項說明

(1)首先需要準(zhǔn)備邊界范圍,范圍不易過大,可使用Qgis或Acrgis構(gòu)建一個shp格式的邊界。因為高德key每天調(diào)用的額度是有限的,只有5000條。

圖片

圖片

(2)每次爬取可獲取當(dāng)前時刻下實時的交通狀態(tài),若需要爬取不同時刻的交通狀態(tài),需要手動進行多次爬取操作。

最終結(jié)果分別保存為shp、geojson和csv文件,其中csv文件包含以下道路信息:

圖片

第一列是道路的名稱,第二列是擁堵系數(shù),第三列是交通擁堵狀態(tài)。

(六)效果展示

可視化預(yù)覽的最終的效果如下:

圖片

這是工作日早上八點,案例片區(qū)的交通狀態(tài)。

然后,我分別爬取了周末和工作日早上七點到晚上七點的交通態(tài)勢,將每張圖片合并成gif格式,如下:

圖片

周末全天擁堵變化

圖片

工作日全天擁堵變化

我們還可以利用csv中的擁堵系數(shù),進行全天交通態(tài)勢變化趨勢分析。

圖片

圖片

注意:該小工具無法一次性爬取全天的交通態(tài)勢變化情況,只能獲取當(dāng)前時刻下的路網(wǎng)交通態(tài)勢。

(七)較大范圍測試

以渝中區(qū)為例:

第一步:通過邊界范圍構(gòu)造OD對

圖片
圖片
第二步:獲取json文件
我這里生成40*40=1600對OD。我大概測試了一下,調(diào)用1600次,共耗時7分44秒。產(chǎn)生的json文件約49M。

圖片圖片

圖片
第三步:提取道路信息
提取信息處理較快。僅用5s便處理完49M,共85萬行的數(shù)據(jù)。
圖片
第四步:可視化預(yù)覽
圖片
圖片
圖片
我們可將結(jié)果文件放入Qgis或者Arcgis中進行進一步的處理。
圖片

為了形成良好的正向反饋,激勵作者創(chuàng)作,喜歡作者25,同時也會提供演示的代碼和小工具供讀者進行修改和研究。該技術(shù)路線具有一定的局限性,獲取的范圍不易過大,不能自動化連續(xù)性的爬取多個時間節(jié)點的數(shù)據(jù),可能無法完全滿足大家的需求,可以根據(jù)提供的代碼自行完善補充。

感謝閱讀本期內(nèi)容,如果您覺得有幫助,動動您的手指頭,【點贊】+【在看】,這是對我最大的支持和鼓勵,非常感謝?。?!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多