geopandas 0.9.0重要新特性一覽

添加微信號(hào)"CNFeffery"加入技術(shù)交流群
?本文示例文件已上傳至我的
?Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes
1 簡(jiǎn)介
就在幾天前,geopandas釋放了其最新正式版本0.9.0,作為一次比較大的版本更新,geopandas為我們帶來了一系列新特性,今天的文章我們就來一起看看有哪些主要的功能變化吧~

2 geopandas 0.9.0重要新特性一覽
出于對(duì)穩(wěn)定性的考慮,我選擇新建虛擬環(huán)境來探索新版本geopandas,完整命令如下(順便一提,0.9.0版本最低支持的Python版本為3.5):
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可直接讀取存放單個(gè)矢量文件的zip壓縮包
在以前的版本中,當(dāng)我們的矢量文件存放在zip壓縮包內(nèi)時(shí),使用gpd.read_file()直接讀取時(shí)需要傳入特殊格式的zip路徑表達(dá)式(詳見我以前撰寫的geopandas系列教程「文件IO篇」),但在0.9.0版本中,當(dāng)你的zip壓縮包內(nèi)只有單一圖層的文件時(shí),直接就可讀?。?/p>

2.2 新增對(duì)wkt與wkb格式的直接支持
在以前版本的geopandas中,是沒有直接的API來與wkt/wkb格式進(jìn)行交互的,往往需要配合shapely中的相關(guān)功能。
而在這次的更新中針對(duì)GeoSeries對(duì)象新增了from_wkt()、from_wkb()、to_wkt()以及to_wkb()四種方法,使得我們直接就可以輕松完成格式轉(zhuǎn)換:

2.3 新增高度z屬性
在以前版本中,我們可以對(duì)點(diǎn)要素構(gòu)成的GeoSeries或GeoDataFrame提取x與y坐標(biāo)屬性,而在這次的更新中,額外新增了對(duì)高度z屬性的支持:

2.4 dissolve()方法新增無字段依賴模式
我在geopandas系列教程空間計(jì)算篇(上)帶大家學(xué)習(xí)過用于對(duì)不同記錄行矢量要素,按照某列或多列進(jìn)行矢量融合的方法dissolve(),而新版本中的dissolve()中的by參數(shù)默認(rèn)值為None,這時(shí)會(huì)不依賴任何其他字段,直接把所有記錄行矢量要素融合為一行,非常的方便:

2.5 新增estimate_utm_crs()方法自動(dòng)推斷投影坐標(biāo)系
不管你的GeoDataFrame或GeoSeries坐標(biāo)參考系是什么,只要是合法可解析的,通過geopandas新版中增加的estimate_utm_crs()方法,都可以自動(dòng)幫你推斷最「合適」的經(jīng)度帶對(duì)應(yīng)的橫軸墨卡托投影坐標(biāo)系:

2.6 解決了explode()方法與pandas的沖突
我在geopandas系列教程空間計(jì)算篇(上)中還介紹過與dissolve()方法相反的explode()方法,它可以將多要素集合類型的GeoDataFrame或GeoSeries自動(dòng)拆分為每行包含單要素的結(jié)果,但熟悉pandas的小伙伴一定知道在pandas中存在著同名方法,用于將元素為數(shù)組類型如列表的單行記錄拆成單元素構(gòu)成的多行記錄。
而以前版本geopandas中的explode()方法是不兼容pandas的,這意味著如果你既需要多部件矢量要素拆分,又需要按照數(shù)組型元素拆分,就得在geopandas與pandas的數(shù)據(jù)結(jié)構(gòu)之間轉(zhuǎn)來轉(zhuǎn)去,但新版本中兩者得到了完美兼容~

2.7 繪圖無需descartes依賴
用過geopandas繪制面要素的朋友都知道,以前版本的geopandas是需要第三方依賴庫descartes,但在0.9.0版本中再也不需要啦!

除此之外,geopandas還提供了很多小的新特性,這里就不再一一贅述,感興趣的讀者朋友可以在https://github.com/geopandas/geopandas/releases/tag/v0.9.0詳細(xì)查看。
以上就是本文的全部?jī)?nèi)容,歡迎在評(píng)論區(qū)與我進(jìn)行討論~

加入知識(shí)星球【我們談?wù)摂?shù)據(jù)科學(xué)】
300+小伙伴一起學(xué)習(xí)!
· 推薦閱讀 ·
Python+Dash快速web應(yīng)用開發(fā):靜態(tài)部件篇(下)
如何使用python提取pdf表格及文本,并保存到excel
