19
用 Ruby 操作 OSM 資料批次匯入: 以 YouBike 微笑單車開放 資料為例 Huei-Horng Yo (hiroshiyui) <[email protected]>

用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

Embed Size (px)

Citation preview

Page 1: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

用Ruby操作OSM資料批次匯入:

以YouBike微笑單車開放資料為例

Huei-Horng Yo (hiroshiyui) <[email protected]>

Page 2: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

本簡報檔案內容,除引用材料另依其個別授權規定,歡迎諸方大德依CC BY-SA條款自由取用。

Page 3: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

我愛自行車

Page 4: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

我愛 Ruby程式語言

Page 5: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

當然,我愛OpenStreetMap

Page 6: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

我也好愛 YouBike啊啊啊

Page 7: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

開端

Page 8: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

尋覓

● 找到資料所在:臺北市公共自行車租借站及價格資料

● 確定 OSM有公共自行車可用的 tag:Tag:amenity=bicycle_rental - OpenStreetMap Wiki

Page 9: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

驗證

Page 10: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

驗證

● 南港展覽館站有重複的兩筆 YouBike租賃站資料

● 一個應該是自己標定的點位,離實際租賃站有些微偏離(該處事實上應是自行車停車位…)

● 一個是符合我所知的實際租賃站所在,但是與我從北市府拿到的資料,座標的資料精確度卻多了一位數?

Page 11: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

驗證

● 我開始懷疑是我拿到的資料的座標系統大地基準問題 (TWD67? TWD97? WGS84?)

● 打去北市府問是哪種,說要給我回電回覆,結果沒有下文

Page 12: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

驗證

Page 13: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

驗證

● 對照凌雲市場租賃站的位置,發現北市府提供的座標資料比較符合我對此站位置的認知(靠近橋邊)

● 至此可以假設北市府釋出的這份資料有一定的可信度

● But!

Page 14: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

But!人生就是充滿了各種 But!

● 北市府提供的靜態資料– CSV版停在今年五月天– JSON版則停在九月底

● 偏偏之後 YouBike多了好幾站

Page 15: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

But!人生就是充滿了各種 But!

● 寫信去問能不能再匯出一份最新的租賃站靜態資料– 叫我去申請「介接臺北市即時交通資訊」– 申請機關?統一編號?申請單位印信?

● 喂,北市府,我只是要一份當下最正確的租賃站座標資料啊!

Page 16: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

呵呵,沒有人理我

● g0v.tw座右銘:– 不要問為何沒有人做這個,先承認你就是「沒有人」。

– 因為,「沒有人」是萬能的。

Page 17: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

自己動手,豐衣足食

● https://github.com/hiroshiyui/youbike● 用我最熟手的 Ruby去撈 YouBike租賃點資料● 支援三種格式

– .CSV(仿北市府提供欄位)– .JSON(仿北市府提供欄位)– .OSM(可供 JSOM匯入處理的 XML格式)

Page 18: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

Demo

Page 19: 用 Ruby 操作 OSM 資料批次匯入:以 YouBike 微笑單車租借站資料為例

謝謝!