簡易opendata – PM2.5 查詢

個人很喜歡的範例之一 (其實超多的啊),是使用行政院環保署的空氣品質資料來查詢,之前的範例使用App Inventor查詢,因為每個測站的資料有座標,馬上可以在手機的Google Map 上呈現。對學生來說,使用這個資料來做相關的排序、搜尋也好玩多了,因為資料本身是有意義的。教學者可以帶同學先好好思考資料內容的格式,再試著從資料中找到有趣的資訊。本範例也收錄在 CAVEDU第51本書 [實戰AI資料導向式學習|Raspberry Pi╳深度學習╳視覺辨識] 中。

原始資料來源:http://opendata2.epa.gov.tw/AQI.json

您可使用 http://www.jsoneditoronline.org/ 這樣的網站幫助您更快理解 json 架構, 它會把 raw data 排版完成

今天改用 python 來玩玩看,輸入縣市名稱 (需符合 county 欄位實際內容) 之後會帶出該縣市下的測站數量以及這幾個測站的平均 PM 2.5 值。本網頁一個小時更新一次,試試看畫出指定測站的 AQI 每小時折線圖吧。或者也可以用 Raspberry Pi 去 host 一個 .json 格式的網頁,再讓其它裝置去爬取網頁內容,也是很有趣的應用喔!

執行畫面:

source code:

[pastacode lang=”python” manual=”%23!%2Fusr%2Fbin%2Fenv%20python3%0A%23%20-*-%20coding%3A%20UTF-8%20-*-%0A%0Aimport%20urllib%2C%20json%0Afrom%20urllib%20import%20request%0As%20%3D%200%0Ak%20%3D%200%0Aurl%20%3D%20%22http%3A%2F%2Fopendata2.epa.gov.tw%2FAQI.json%22%0Aresponse%20%3D%20request.urlopen(url)%0Acontent%20%3D%20response.read()%0Acontent%20%3D%20content.decode(‘utf-8’)%0Adata_list%20%3D%20json.loads(content)%0Ac%20%3D%20input(%22%E8%AB%8B%E8%BC%B8%E5%85%A5%E7%B8%A3%E5%B8%82%E5%90%8D%E7%A8%B1%3A%22)%0Afor%20i%20in%20range(0%2C81)%3A%0A%20%20if%20c%20%3D%3D%20data_list%5Bi%5D%5B%22County%22%5D%3A%0A%20%20%20%20s%20%3D%20s%20%2B%20int(data_list%5Bi%5D%5B%22PM2.5%22%5D)%0A%20%20%20%20k%3Dk%2B1%0Aif%20k%20%3D%3D%200%3A%0A%20%20print(%22%E6%9F%A5%E7%84%A1%E8%B3%87%E6%96%99%22)%0Aelse%3A%0A%20%20print%20(c%20%2B%20%22%E5%85%B1%E6%9C%89%22%20%2B%20str(k)%20%2B%20%22%E5%80%8B%E6%B8%AC%E7%AB%99%EF%BC%8C%E5%B9%B3%E5%9D%87%20PM%202.5%20%E6%98%AF%20%22%20%2B%20str(round(s%2Fk)))” message=”easy example of MS Cognitive service – Face API” highlight=”” provider=”manual”/]

本範例感謝 2019 CAVEDU實習生 – Ning Chen 支援

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *