新聞中心
Geopandas 0.11版本重要新特性一覽
你可以在舊版本geopandas的基礎(chǔ)上進(jìn)行升級(jí),也可以新建虛擬環(huán)境直接安裝0.11.0版本,本著謹(jǐn)慎嘗鮮的原則,我們可以使用下面的命令一口氣完成新虛擬環(huán)境的創(chuàng)建、geopandas及其相關(guān)依賴的安裝,并安裝上jupyterlab作為IDE進(jìn)行演示:

為拱墅等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及拱墅網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、拱墅網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
conda create -n geopandas-env python=3.8 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main -y
conda activate geopandas-env
conda install geopandas=0.11.0 pygeos pyogrio -c conda-forge -y
pip install jupyterlab -i https://pypi.douban.com/simple/
終端里執(zhí)行下列命令驗(yàn)證一下是否已正確安裝:
python -c "import geopandas as gpd;print(gpd.__version__)"
一切準(zhǔn)備就緒,下面我們來(lái)一覽此次更新中比較重要的幾個(gè)特性:
1. 更快的矢量文件讀寫(xiě)
新版本中為read_file()與to_file()引入了參數(shù)engine用于指定讀寫(xiě)常見(jiàn)矢量文件基于的引擎,默認(rèn)為原先的'fiona',可選'pyogrio',這是由geopandas開(kāi)發(fā)團(tuán)隊(duì)維護(hù)的另一個(gè)庫(kù),可大幅度提升對(duì)常見(jiàn)矢量文件格式如shapefile的讀寫(xiě)速度,以讀取具有數(shù)百萬(wàn)個(gè)多邊形的廣州市全量建筑物輪廓數(shù)據(jù)為例,新的IO引擎帶來(lái)近5倍的讀取性能提升:
以及同樣接近5倍的寫(xiě)出性能提升:
2. 新增高性能矩形裁切方法clip_by_rect()
0.11中新增針對(duì)GeoSeries和GeoDataFrame的方法clip_by_rect(minx, miny, maxx, maxy),可傳入目標(biāo)矩形坐標(biāo)范圍,快速裁切出矩形范圍內(nèi)的矢量,譬如我們基于前面已經(jīng)讀入的廣州市建筑物輪廓數(shù)據(jù),通過(guò)下面的函數(shù)隨機(jī)生成邊長(zhǎng)10000米的矩形范圍作為裁切素材:
import numpy as np
import matplotlib.pyplot as plt
from shapely.geometry import box
# 計(jì)算得到目標(biāo)GeoDataFrame范圍
minx, miny, maxx, maxy = gdf.total_bounds
def generate_random_rectangle(minx, miny, maxx, maxy):
'''
研究范圍內(nèi)隨機(jī)取得100000米邊長(zhǎng)矩形
'''
random_rectangle = [
np.random.uniform(minx, maxx - 10000),
np.random.uniform(miny, maxy - 10000)
]
return [
*random_rectangle,
random_rectangle[0] + 10000,
random_rectangle[1] + 10000,
]
調(diào)用clip_by_rect():
返回的結(jié)果與原始矢量記錄數(shù)量一致,其中呈現(xiàn)GEOMETRYCOLLECTION EMPTY的記錄說(shuō)明其與目標(biāo)矩形沒(méi)有交集,我們利用is_empty來(lái)反向篩選出發(fā)生裁切的矢量記錄:
除此之外,你還可以直接將[minx, miny, maxx, maxy]格式的輸入傳入經(jīng)典的clip()裁切方法中,它會(huì)在底層直接調(diào)用clip_by_rect()并自動(dòng)返回有效矢量裁切結(jié)果:
3. 正確讀寫(xiě)GIS文件中的日期時(shí)間字段
從0.11.0版本開(kāi)始,geopandas在面對(duì)日期時(shí)間型字段時(shí),無(wú)論是寫(xiě)出到GIS文件還是從GIS文件讀入,都可以保證正確解析為日期時(shí)間型:
你可以在https://github.com/geopandas/geopandas/releases/tag/v0.11.0查看完整的版本更新說(shuō)明,總體而言,這次新版本更新帶來(lái)的重要更新并不太多,但都頗為實(shí)用,你可以在自己的數(shù)據(jù)上使用一番。
本文標(biāo)題:Geopandas 0.11版本重要新特性一覽
網(wǎng)站路徑:http://www.5511xx.com/article/dpjisgc.html


咨詢
建站咨詢
