Pandas
是資料分析熱門且好用的工具,相信熟悉資料分析的各路英雄好漢都不陌生
在Python中,與GIS相關的套件滿坑滿谷,我們選定Geopandas
作為資料操作的基礎
它與Pandas有很接近的操作體驗,並且依賴了許多GIS常用的Python套件。
在Python上處理空間資料有許多套件們,這些套件都有不同的使用場景,例如shapely
用在向量資料的處理、fiona
則是幫助使用Python上操作OGR
(支援超多格式的資料轉換),pyproj
做坐標投影的轉換等等。
還好,Geopandas
的出現,讓這些事情變得比較好上手,也讓分析資料時感受很像Pandas,
他主要依賴了以下Python空間資料處理的套件介面:
使用者可以跟Pandas操作DataFrame一般,在Geopandas操作GeoDataFrame,並且擁有許多空間資料處理的功能。
在Python環境中使用GeoPandas,依照官方文件的說明,安裝方法有兩種,第一種是使用Conda(請設定Python3.6環境):
打改終端機,輸入
conda install -c conda-forge geopandas
或是直接透過Geopandas Repo以pip安裝
pip install git+git://github.com/geopandas/geopandas.git
今天所使用的GIS資料是屬於向量
資料
其中shp為空間資料中最為常見的一種向量資料交換格式,
它可以紀錄點、線、面等幾何與屬性
有關向量資料及格式的暸解,可以參考
[Day 6] 常見的GIS資料格式 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
我們可以利用GeoPandas讀取shp資料,以進行我們想要的各種處理或分析,以[臺灣鐵路圖資 | 政府資料開放平臺]這個資料集為例,我們將其下載到本機解壓縮,使用GeoPandas讀取為GeoDataFrame
import geopandas as gpd
gdf_Rail=gpd.read_file('data/Rail/Rail.shp',encoding='utf-8')
gdf_Rail
除了shp外,在實體檔案的部分,Geopandas也支援geojson
GeoDataFrame與DataFrame類似,在[官方文件]中對於DataFrame的基本類型有一些說明。
簡單來說,與dataframe相對,Geopandas多了一個geometry的欄位。
GeoDataFrame的許多基本操作與Pandas的DataFrame很
我們試著做一些Pandas上可以做的事情,
選擇欄位
subset=gdf_Rail['RAILNAME']
subset again
subset=gdf_Rail.iloc[:3]
排序資料
sample=gdf_Rail.sort_values(by='MDATE')
另外,GeoDataFrame對於地理資料有基本的繪圖功能,我們把臺灣鐵路圖資的範例資料展示出來:
sample.plot()
內建一樣是採用matplotlib繪圖引擎,例如可以依照欄位來繪圖(下面案例是以鐵道支線名稱分色)
sample.plot(column='RAILNAME')
GeoDataFrame讓GIS資料處理更方便,他與DataFrame操作體驗接近,今天也初探了一些簡單的功能
對於DataFrame或者GeoDataFrame的操作,可以參考Data wrangling with Pandas的圖表,
對於Pandas的功能有一些快速指南,大部分也都通用於Geopandas。
今天的相關範例可以參考GitHub
您好,我下載geopandas的時候不能安裝,上網查發現是需要分別安裝gdal、fiona等套件,但我在安裝fiona套件的時候卻發生了問題,試好多次都無法解決(出現A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable.),想知道您當初是怎麼下載geopandas的?是否也有遇到相同的問題呢?非常感謝!
現在安裝Geopandas的部分,目前我會建議用Anaconda開虛擬環境,指定conda-forge
這個channel
1.conda create --name myenv python=3.6
2.conda install -c conda-forge geopandas