日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python应用】Python+Kepler.gl轻松制作酷炫路径动画

發布時間:2025/3/8 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python应用】Python+Kepler.gl轻松制作酷炫路径动画 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章來源于Python大數據分析,作者費弗里

本文示例代碼、數據已上傳至Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes

1 簡介

Kepler.gl相信很多人都聽說過,作為Uber幾年前開源的交互式地理信息可視化工具,kepler.gl依托WebGL強大的圖形渲染能力,可以在瀏覽器端以多種形式輕松展示大規模數據集。

圖1

更令人興奮的是Kepler.gl在去年推出了基于Python的接口庫keplergl,結合jupyter notebook/jupyter lab的相關拓展插件,使得我們可以通過編寫Python程序配合Kepler.gl更靈活地制作各種可視化作品。

圖2

而隨著近期keplergl的更新,更多的新特性得以同步到其Python生態中,本文就將針對其中的路徑動畫的制作方法進行介紹。

2 基于keplergl的路徑動畫

我們要制作的路徑動畫圖主要用于表現特定路徑上流的運動,譬如圖3的例子來自Kepler.gl官方示例:

圖3

而在官方的說明中描述了要繪制路徑動畫需要輸入的數據格式:

圖4

這是一個典型的GeoJSON格式LineString要素,特別的是其"coordinates"鍵對應的值不同于常規的[經度, 緯度]格式,而是代表著[經度, 緯度, 高度, 時間戳],其中高度非必要,可以設置為0,而時間戳則聲明了軌跡動畫在該時間點會到達的該點位置,即線要素上連續的點位置+時間戳定義了軌跡動畫的運動模式,下面我們分步驟來實現。

2.1 構造數據與初始化html

這里我們以重慶市渝中區的OSM路網為演示示例數據,首先我們需要利用json模塊來讀取本地重慶市渝中區_osm路網_道路.geojson數據:

from?keplergl?import?KeplerGl import?json import?timewith?open('geometry/重慶市渝中區_osm路網_道路.geojson')?as?g:raw_roads?=?json.load(g)

隨便打印出其中包含的某個線要素:

圖5

可以看到,這時線要素內部包含的點還是[經度, 緯度]的格式,接下來我們為其虛構上時間戳信息,為了保證整個路網可視化的協調一致,將所有線要素的時間跨度固定在一個小時之內,保證每段路上從頭到尾的軌跡動畫都保持一致:

start_time?=?time.mktime(time.strptime('2020-05-29?20:00:00',?"%Y-%m-%d?%H:%M:%S"))for?i?in?range(raw_roads['features'].__len__()):for?j?in?range(raw_roads['features'][i]['geometry']['coordinates'].__len__()):shift_time?=?int((j?/?raw_roads['features'][i]['geometry']['coordinates'].__len__())*3600)?#?更新當前對應的時間戳raw_roads['features'][i]['geometry']['coordinates'][j]?\.extend([0,?#?高度設置為0int(start_time)?+?shift_time])

接著再打印其中一個線要素:

圖6

可以發現每個點元素都追加上高度0以及對應的時間戳(注意這里的時間戳必須為整數否則之后輸入keplergl會報錯),接下來的過程就非常簡單。

首先確保你已經安裝了keplergl以及對應插件,譬如我所使用的jupyter lab,在確保nodejs被安裝的前提下,使用jupyter labextension install @jupyter-widgets/jupyterlab-manager keplergl-jupyter安裝拓展插件(jupyter notebook可參考https://github.com/keplergl/kepler.gl/tree/master/bindings/kepler.gl-jupyter#installation),以及使用pip install keplergl來安裝keplergl庫,一切準備就緒直接運行如下代碼:

from?keplergl?import?KeplerGl #?生成KeplerGl對象s map1?=?KeplerGl(height=400,?data={'flow':?raw_roads})?#?data以圖層名為鍵,對應的矢量數據為值 map1 map1.save_to_html(file_name='渝中區.html')?#?導出到本地可編輯html文件 圖7

這一步的目的是初始化已嵌入目標數據的html文件,接下來你就可以關閉jupyter lab,在工作目錄下找到已經導出的html文件直接打開,接下來的工作將在瀏覽器里進行。

2.2 交互式創作

接下來的過程則不涉及任何代碼,我們將以點擊按鈕的方式改變我們可視化作品的外觀,由于整個過程細節較多,因此將整個過程錄制為視頻:

Kepler.gl中的交互式參數調整非常簡單,只要你隨便試一試就可以掌握其用法,不必拘泥于我上面的參數設置,發揮自己的創意,調出更美觀的軌跡動畫結果。

以上就是本文的全部內容,如有疑問或建議歡迎到評論區與我交流~

-END-

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯AI基礎下載(pdf更新到25集)機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085,加入微信群請掃碼喜歡文章,點個在看 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【Python应用】Python+Kepler.gl轻松制作酷炫路径动画的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。