簡易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:

easy example of MS Cognitive service - Face API
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import urllib, json
from urllib import request
s = 0
k = 0
url = "http://opendata2.epa.gov.tw/AQI.json"
response = request.urlopen(url)
content = response.read()
content = content.decode('utf-8')
data_list = json.loads(content)
c = input("請輸入縣市名稱:")
for i in range(0,81):
if c == data_list[i]["County"]:
s = s + int(data_list[i]["PM2.5"])
k=k+1
if k == 0:
print("查無資料")
else:
print (c + "共有" + str(k) + "個測站,平均 PM 2.5 是 " + str(round(s/k)))

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

發佈留言

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