從照片的 GPS 座標反推回 GPS 軌跡

昨天從棉花嶼回來後,不小心 GPS 被小孩摸走,弄一弄竟然把我辛苦收集的軌跡都刪除了,就算用了 testdisk 把整個 GPS 磁區重新搜尋也找不回來了,這可能是因為 Garmin GPS 收集的資料會存成 Current.gpx 檔案,這個檔案被她不知道怎麼按一按就覆寫了(就是沒有救的意思)。因此只能用另外的方法來推估移動的軌跡,例如說從已拍攝照片中的 GPS 座標依照時間連起來回推移動軌跡,本來想自己用 python 刻,但是以前常使用 exiftool 來讀寫相機的 exif (exchangeable image file format),看看有沒有相關的功能好了,找了一下說明竟然有從有座標的照片中反推 GPS 軌跡,雖然套用到單眼的照片中可能解析度沒這麼好,但總比一個一個點要快多了。以下是如何反推軌跡的說明(exifTool 是 command line 的程式,安裝就自行看一下官網說明):

Continue reading “從照片的 GPS 座標反推回 GPS 軌跡"

廣告

[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 兩種格式的檔案。

將 ESRI Shapefile 轉成 postgis 格式匯入 PostgreSQL 資料庫

可以用 QGIS 的 SPIT 外掛,或是 shp2pgsql 指令,使用 SPIT,圖形介面很簡單,就不用多介紹了

Screen Shot 2012-12-25 at 1.05.25 AM

 

 

用 shp2pgsql 最簡單

shp2pgsql -I -D -c -s 3826 filename.shp > filename.sql  (-s 代表座標系統,常用的是 WGS84 (4326) 或 TWD97 TM2 (3826) )

psql -d database -f filename.sql

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

話說「交集」是個常常被掛在嘴邊的語句,像我和一口巾工讀生們往往都沒有交集,他們不了解我的明白,我也不了解他們的明白啊。交集在幾何上可以用下圖來簡單表示,但是在 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)來選擇資料之值"

QGIS 處理 ESRI shape file 編碼問題

起源 GDAL >= 1.9 之後處理編碼上有些問題

$ echo “export SHAPE_ENCODING=UTF-8″ >> ~/.profile   (適用於 Unix 系列)

ogr2ogr 的話,可以加入 -lco ENCODING=UTF-8 參數做轉換,Windows 上面有人提到可以用 codepage,不過太複雜太麻煩了,還是直接設定這個比較快。據說 QGIS 1.9.x 之後會有修正。

Reference:

http://hub.qgis.org/issues/5911
http://hub.qgis.org/issues/5982
http://gis.stackexchange.com/questions/37342/shape-file-encoding-problem-in-qgis-1-9-0-built-with-gdal-1-9-2