欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+Kepler.gl輕松制作酷炫路徑動畫的實現(xiàn)示例

 更新時間:2020年06月02日 11:14:43   作者:其實還好啦  
這篇文章主要介紹了Python+Kepler.gl輕松制作酷炫路徑動畫的實,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧現(xiàn)示例

1. 簡介

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

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

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

2.基于keplergl的路徑動畫

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

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

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

3.構(gòu)造數(shù)據(jù)與初始化html

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

from keplergl import KeplerGl
import json
import time
 
with open('geometry/重慶市渝中區(qū)_osm路網(wǎng)_道路.geojson') as g:
  raw_roads = json.load(g)

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

可以看到,這時線要素內(nèi)部包含的點還是[經(jīng)度, 緯度]的格式,接下來我們?yōu)槠涮摌?gòu)上時間戳信息,為了保證整個路網(wǎng)可視化的協(xié)調(diào)一致,將所有線要素的時間跨度固定在一個小時之內(nèi),保證每段路上從頭到尾的軌跡動畫都保持一致:

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, # 高度設置為0
                     int(start_time) + shift_time])

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

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

首先確保你已經(jīng)安裝了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以圖層名為鍵,對應的矢量數(shù)據(jù)為值
map1
map1.save_to_html(file_name='渝中區(qū).html') # 導出到本地可編輯html文件

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

到此這篇關于Python+Kepler.gl輕松制作酷炫路徑動畫的實現(xiàn)示例的文章就介紹到這了,更多相關Python+Kepler.gl路徑動畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • Python中的pprint模塊

    Python中的pprint模塊

    本文介紹了 Python中的pprint模塊,pprint模塊包含一個“美觀打印機”,用于生成數(shù)據(jù)結(jié)構(gòu)的一個美觀的視圖。格式化工具會生成數(shù)據(jù)結(jié)構(gòu)的一些表示,不僅能夠由解釋器正確地解析,還便于人閱讀。輸出會盡可能放在一行上,分解為多行時會縮進,想了解具體內(nèi)容請參考下文
    2021-11-11
  • Python使用一行代碼獲取上個月是幾月

    Python使用一行代碼獲取上個月是幾月

    本文介紹的關于Python時間日期處理,日期時間處理在實際應用場景中無處不在,所以這也成了編程語言中必不可少的模塊,本文主要給大家介紹Python使用一行代碼獲取上個月是幾月的相關知識,感興趣的朋友一起看看吧
    2018-08-08
  • Python實現(xiàn)Mysql數(shù)據(jù)統(tǒng)計及numpy統(tǒng)計函數(shù)

    Python實現(xiàn)Mysql數(shù)據(jù)統(tǒng)計及numpy統(tǒng)計函數(shù)

    這篇文章主要介紹了Python實現(xiàn)Mysql數(shù)據(jù)統(tǒng)計的實例代碼,給大家介紹了Python數(shù)據(jù)分析numpy統(tǒng)計函數(shù)的相關知識,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • flask中使用藍圖將路由分開寫在不同文件實例解析

    flask中使用藍圖將路由分開寫在不同文件實例解析

    這篇文章主要介紹了flask中使用藍圖將路由分開寫在不同文件實例解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python實現(xiàn)端口復用實例代碼

    Python實現(xiàn)端口復用實例代碼

    這篇文章主要介紹了Python實現(xiàn)端口復用實例代碼,需要的朋友可以參考下
    2014-07-07
  • OpenCV簡單標準數(shù)字識別的完整實例

    OpenCV簡單標準數(shù)字識別的完整實例

    這篇文章主要給大家介紹了關于OpenCV簡單標準數(shù)字識別的相關資料,要通過opencv 進行數(shù)字識別離不開訓練庫的支持,需要對目標圖片進行大量的訓練,才能做到精準的識別出目標數(shù)字,需要的朋友可以參考下
    2021-09-09
  • python的id()函數(shù)解密過程

    python的id()函數(shù)解密過程

    id()函數(shù)在使用過程中很頻繁,為此本人對此函數(shù)深入研究下,曬出代碼和大家分享下,希望對你們有所幫助
    2012-12-12
  • numpy中矩陣合并的實例

    numpy中矩陣合并的實例

    今天小編就為大家分享一篇numpy中矩陣合并的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python注釋、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、偽“選擇結(jié)構(gòu)”用法實例分析

    Python注釋、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、偽“選擇結(jié)構(gòu)”用法實例分析

    這篇文章主要介紹了Python注釋、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、偽“選擇結(jié)構(gòu)”用法,結(jié)合實例形式分析了Python注釋、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、偽“選擇結(jié)構(gòu)”相關功能、用法及操作注意事項,需要的朋友可以參考下
    2020-01-01
  • python?文件讀寫操作示例源碼解讀

    python?文件讀寫操作示例源碼解讀

    這篇文章主要為大家介紹了python?文件讀寫操作示例源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論