本文示例檔案已上傳至我的<code>Github</code>倉庫https://github.com/CNFeffery/DataScienceStudyNotes
就在幾天前,<code>geopandas</code>釋放了其最新正式版本<code>0.9.0</code>,作為一次比較大的版本更新,<code>geopandas</code>為我們帶來了一系列新特性,今天的文章我們就來一起看看有哪些主要的功能變化吧~

圖1
出于對穩定性的考慮,我選擇建立虛拟環境來探索新版本<code>geopandas</code>,完整指令如下(順便一提,<code>0.9.0</code>版本最低支援的<code>Python</code>版本為<code>3.5</code>):
在以前的版本中,當我們的矢量檔案存放在<code>zip</code>壓縮包内時,使用<code>gpd.read_file()</code>直接讀取時需要傳入特殊格式的<code>zip</code>路徑表達式(詳見我以前撰寫的<code>geopandas</code>系列教程檔案IO篇),但在<code>0.9.0</code>版本中,當你的<code>zip</code>壓縮包内隻有單一圖層的檔案時,直接就可讀取:
圖2
在以前版本的<code>geopandas</code>中,是沒有直接的<code>API</code>來與<code>wkt/wkb</code>格式進行互動的,往往需要配合<code>shapely</code>中的相關功能。
而在這次的更新中針對<code>GeoSeries</code>對象新增了<code>from_wkt()</code>、<code>from_wkb()</code>、<code>to_wkt()</code>以及<code>to_wkb()</code>四種方法,使得我們直接就可以輕松完成格式轉換:
圖3
在以前版本中,我們可以對點要素構成的<code>GeoSeries</code>或<code>GeoDataFrame</code>提取<code>x</code>與<code>y</code>坐标屬性,而在這次的更新中,額外新增了對高度<code>z</code>屬性的支援:
圖4
我在<code>geopandas</code>系列教程空間計算篇(上)帶大家學習過用于對不同記錄行矢量要素,按照某列或多列進行矢量融合的方法<code>dissolve()</code>,而新版本中的<code>dissolve()</code>中的<code>by</code>參數預設值為None,這時會不依賴任何其他字段,直接把所有記錄行矢量要素融合為一行,非常的友善:
圖5
不管你的<code>GeoDataFrame</code>或<code>GeoSeries</code>坐标參考系是什麼,隻要是合法可解析的,通過<code>geopandas</code>新版中增加的<code>estimate_utm_crs()</code>方法,都可以自動幫你推斷最合适的經度帶對應的橫軸墨卡托投影坐标系:
圖6
我在<code>geopandas</code>系列教程空間計算篇(上)中還介紹過與<code>dissolve()</code>方法相反的<code>explode()</code>方法,它可以将多要素集合類型的<code>GeoDataFrame</code>或<code>GeoSeries</code>自動拆分為每行包含單要素的結果,但熟悉<code>pandas</code>的小夥伴一定知道在<code>pandas</code>中有同名方法,用于将元素為數組類型如清單的單行記錄拆成單元素構成的多行記錄。
而以前版本<code>geopandas</code>中的<code>explode()</code>方法是不相容<code>pandas</code>的,這意味着如果你既需要多部件矢量要素拆分,又需要按照數組型元素拆分,就得在<code>geopandas</code>與<code>pandas</code>的資料結構之間轉來轉去,但新版本中兩者得到了完美相容~
圖7
用過<code>geopandas</code>繪制面要素的朋友都知道,以前版本的<code>geopandas</code>是需要第三方依賴庫<code>descartes</code>,但在<code>0.9.0</code>版本中再也不需要啦!
圖8
除此之外,<code>geopandas</code>還提供了很多小的新特性,這裡就不再一一贅述,感興趣的讀者朋友可以在<code>https://github.com/geopandas/geopandas/releases/tag/v0.9.0</code>詳細檢視。
以上就是本文的全部内容,歡迎在評論區與我進行讨論~