folium
是基於leaflet.js的python地圖套件,讓使用者可以很快速的使用python產生一些可互動的地圖。
我們可以很方便把加工後的GIS資料丟進去,並完成一個網頁地圖。
leaflet: [Day 13] WebGIS中的向量資料-在Leaflet實作 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
以下我們就快速來試一試
folium
是基於leaflet.js的python地圖套件,讓使用者可以很快速的使用python產生一些可互動的地圖。
我們可以很方便把加工後的GIS資料丟進去,並完成一個網頁地圖。
leaflet: [Day 13] WebGIS中的向量資料-在Leaflet實作 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
以下我們就快速來試一試
另外一個GIS資料畫圖的利器是Geoplot,它擴充了cartopy與matplotlib,讓GIS資料的視覺化更方便,當然,他也設計給Geopandas作為其資料的端口。
有關geoplot的安裝,使用annaconda:
conda install geoplot -c conda-forge
前幾天我們也有利用Geopandas
裡面包的matplotlib
做一些基本的繪圖
GIS資料很常出現在日常生活的資訊視覺化,除了在資料工程上用在Data wrangling
外,資料視覺化扮演著資訊發布的重任,GIS或是地圖的視覺化的學習與資源非常的多,今天我們以matplotlib
,討論一下GIS資料視覺化的一些要素。
今天的主題是延續Day04 幾何資料基本運算,記錄一下在GIS向量資料中,可能會碰到但比較進階的幾何處理,今天的測試主要是圍繞在shapely
的應用,shapely
在Geopandas
也有依賴,因此相關操作可以互相延伸。
前一天的資料聚合,所舉的應用例是行政區村里,實作簡單的點資料與空間單元做結合,然而事實上,聚合的單元不限於行政區村里,以台灣來說,可以使用內政部最小統計區的空間單元來做資料聚合,最小統計區與其發佈區的劃設主要是根據人口
,有關最小統計區請參考最小統計區圖|MOI Open Data。
另外,也有特別針對其他用途的統計區:經濟統計區圖資| 政府資料開放平臺,或是如集水區等都可以採用前一天的方法,與點資料做整合,相關資料請自行參閱。
今天要介紹的也與昨日的資料聚合有一點關係-geohash
在Pandas可以使用groupby
等方法進行資料聚合
例如先前第三天的路燈資料,如果想看一下不同的統計成果,除了空間上的展示外,可以用資料內的行政區欄位(district)做聚合
回顧這份資料,有district欄位表示行政區
1 | light=gpd.read_file('output/light.shp',encoding='utf-8') |
我們可以很簡單的用groupy做資料的的聚合1
light.groupby('district').size()
GeoDataFrame使操作GIS資料分析時更有彈性
我們可以很快對GIS的屬性資料的分析與過濾
當然,也包括一些幾何空間的運算
坐標轉換幾乎是GIS第一門課,可以參考[Day10] 坐標系統及WebGIS常用的坐標轉換有大致的說明。
Geopandas可以讀取各GIS格式進行空間運算,
然而實際上我們可能拿到的資料不見得是GIS的格式
不是GIS格式,但它可能是有坐標資訊的資料
比較常見的會是一個csv,Excel含有經緯度或xy的資料,對於這樣的資料,我們可以把它轉為Geopandas
的GeoDataFrame
。
Pandas
是資料分析熱門且好用的工具,相信熟悉資料分析的各路英雄好漢都不陌生
在Python中,與GIS相關的套件滿坑滿谷,這邊我們選定Geopandas
作為資料操作的基礎
它與Pandas有很接近的操作體驗,並且依賴了許多GIS常用的Python套件。
在Python上處理空間資料有許多套件們,這些套件都有不同的使用場景,例如shapely
用在向量資料的處理、fiona
則是幫助使用Python上操作OGR
(支援超多格式的資料轉換),pyproj
做坐標投影的轉換等等。
地理空間資料或簡稱GIS資料,無論是學術研究、資料科學、商業分析、或是各種資料採集等,或多或少都需要與空間資料相處。
或許各路GIS相關的工作者,常會覺得明明空間資料
與非空間資料
差異只在於有無坐標資料,但實際處理起來卻常常遇到各種坑苦。
有感於此,希望藉由這次鐵人賽
的砥礪,攻略實務上處理GIS資料時更進階
及更自動化
的工具與技巧。
這次30天的任務,主要以
Python
為主軸,配合QGIS
及空間資料庫
,熟悉GIS工作的自動化
流程,解決空間資料分析或是資料工程上的問題。