干貨丨Folium庫案例-Part1-矢量場(chǎng)繪制
? ? 接下來幾期介紹一下最近課程作業(yè)涉及到的地理可視化工具——Folium在海洋學(xué)中的一些應(yīng)用。
? ? Folium是一個(gè)強(qiáng)大的Python庫,用于創(chuàng)建交互式地圖可視化。它基于Leaflet.js,能夠輕松地在Python中繪制地圖,并支持各種標(biāo)記、形狀和圖層。使用Folium,你可以繪制點(diǎn)標(biāo)記、折線、多邊形等,添加顏色、填充和彈出窗口,還可以創(chuàng)建時(shí)間序列地圖和熱力圖。Folium的簡(jiǎn)潔API和靈活性使得地圖可視化變得簡(jiǎn)單而直觀,能提供優(yōu)雅而美觀的地圖可視化解決方案。

Folium官網(wǎng):
https://python-visualization.github.io/folium/
Folium官方示例:
https://nbviewer.org/github/python-visualization/folium/tree/main/examples/
? ? 接下來的三期我會(huì)介紹Folium在海洋學(xué)中的三種應(yīng)用:矢量場(chǎng)(流場(chǎng)、風(fēng)場(chǎng)等)繪制,路徑(浮漂、臺(tái)風(fēng)等)繪制以及柵格圖像的可視化。首先介紹矢量場(chǎng)的繪制。

宮中號(hào)后臺(tái)回復(fù)“folium”領(lǐng)取示例代碼
示例代碼運(yùn)行環(huán)境
? ? python——3.8
? ? folium——0.14.0
? ? numpy——1.24.3
? ? netCDF4——1.6.3
? ? mplleaflet——0.0.5
? ? scipy——1.10.1?
? ? matplotlib——3.4.3
? ? 注意:
? ? ①folium與大部分庫的安裝方法都一樣,即pip install folium,需要注意的是繪制流場(chǎng)時(shí)要用到的mplleaflet庫貌似不支持3.8以上版本的python,所以如果你想運(yùn)行我給的示例代碼,最好創(chuàng)建一個(gè)3.8版本的虛擬環(huán)境,然后安裝上述庫。
? ? ②mplleaflet安裝完成后,需要對(duì)兩個(gè)代碼進(jìn)行一定的修改(參考該鏈接 https://github.com/mpld3/mplexporter/compare/2f766e439b9d91ab4d4682245a2360bc1e5c2bb5...be8e3da62c81fea15a0107f3ae96ba16fc2cc9f),否則會(huì)報(bào)錯(cuò)'XAxis' object has no attribute '_gridOnMajor'。
? ? ③matplotlib要安裝3.5以下版本的,否則會(huì)報(bào)錯(cuò)'Quiver' object has no attribute 'get_offset_position',建議和我一樣安裝3.4.3版本。
程序效果
? ? 矢量場(chǎng)繪制這部分提供了兩個(gè)示例,一個(gè)是GOCI2海表流場(chǎng)產(chǎn)品數(shù)據(jù)的可視化,一個(gè)是CCMP風(fēng)場(chǎng)數(shù)據(jù)的可視化,有需要的可以后臺(tái)回復(fù)"folium"領(lǐng)取示例代碼。
? ? 注意:打開html文件和Juypter程序時(shí),若要查看除高德地圖以外的底圖,需要掛梯子


? ? ?程序中我添加了保姆級(jí)注釋,有需要的可以參考參考。

? ? 本期就先這樣,下期會(huì)介紹繪制臺(tái)風(fēng)、浮漂路徑的案例。童鞋們有啥問題可以后臺(tái)問我我盡量幫你解決。