本文示例代碼已上傳至我的
Github
倉庫https://github.com/CNFeffery/DataScienceStudyNotes
大家好我是費老師,就在幾天前,geopandas
發布了其0.11.0
正式版本,距離其上一個版本(0.10.2
)發布已過去大半年,在這一次的新版本更新中又為我們帶來了哪些重要的新特性呢,今天的文章中我就來帶大家一探究竟。
你可以在舊版本geopandas
的基礎上進行升級,也可以新建虛擬環境直接安裝0.11.0
版本,本著謹慎嘗鮮的原則,我們可以使用下面的命令一口氣完成新虛擬環境的創建、geopandas
及其相關依賴的安裝,並安裝上jupyterlab
作為IDE進行演示:
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/
終端裡執行下列命令驗證一下是否已正確安裝:
python -c "import geopandas as gpd;print(gpd.__version__)"
一切准備就緒,下面我們來一覽此次更新中比較重要的幾個特性:
新版本中為read_file()
與to_file()
引入了參數engine
用於指定讀寫常見矢量文件基於的引擎,默認為原先的'fiona'
,可選'pyogrio'
,這是由geopandas
開發團隊維護的另一個庫,可大幅度提升對常見矢量文件格式如shapefile
的讀寫速度,以讀取具有數百萬個多邊形的廣州市全量建築物輪廓數據為例,新的IO引擎帶來近5倍的讀取性能提升:
以及同樣接近5倍的寫出性能提升:
0.11
中新增針對GeoSeries
和GeoDataFrame
的方法clip_by_rect(minx, miny, maxx, maxy)
,可傳入目標矩形坐標范圍,快速裁切出矩形范圍內的矢量,譬如我們基於前面已經讀入的廣州市建築物輪廓數據,通過下面的函數隨機生成邊長10000米的矩形范圍作為裁切素材:
import numpy as np
import matplotlib.pyplot as plt
from shapely.geometry import box
# 計算得到目標GeoDataFrame范圍
minx, miny, maxx, maxy = gdf.total_bounds
def generate_random_rectangle(minx, miny, maxx, maxy):
'''
研究范圍內隨機取得100000米邊長矩形
'''
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,
]
調用clip_by_rect()
:
返回的結果與原始矢量記錄數量一致,其中呈現GEOMETRYCOLLECTION EMPTY
的記錄說明其與目標矩形沒有交集,我們利用is_empty
來反向篩選出發生裁切的矢量記錄:
除此之外,你還可以直接將[minx, miny, maxx, maxy]
格式的輸入傳入經典的clip()
裁切方法中,它會在底層直接調用clip_by_rect()
並自動返回有效矢量裁切結果:
從0.11.0
版本開始,geopandas
在面對日期時間型字段時,無論是寫出到GIS文件還是從GIS文件讀入,都可以保證正確解析為日期時間型:
你可以在https://github.com/geopandas/geopandas/releases/tag/v0.11.0
查看完整的版本更新說明,總體而言,這次新版本更新帶來的重要更新並不太多,但都頗為實用,你可以在自己的數據上使用一番。
以上就是本文的全部內容,歡迎在評論區與我進行討論~
本文示例代碼及文件已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes 1 簡介 就在前不久,我們非常熟悉的Python地理 ...
本文對應代碼已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes 1 簡介 在上一篇文章中我們對geopandas中的數據結 ...
一.簡介 在上一篇(數據科學學習手札41)中我們了解了folium的基礎內容,實際上folium在地理信息可視化上的真正過人之處在於其繪制圖像的高度可定制化上,本文就將基於folium官方文檔中的一些 ...
*從本篇開始所有文章的數據和代碼都已上傳至我的github倉庫:https://github.com/CNFeffery/DataScienceStudyNotes 一.簡介 pandas提供了很多方 ...
1 簡介 在數據分析任務中,從原始數據讀入,到最後分析結果出爐,中間絕大部分時間都是在對數據進行一步又一步的加工規整,以流水線(pipeline)的方式完成此過程更有利於梳理分析脈絡,也更有利於查錯改 ...
一.簡介 R中的ggplot2是一個非常強大靈活的數據可視化包,熟悉其繪圖規則後便可以自由地生成各種可視化圖像,但其默認的色彩和樣式在很多時候難免有些過於樸素,本文將要介紹的ggthemr包專門針對原 ...
一.簡介 接著幾個月之前的(數據科學學習手札31)基於Python的網絡數據采集(初級篇),在那篇文章中,我們介紹了關於網絡爬蟲的基礎知識(基本的請求庫,基本的解析庫,CSS,正則表達式等),在那篇文 ...
一.簡介 Scala中的模式匹配類似Java中的switch語句,且更加穩健,本文就將針對Scala中模式匹配的一些基本實例進行介紹: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...
一.簡介 馬上大四了,最近在暑期實習,在數據挖掘的主業之外,也幫助同事做了很多網絡數據采集的內容,接下來的數篇文章就將一一羅列出來,來續寫幾個月前開的這個網絡數據采集實戰的坑. 二.馬蜂窩評論數據采集 ...
一.簡介 Keras是有著自主的一套前端控制語法,後端基於tensorflow和theano的深度學習框架,因為其搭建神經網絡簡單快捷明了的語法風格,可以幫助使用者更快捷的搭建自己的神經網絡,堪稱深度 ...
官網對vue.js的介紹是這樣的: 一套構建用戶界面的 漸進式框架.與其他重量級框架不同的是,Vue 采用自底向上增量開發的設計. 那麼到底什麼是漸進式框架.自底向上增量開發又是什麼呢? 其實我覺得這 ...
1.下載 wget http://download.redis.io/releases/redis-2.8.13.tar.gz 2.解壓 tar zxvf redis-2.8.13.tar.gz 3. ...
1.定義正則表達式: a.普通方式:var reg=/表達式/附加參數 附件參數: g:代表可以進行全局匹配.i:代表不區分大小寫匹配.m:代表可以進行多行匹配. 上面三個參數,可以任意組合,代表復合 ...
在桌面或者其它地方建立mongodb.bat 批處理文件 在裡面寫入如下內容 mongod --dbpath D:\java_tools\MongoDB\MongoDBDATA 保存-然後打開該文件 ...
描述 Description applepi被囚禁的地點只有一扇門,當地 人稱它為“黑魔法師之門”.這扇門上畫著一張無向無權圖,而打開這扇門的密碼就是圖中[每個點的度數大於零且都是偶數]的子圖的個數對 ...
一.RabbitMQ python的Queue與RabbitMQ之間的理解: python的進程或線程Queue只能python自己用.RabbitMQ隊列多個應用之間共享隊列,互相通信. 1.簡單的 ...
內核啟動並初始化後,最終目的是像Windows一樣能啟動應用程序,在windows中每個應用程序都存在C盤.D盤等,而linux中每個應用程序是存放在根文件系統裡面,那麼掛載根文件系統在哪裡,怎麼實現 ...
Docker 讓每個人都能夠從 Docker Registry 啟動一個打包好的 Docker 應用.Docker-Compose在Docker基礎上解決了多容器應用之間的依賴啟動問題. Docker ...
在測試過程中,有時候會需要刪除一些文件,例如日志文件過大等,這裡匯總一些刪除文件常用的命 已這個系統內的文件為例 刪除文件(即這個文件被刪除) 單個刪除:rm -f + 文件名 eg:rm -f 2 ...
本文將從Redis的基本特性入手,通過講述Redis的數據結構和主要命令對Redis的基本能力進行直觀介紹.之後概覽Redis提供的高級能力,並在部署.維護.性能調優等多個方面進行更深入的介紹和指導. ...