python庫geopandas讀取寫入空間數(shù)據(jù)及繪圖實例探索
python geopandas庫
今天給大家分享一個超強的 python 庫,geopandas
https://github.com/geopandas/geopandas
geopandas 是一個用于地理數(shù)據(jù)的 python 庫, 它基于 pandas 和 matplotlib 等其他流行的 Python 數(shù)據(jù)科學(xué)工具構(gòu)建,擴展了數(shù)據(jù)操作功能。
這種無縫集成使精通 Python 的數(shù)據(jù)專業(yè)人員能夠輕松地深入研究 GeoPandas 語法以進行空間數(shù)據(jù)探索和分析。
庫的安裝
我們可以直接使用 pip 來進行安裝。
pip install geopandas
讀取和寫入空間數(shù)據(jù)
為了讀取空間數(shù)據(jù),GeoPandas 提供了強大的 “read_file()” 函數(shù)。
該函數(shù)自動處理各種基于矢量的空間數(shù)據(jù)格式。常見格式包括 Shapefiles 和 GeoJSON。
下面是使用 GeoPandas 讀取包含巴塞羅那各區(qū)地理空間數(shù)據(jù)的 GeoJSON 文件的示例。
import geopandas as gpd url = 'https://raw.githubusercontent.com/jcanalesluna/bcn-geodata/master/districtes/districtes.geojson' districts = gpd.read_file(url) districts
空間數(shù)據(jù)探索
GeoDataFrames 類似于傳統(tǒng)的 pandas 中的 DataFrame,提供了熟悉的結(jié)構(gòu),因為 GeoDataFrame 是 pandas.DataFrame 的子類,繼承了方法和屬性。
一個顯著特征是能夠存儲用于空間操作的幾何列 (GeoSeries)。
雖然一個 GeoDataFrame 可以有多個 GeoSeries,但其中一列充當(dāng)活動幾何圖形,即空間操作的基礎(chǔ)。
GeoDataFrame 中的每個 GeoSeries 都攜帶重要的坐標(biāo)參考系統(tǒng) (CRS) 信息。CRS 向 GeoPandas 通報地球上的坐標(biāo)位置,這對于準確的空間分析至關(guān)重要。
有兩個主要的 CRS 類別:以度為單位的地理坐標(biāo),廣泛用于 GPS,以及二維地圖的投影坐標(biāo),允許方便的單位表示。
在 GeoPandas 中,CRS 信息是通過 “crs” 屬性訪問的。
districts.crs
空間數(shù)據(jù)屬性
GeoPandas 從 shapely 包中繼承了幾個有價值的方法和屬性。在這里,我們將探討四個關(guān)鍵屬性:
Area
“area” 屬性計算幾何圖形的面積。為了將此面積(轉(zhuǎn)換為 km²)添加到我們的數(shù)據(jù)集中,我們創(chuàng)建一個新列。
districts['area'] = districts.area / 1000000
Boundary
“boundary” 屬性捕獲多邊形的邊界。我們將此信息合并到我們的數(shù)據(jù)集中。
districts['boundary'] = districts.boundary
Distance
利用 “distance” 方法,我們計算了從著名的圣家族教堂到巴塞羅那每個區(qū)的質(zhì)心的最小距離。
然后,距離(以公里為單位)存儲在新列中。
from shapely.geometry import Point sagrada_fam = Point(2.1743680500855005, 41.403656946781304) sagrada_fam = gpd.GeoSeries(sagrada_fam, crs=4326).to_crs(epsg=2062) districts['sagrada_fam_dist'] = [float(sagrada_fam.distance(centroid)) / 1000 for centroid in districts.centroid] districts[['area', 'boundary', 'sagrada_fam_dist']]
使用 GeoPandas 繪圖
使用 GeoPandas 可視化空間數(shù)據(jù)可以增強從空間操作中獲得的見解。
通過調(diào)用基于 matplotlib 包構(gòu)建的 GeoDataFrame.plot() 函數(shù),可以輕松創(chuàng)建 GeoPandas 繪圖。
巴塞羅那地區(qū)的基本可視化。
ax= districts.plot(figsize=(10,6))
要添加更多信息,請為每個區(qū)域著色并添加圖例。
ax= districts.plot(column='DISTRICTE', figsize=(10,6), edgecolor='black', legend=True)
最后,我們可以將各區(qū)和圣家族教堂的質(zhì)心以及標(biāo)題添加到我們的地圖中。
同樣,為了使生成的圖像更加引人注目,我們可以使用 Nice contextily 包添加巴塞羅那實際城市的平鋪地圖。
ax= districts.plot(column='DISTRICTE', figsize=(10,6), alpha=0.5, edgecolor='black', legend=False) contextily.add_basemap(ax, crs=districts.crs.to_string())
以上就是python庫geopandas讀取寫入空間數(shù)據(jù)及繪圖實例探索的詳細內(nèi)容,更多關(guān)于python geopandas庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?ORM數(shù)據(jù)庫框架Sqlalchemy的使用教程詳解
對象關(guān)系映射(Object?Relational?Mapping,簡稱ORM)模式是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。本文主要介紹了其使用的相關(guān)資料,感興趣的小伙伴可以學(xué)習(xí)一下2022-10-10Python調(diào)用GPT3.5接口的最新方法實例詳解
這篇文章主要介紹了Python調(diào)用GPT3.5接口的最新方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03python+html實現(xiàn)免費在線行為驗證保護賬號安全
這篇文章主要為大家介紹了python+html免費在線行為驗證保護賬號安全實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09pycharm無法安裝第三方庫的問題及解決方法以scrapy為例(圖解)
這篇文章主要介紹了pycharm無法安裝第三方庫的解決辦法以scrapy為例,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05