公告版位
我是公告

目前分類:open data (3)

瀏覽方式: 標題列表 簡短摘要
上次 g0v 黑客松,有 NGO 帶著去監察院申請出來的幾名政治人物的政治獻金的掃描檔,想問問看 g0v 能怎麼做
一共有 94 個檔案,將近 2800 頁,包含馬英九、顏清標、吳育昇、丁守中等人的政治獻金的各種收入、支出登記資料

拿到的第一件事,當然是先把 PDF 轉成圖檔傳到雲端啦~ 於是我寫了一隻程式去把 94 個 PDF 檔一頁一頁換成圖片上傳到相簿中,並且產生一個 list.csv 來記錄每個檔案的位置

完成了第一步之後,再來就是要做影像分析了,因為我要找的是表格中的框線,這時可以用到的是 Hough Transform (霍夫轉換),這是霍夫在 1967 年提出,用來做直線檢測的技術,而 opencv 則有提供現成的 HoughLinesP function 可以抓出一張圖片內所有線段
於是我用 C 寫了一個程式,給他一張圖片位置,他會給我這張圖片內所有線段位置的資訊的 json
於是透過 opencv 處理後,原先的圖如下:
政治獻金原圖

opencv 抓出來的線段位置
opencv 抓出的線段位置

其實已經可以看出 opencv 抓的很準了
不過opencv 抓到的一條框線中其實可能是數十條小線段聚在一起,所以我必需要把這些線段 group 在一起
於是接下來我用 PHP 寫了一個程式,其中的 addLine method 在做的事就是把輸入的線段 (x1, y1) - (x2, y2) ,透過公式 r = x * cos θ + y * sin θ 算出他的 θ 和 r ,然後把 θ 和 r 接近的 group 在一起,這樣子就可以抓出正確的框線了 (小時候學的三角函數在這時候竟然變得很重要 XD),得到了各線段之後,再用 getCrossPoints method 取得各垂直和水平線段之間的交點,這些交點資訊就是每一個欄位的四個座標點了,於是我再把這些資訊匯出到一個 output.csv 檔案(還在持續更新中..目前正用 Amazon t1.micro 機器慢慢處理中),大家就可以拿這個檔案來利用了

我也拿了這個結果做了一個陽春的 demo ,可以點進去看每一份文件的表格欄位切的如何,畫面如下:

demo

也歡迎有人接力把這個處理好的資料做成 captcha 之類的服務,讓群眾可以幫忙來把這份監察院不願意數位化開放的檔案來民間數位化吧!

榮尼王 發表在 痞客邦 留言(41) 人氣()

如果有一個台灣各鄉鎮平均家戶用電的數據,你覺得這數據會看到什麼特別的地方呢?
都會區的平均用電比較高,鄉鎮的用電比較低?
蘭嶼因為電免錢,用電量遠高於平均?

環保署幾年前推出了一個網站 「環保署綠色生活網」,主要目的是為了推廣節能減碳,因此由台電提供縣市、鄉鎮甚至到村里等級的每個月的非營業家戶用電量
(縣市和鄉鎮資料是來自帳單的郵遞區號,因此資料是相當準確的,但是村里是來自戶政司的地址轉換成村里的服務,這個就不太準確了,會有很多對應不到的)

這個網站的成立目的是為了推動各縣市的節能運動,因此也有一個各縣市的省電比賽,不過 2010 ~ 2011 年出來的省電比賽很有趣 XD
http://ecolife.epa.gov.tw/Cooler/statistics/map_Electricity.aspx

top5
第一名「連江縣」,第二名「從缺」 XD
根本沒有省到任何電嘛

不過他沒有顯示 2011 ~ 2012 的比賽,到 2012 年又正好相反了,除了連江縣和金門縣電力成長以外,其他縣市都減少了 XD ,主因應該是 2012/5 第一次油電雙漲造成的吧,所以調漲電價的確是省電最大的誘因。

我把村里鄉鎮的電力資料全部挖出來放到 Github,歡迎大家可以抓下來做些分析,我原先也有把 2013/3 的資料,配合主計處那邊的村里家戶數資料,算出家戶平均用電量,放在 avg.201303.csv ,不過很奇怪的是很多鄉鎮的資料很怪,像是石碇石門一戶只有平均2度電,這也太低了吧? 昨天 @MuYueh 找到原因了,因為台灣電費是兩個月收一次,所以才會很多鄉鎮每隔一個月電量就會超低,所以如果要顯示正常的數字的話,應該要以兩個月為單位,於是我生出了一個 2013/6-7 的資料 ,總算是看起來比較合理了。

我也把這個資料做成地圖化

map
線上看

有興趣可以拉近看看各鄉鎮的顏色喔。

比較之後發現的確蘭嶼的家戶用電量是台東縣最高的,但是跟其他縣市比起來,蘭嶼用電量並沒有特別高,所以請不要再用蘭嶼人整天開冷氣不關來批評蘭嶼人反對低階核廢料放置在蘭嶼了,他們並沒有比其他縣市的鄉鎮用更多電。

大家也可以來看看能從這些數據中觀察到什麼現象吧,看看你在你家的鄉鎮中用電是在平均之上還是平均之下吧!
文章標籤

榮尼王 發表在 痞客邦 留言(0) 人氣()


台北建築年齡截圖
 
感謝 Lookinfo 看資訊幫忙截圖 XD

昨天我用之前的資料做了一張 Taipei, Taiwan: The age of the City 的地圖,下面來分享一下製作的過程




晚上正準備看完 Twitter 再關燈睡覺時,突然看到跟我有關的關鍵字



因為我在今年有爬出台北市建築使用執照的資料放在 http://tpebuilding.g0v.ronny.tw/
不過因為建管處放出來的都是使用執照的掃描圖檔,要用 OCR 掃出裡面完整資訊難度真的很高,因此我爬完後就有點不知道該怎麼處理了,雖然說當初爬的目的是想做台灣豪宅通App XD
就變成我只有 「地址」、「使用執照編號」、「圖片檔」資訊,其實也想不到只有這三個資訊能做什麼應用

後來我還有去爬台北市門牌資料爬出的資料)把跟使用執照的地址資訊結合起來,放到 Fusion Table
,所以可以在 Fusion Table 上面從地圖上找這個點的建築執照是哪一張。
gugod 提到建築年份地圖,我就想到這份資料可以用在這裡了,正好使用執照編號的前幾碼就是年份。



我先用 Fusion Table 的可以改變標示點顏色的功能,想說能不能解決,所以就生了一張年份地圖

但是 Fusion Table 的 marker 顏色無法很彈性自訂,所以就變成雖然依照年份有不同顏色了,但是顏色無法一眼看出新舊關係,於是我就把腦袋動到 CartoDB 上了

我先把 Fusion Table 的 csv 下載下來,再 import 進 cartodb ,不過 cartodb 免費帳號有 5MB 的限制,而下載下來的檔案就 11MB 了,所以我再稍微處理了一下,把沒有座標的點去掉,地址欄位拿掉,使用執照編號直接改成年份,總算把檔案壓到 5MB 以下了,再匯入進 cartodb 就可以看到所有點了。(配上 CartoDB 的 geo reference 功能之後,整個 table 大小就增加到 11MB 了,所以一個免費 account 就被鎖死不能再上傳新資料了 XD)

然後昨晚 clkao 給了一個 Colorbrewer: Color Advice for Maps 有一些顏色可以參考在地圖上顯示資訊,然後我拿了其中一組,於是用 CartoDB 的 CartoCSS 功能,產生了這組 CSS

於是一切就完工了!




也歡迎大家可以把這些資料拿去試試看套用其他顏色,看看能不能讓他更容易被看,另外其實各縣市都有提供「使用執照」和「門牌資訊」,只是每一個縣市的網站都是給不同的包商做的,所以每個都要重新爬一次,如果要做其他縣市的地圖的話,可能就要整個重新爬一次。

而且台北市提供的門牌資訊只有門牌所在的座標點,無法得到建築物輪廓資訊,因此我做的城市建築年齡地圖就只能用點來表示了

像中正廟因為 97 年時曾經增建過有發新的使用執照,因此在地圖上顯示的時間是 97 年,這個就比較可惜了(中正廟相關使用執照:690733 690734 731346 760724 760760 970187)
另外大直一帶都沒有點好像是因為我爬台北市門牌資料沒有爬完整造成的,這個我就不太確定了。




來讓大家看看世界各城市的範例吧:
Portland, Oregon: The age of a City

Buildings in the Netherlands by year of construction

Block by Block, Brooklyn’s Past and Present

文章標籤

榮尼王 發表在 痞客邦 留言(4) 人氣()