1. 程式人生 > >(資料科學學習手札111)geopandas 0.9.0重要新特性一覽

(資料科學學習手札111)geopandas 0.9.0重要新特性一覽

> 本文示例檔案已上傳至我的`Github`倉庫[https://github.com/CNFeffery/DataScienceStudyNotes](https://github.com/CNFeffery/DataScienceStudyNotes) # 1 簡介   就在幾天前,`geopandas`釋放了其最新正式版本`0.9.0`,作為一次比較大的版本更新,`geopandas`為我們帶來了一系列新特性,今天的文章我們就來一起看看有哪些主要的功能變化吧~
圖1
# 2 geopandas 0.9.0重要新特性一覽   出於對穩定性的考慮,我選擇新建虛擬環境來探索新版本`geopandas`,完整命令如下(順便一提,`0.9.0`版本最低支援的`Python`版本為`3.5`): ```bash conda create -n geopandas-env python=3.7 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge -y conda activate geopandas-env conda install geopandas=0.9.0 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge -y ``` ## 2.1 read_file可直接讀取存放單個向量檔案的zip壓縮包   在以前的版本中,當我們的向量檔案存放在`zip`壓縮包內時,使用`gpd.read_file()`直接讀取時需要傳入特殊格式的`zip`路徑表示式(詳見我以前撰寫的`geopandas`系列教程**檔案IO篇**),但在`0.9.0`版本中,當你的`zip`壓縮包內只有單一圖層的檔案時,直接就可讀取:
圖2
## 2.2 新增對wkt與wkb格式的直接支援   在以前版本的`geopandas`中,是沒有直接的`API`來與`wkt/wkb`格式進行互動的,往往需要配合`shapely`中的相關功能。   而在這次的更新中針對`GeoSeries`物件新增了`from_wkt()`、`from_wkb()`、`to_wkt()`以及`to_wkb()`四種方法,使得我們直接就可以輕鬆完成格式轉換:
圖3
## 2.3 新增高度z屬性   在以前版本中,我們可以對點要素構成的`GeoSeries`或`GeoDataFrame`提取`x`與`y`座標屬性,而在這次的更新中,額外新增了對高度`z`屬性的支援:
圖4
## 2.4 dissolve()方法新增無欄位依賴模式   我在`geopandas`系列教程**空間計算篇(上)**帶大家學習過用於對不同記錄行向量要素,按照某列或多列進行向量融合的方法`dissolve()`,而新版本中的`dissolve()`中的`by`引數預設值為None,這時會不依賴任何其他欄位,直接把所有記錄行向量要素融合為一行,非常的方便:
圖5
## 2.5 新增estimate_utm_crs()方法自動推斷投影座標系   不管你的`GeoDataFrame`或`GeoSeries`座標參考系是什麼,只要是合法可解析的,通過`geopandas`新版中增加的`estimate_utm_crs()`方法,都可以自動幫你推斷最**合適**的經度帶對應的橫軸墨卡託投影座標系:
圖6
## 2.6 解決了explode()方法與pandas的衝突   我在`geopandas`系列教程**空間計算篇(上)**中還介紹過與`dissolve()`方法相反的`explode()`方法,它可以將多要素集合型別的`GeoDataFrame`或`GeoSeries`自動拆分為每行包含單要素的結果,但熟悉`pandas`的小夥伴一定知道在`pandas`中有**同名**方法,用於將元素為陣列型別如列表的單行記錄拆成單元素構成的多行記錄。   而以前版本`geopandas`中的`explode()`方法是不相容`pandas`的,這意味著如果你既需要多部件向量要素拆分,又需要按照陣列型元素拆分,就得在`geopandas`與`pandas`的資料結構之間轉來轉去,但新版本中兩者得到了完美相容~
圖7
## 2.7 繪圖無需descartes依賴   用過`geopandas`繪製面要素的朋友都知道,以前版本的`geopandas`是需要第三方依賴庫`descartes`,但在`0.9.0`版本中再也不需要啦!
圖8
  除此之外,`geopandas`還提供了很多小的新特性,這裡就不再一一贅述,感興趣的讀者朋友可以在`https://github.com/geopandas/geopandas/releases/tag/v0.9.0`詳細檢視。 ---   以上就是本文的全部內容,歡迎在評論區與我進