[GIS] 開放的圖資整理

如果你的研究或是工作上需要一些地理資訊系統的圖資,這裡整理了一些開放自由取得的網址可參考:

I. 全球/國家尺度:

  1. GADM (Global administrative areas),包含 ESRI shapefile, ESRI geodatabase, R (SpatialPolygonsDataframe,請參考 R spatial projects)等不同的格式,這個在繪製區域性的地圖時要標明國家很好用,GADM 提供的都是向量的資料。
  2. DIVA-GIS gdata (geographical data),包含行政區(administrative area,裡頭也有國界、省界、縣市等)、河流水域(inland water)、道路、鐵路、海拔、土地利用(land cover)、地名索引(gazetteer,包含地名及座標)等, 實際下載了一些臺灣的資料來看,有些還是需要檢查一下,像是鐵路看起來就有點怪。除了海拔、土地利用等是 grid raster 資料外,其餘的都是向量的資料。
  3. Natural Earth Data (NED),這個是北美地圖資訊學會(NACIS, North American Cartographical Information Society)所製作的。包括了自然地形、人文等大比例尺的地圖集(1:50,000,000/1:10,000,000/),如果你需要製作高品質的精美地圖,我會推薦用這裡的圖資,NED 有提供 raster (geotiff)/vector (shapefile) 圖資。另一個好處是 NED 也有 github 專案頁面,可以追蹤他們提供的更新,也可以直接用 git 取出一份到自己的電腦上。

II. 臺灣的圖資

臺灣的圖資主要是國土測繪中心提供(更新:目前國土資訊服務平台試圖整合全臺灣各部會所提供的圖資,可以在 http://tgos.nat.gov.tw/tgos/Web/TGOS_Home.aspx 下載或線上瀏覽,不過不是這麼好操作就是了),目前有開放的 WMS, WMTS 等格式的圖資,可以直接透過 QGIS 或是 ArcGIS 去載入資料,國土測繪中心提供了 1/5,000  地形圖、正射影像圖、段藉圖、村里界等資料。此外中研院也提供了臺灣百年地圖(http://gis.sinica.edu.tw/tileserver/)的 WMTS 圖資服務,包含臺灣堡圖、1/50,000 臺灣地形圖、經建版地形圖等。交通部運輸研究所(http://www.iot.gov.tw/ct.asp?xItem=154948&ctNode=1091)則是提供了縣市、鄉鎮村里界以及河流的 shapefile 及 mif 兩種格式的檔案。

廣告

利用空間資料庫計算多邊形交集以及計算面積

話說「交集」是個常常被掛在嘴邊的語句,像我和一口巾工讀生們往往都沒有交集,他們不了解我的明白,我也不了解他們的明白啊。交集在幾何上可以用下圖來簡單表示,但是在 GIS 計算交集上,除了空間上的交集外,還有的資料表的交集(ex: join),這個我就不多花篇幅談。Image

以下簡單介紹用空間資料庫的概念來實作多邊形的面積以及交集

一、準備材料:

二、步驟

qgis_layout

上圖是八色鳥在的分布範圍(圖層: range_fairy_pitta,橘色虛線淺綠色底的多邊形區域,簡稱 sp),深綠色是世界的陸域地圖(圖層:map_world,資料屬性表中有國家名稱(cntry_name)以及大陸名稱(continent),簡稱 world),淺橘色則是 sp 和 world 交集的區域。當然我知道做這個很簡單,從 ArcMap 中的工具箱選擇交集工具就可以做出來了,或是用 QGIS 的向量外掛(fTools)的 Geoprocessing Tool/Intersect 即可做出來,但是 GUI 用起來就是有不踏實感 XD 所以我們用空間資料庫來實作!

Continue reading “利用空間資料庫計算多邊形交集以及計算面積"

QGIS 更新屬性表以及用簡單的正規表示式(regular expression)來選擇資料之值

Qgis 中更新屬性表,簡單說就是類似像 SQL 語言去更新或計算某些欄位的資料。

先將屬性表開啟,然後開啟編輯模式(toggle edit mode)之後,選欄位計算(field calculator),如下圖

qgis attribute table

接下來就可以進入欄位計算的介面。如果你想計算後的結果建立一個新的欄位,就選擇建立新欄位(create a new field),並設定好該欄位的名稱、類型(例如整數、浮點數等),精確度等,之後就可在運算式(expression)處輸入你想要的值。

 

 

 

Continue reading “QGIS 更新屬性表以及用簡單的正規表示式(regular expression)來選擇資料之值"

[HOWTO] 匯入 ESRI Shapefile 至 PostgreSQL 空間資料庫(postgis)

一、安裝

安裝有好幾種方法,而且都很簡單,如果是 *BSD 平台,就用 ports / pkg_add 之類的套件管理系統,GNU/Linux 例如 Debian ubuntu 就用 aptitude / apt-get 之類的,Mac 就用 Macports 或homebrew。Windows 就去抓 package 自己安裝,例如 http://www.postgresql.org/download/windows/,就…自己看!

要安裝的東西有兩個,第一個是 DBMS,即 PostgreSQL,第二個則是 PostGIS,則是讓 PostgreSQL 具有支援空間資料庫的功能。建議安裝 PostgreSQL > 9.1 版,以及 PostGIS 2.0 以上的版本(因為之後設定比較方便,建議用 2.0 以上版本)。另外如果你是使用 EnterpriseDB 公司所出品的安裝程式,就可以在安裝完 PostgreSQL 後利用 Stack Builder 來選擇延伸模組。

二、設定

先建立一個新的資料庫,可以用 pgAdmin ,或是用 PostgreSQL 的 shell 來建立一個名為 test 的資料庫,然後擁有者是你(選項 -O),並且這個資料庫是 utf8 編碼:

# createdb -E utf8 -l en_US.UTF-8 -O yourusername test

接下來建立 postgis extension,先進入 PostgreSQL shell

# psql -d test

建立 postgis extension

test=# CREATE EXTENSION postgis ;

test=# CREATE EXTENSION postgis_topology;

這樣就讓 PostgreSQL 建立 postgis 支援了!

三、匯入 shape file

這個步驟可以選擇用 QGIS 的 SPIT 延伸套件來匯入,

或是用指令的 shp2pgsql 來匯入:

# shp2pgsql -g geom -W big5 -I -s 3826 -D shpfile > table_name.sql

如果轉換都沒有問題的話,就匯入 psql

# psql -d test -f table_name.sql

之後就可以用 QGIS 連 postgis 資料庫了,如下圖:

Image

另外, postgis 也支援 raster 格式,同樣可以用 raster2pgsql 來匯入

raster2pgsql -s 3826 -t 100×100 -I -C -M raster.tif  | psql -d test

[HOWTO] Aitoff 投影法繪製上次最大冰河期及現今陸域

因為對面的鍾叔叔想發一篇山薰香(Oreomyrrhis sp.)生物地理分布的文章,問我能不能繪製現在陸域套疊冰河期地圖,可以明顯呈現新幾內亞和澳洲在冰期是相連結的,所以我就繪出底下這張圖:

因為對面的鍾叔叔想發一篇山薰香(Oreomyrrhis sp.)生物地理分布的文章,問我能不能繪製現在陸域套疊冰河期地圖,可以明顯呈現新幾內亞和澳洲在冰期是相連結的,所以我就繪出底下這張圖:

Continue reading “[HOWTO] Aitoff 投影法繪製上次最大冰河期及現今陸域"