JSON格式資料運用(OSEP scratch)

開放資料 (英語:Open data) 指的是一種經過挑選與許可的資料,這些資料不受著作權專利權,以及其他管理機制所限制,可以開放給社會公眾,任何人都可以自由出版使用,不論是要拿來出版或是做其他的運用都不加以限制。(註1)

政府資訊公開法(註2)有政府資訊公開的相關規定,行政院及各縣市政府也都有相關資料公開網站。(註3)

這些開放的資料很多都是使用JSON格式(註4),因此使用時需要一點點技巧。

OSEP scratch 使用了幾個積木,幫助學生可以簡單的解讀這些資料。

——————————–

積木說明


填上將要讀取資料的來源網站網址(一般網址最後會有.json)

選擇要讀取第幾筆資料

選擇資料欄位

 

 

 

顯示該筆資料內容,框框打勾可以在螢幕顯示

JSON資料檔一般都有很多筆資料,每一筆資料裡面有很多不同的欄位存放不同的資料。

填入要讀取第幾筆資料,和要讀取的欄位名稱,執行時就會去找到該筆資料。

注意:

因為網路讀取資料,會因網路品質影響讀取速度,請加[等待…秒],讓資料能順利讀取。

—————————————

讀取LASS資料


1.LASS開放資料下載,請點選[https://pm25.lass-net.org/],下方找到[單一感測器的最近一筆資料],填上測站感測器編號[註5],按[送出]

2.出現測站的PM2.5資料,就是JSON格式

程式設計:

1.直接點OSEP網址:

https://ys-fang.github.io/OSEP/app/

開啟OSEP線上(網頁)版(請使用chrome瀏覽器)。

在網頁左下角點[添加擴展]

2添加[JSON],這個擴展功能積木。

3.程式說明

1.設定[DATA]、[feeds]、[AirBox]3個變數

2.從LASS網站讀取JSON資料

3.重複讀取、說出資料。

4.設定[DATA]變數是原始JSON全部的資料

5.設定[feeds]變數是原始JSON裡面 feeds 欄位的資料

6.設定[AirBox]變數是 feeds 欄位裡面的 [AirBox] 欄位的第一筆資料

7.說出[AirBox]變數(第一筆資料)裡面,欄位名稱為SiteName的資料

8.等待2秒

9.說出[AirBox]變數(第一筆資料)裡面,欄位名稱為s_d0的資料(PM2.5值)

程式下載:PM2.5(json) .sb3

———————————————

空氣品質指標(AQI)自動警報系統

———————————————

1.直接點OSEP網址:

https://ys-fang.github.io/OSEP/app/

開啟OSEP線上(網頁)版(請使用chrome瀏覽器)。

在網頁左下角點[添加擴展]

2添加[JSON],這個擴展功能積木。

3.到 (行政院環境保護署-空氣品質監測網) 點連結 https://airtw.epa.gov.tw/CHT/EnvMonitoring/Central/CentralMonitoring.aspx ,查離學校最近的測站名稱,記下來。

4.點右上角[綠旗],輸入[測站名稱],按[Enter]

5.自動顯示現在的AQI值及警示畫面。

程式說明:

A、舞台:

用不同顏色來表示空氣品質

B、主程式:

1.先提問[測站名稱],將答案(測站名稱)存入變數備用。

2.到環保署公開資料庫(註6),讀取json資料。

3.先計算要讀的測站是第幾筆資料。

4.讀取測站的AQI值,依據AQI值,判斷要顯示(說)哪一種警告畫面及背景。(註7)
    請自行發揮創意設計。

6.修改程式的等待時間可以改變讀取更新的時間。

程式下載:AQI空氣品質看板.sb3

延伸:

1.當空氣品質AQU不好超標時,自動在line群組發出警示訊息,通知全校(群組)老師。

2.顯示所有空氣品質監測資料:細懸浮微粒( PM2.5 )、懸浮微粒( PM10 )、二氧化硫( SO2 )、氮氧化物( NOx )、一氧化碳( CO )、臭氧( O3 )

——————————–

補充資料:

1.中研院PM2.5 開放資料入口網站

https://pm25.lass-net.org/zh_tw/

JSON 格式 API(更新頻率:每 5 分鐘)

2.南投地區PM2.5開放資料網址如下:

http://www.airq.org.tw/Home/AboutData_ZH

JSON 格式 API(更新頻率:每 10分鐘)

http://www.airq.org.tw/Home/realtime10m

請寫程式將您家附近測站的PM2.5資料抓下使用。

——————–

註1:開放資料
https://zh.wikipedia.org/wiki/%E9%96%8B%E6%94%BE%E8%B3%87%E6%96%99

註2:政府資訊公開法
http://law.moj.gov.tw/LawClass/LawAll.aspx?PCode=I0020026

註3:政府資料開放平臺 http://data.gov.tw/

政府資料開放平臺,是中華民國政府根據《政府資訊公開法》規定,採開放資料的精神,所建立的一個跨部門計畫。

該計畫目前採取了CSV、XML、JSON、OLAP、TXT等格式提供資料集,任何人(包括企業)在其使用規範內,可以利用該平臺所提供的開放資料自由運用(包括重製、改作、公開傳輸、產生衍生物等)。 

政府資料標準平臺 API服務

https://schema.gov.tw/apiservice/?fbclid=IwAR2nNf2YamJ2vV_1D1onZEoI2kgkZZQJ6vaZl_8n9IXq50cG6DkLPAw8oro#/%E6%94%BF%E5%BA%9C%E4%B8%BB%E8%A8%88/get_v1_data_BudgetAccountingandStatistics_BudgetandAccounting_SpecialFundBudgetandAccounting_EnterpriseDivisionIncomeStatementAccountName

註4:
https://zh.wikipedia.org/wiki/JSON#WEB.E5.BC.80.E5.8F.91
JSON(JavaScript Object Notation)是一種由道格拉斯·克羅克福特構想設計、輕量級的資料交換語言,以文字為基礎,且易於讓人閱讀。儘管JSON是Javascript的一個子集,但JSON是獨立於語言的文字格式,並且採用了類似於C語言家族的一些習慣。

JSON原始檔格式不容易判讀,可以利用線上編輯器整理,讓資料更容易觀看。

點 http://json2table.com/ 開啟轉換網頁

將原來的JSON網頁內容,全選複製後貼上這個網頁的最左邊那一欄。

然後點上面的 [ > ] 

再點上面的 [ Table ]或 [Tree],就可以看到比較整齊的列表。

註5:

搜尋測站編號請參考:

https://2blog.ilc.edu.tw/868/44807/

註6:

OpenData.epa 行政院環境保護署 環境資源資料開放平台

空氣品質指標(AQI)(每小時)

https://opendata.epa.gov.tw/Data/Contents/AQI/

選[OPEN API]

https://opendata.epa.gov.tw/api/v1/AQI?%24skip=0&%24top=1000&%24format=json (新版)

http://opendata2.epa.gov.tw/AQI.json (舊版)

空氣品質指標(AQI)資料說明

https://opendata.epa.gov.tw/Data/Details/AQI/?show=all

主要欄位說明SiteName(測站名稱)、County(縣市)、AQI(空氣品質指標)、Pollutant(空氣污染指標物)、Status(狀態)、SO2(二氧化硫ppb)、CO(一氧化碳ppm)、CO_8hr(一氧化碳8小時移動平均ppm)、O3(臭氧ppb)、O3_8hr(臭氧8小時移動平均ppb)、PM10(懸浮微粒μg/m3)、PM2.5(細懸浮微粒μg/m3)、NO2(二氧化氮ppb)、NOx(氮氧化物ppb)、NO(一氧化氮ppb)、WindSpeed(風m/sec)、WindDirec(風向degrees)、PublishTime(資料發布時間)、PM2.5_AVG(細懸浮微粒移動平均值μg/m3)、PM10_AVG(懸浮微粒移動平均值μg/m3)、SO2_AVG(二氧化硫移動平均值ppb)、Longitude(經度)、Latitude(緯度)、SiteId(測站編號)。

註7:
http://taqm.epa.gov.tw/taqm/tw/b0201.html
空氣品質指標(AQI)與健康影響,空氣品質指標(AQI)與活動建議

註8:

http://taqm.epa.gov.tw/taqm/tw/b0201.aspx
空氣品質指標為依據監測資料將當日空氣中臭氧(O3)、細懸浮微粒(PM2.5)、懸浮微粒(PM10)、一氧化碳(CO)、二氧化硫(SO2)及二氧化氮(NO2)濃度等數值,以其對人體健康的影響程度,分別換算出不同污染物之副指標值,再以當日各副指標之最大值為該測站當日之空氣品質指標值(AQI)。

http://taqm.epa.gov.tw/taqm/tw/b0202.aspx
細懸浮微粒( PM2.5 )

PM2.5係指微粒氣動粒徑小於2.5微米,單位以微克/立方公尺表示之,由於PM2.5較PM10更容易深入人體肺部,對健康影響更大,若細微粒又附著其他污染物,將更加深呼吸系統之危害。
懸浮微粒( PM10 )
係指粒徑在10微米以下之粒子,又稱浮游塵。主要來源包括道路揚塵、車輛排放廢氣、露天燃燒、營建施工及農地耕作等,或由原生性空氣污染物轉化成之二次污染物,由於粒徑小於10微米以下,能深入人體肺部深處,如該粒子附著其他污染物,則將加深對呼吸系統之危害。
二氧化硫( SO2 )
除自然界產生外,一般為燃料中硫份燃燒與空氣中之氧結合者,為一具刺激臭味之無色氣體,易溶於水,與水反應為亞硫酸;於空氣中可氧化成亞硫酸,為引起酸雨的主要物質之一。
氮氧化物( NOx )
氮氧化物主要包括一氧化氮(NO)及二氧化氮(NO2),其生成原因係來自燃燒過程中,空氣中氮或燃料中氮化物氧化而成,一氧化氮為無色無味氣體,稍溶於水,燃燒過程生成之氮氧化物以一氧化氮為主要成份,光化學反應中可反應成二氧化氮。
二氧化氮為具刺激味道之赤褐色氣體,易溶於水,與水反應為亞硝酸及硝酸;參與光化學反應,吸收陽光後分解成一氧化氮及氧,在空氣中可氧化成硝酸鹽,亦是造成雨水酸化原因之一。
一氧化碳( CO )
除森林火災、甲烷氧化及生物活動等自然現象產生外,主要來自石化等燃料之不完全燃燒產生,無色無味,比空氣輕,由於一氧化碳對血紅素的親和力比氧氣大得多,因此,可能造成人體及動物血液和組織中氧氣過低,而產生中毒現象。
臭氧( O3 )
係一種由氮氧化物、反應性碳氫化合物及日光照射後產生之二次汙染物。具強氧化力,對呼吸系統具刺激性,能引起咳嗽、氣喘、頭痛、疲倦及肺部之傷害,特別是對小孩、老人、病人或戶外運動者有較大影響,同時對於植物,包括農作物有不良影響,對於人造材料,諸如橡膠(輪胎等)及油漆等,均能造成危害。

http://taqm.epa.gov.tw/taqm/tw/b0203.aspx
即時空氣品質指標(AQI)計算方式如下:

各測項即時濃度依下列公式計算後,再對應下表得出O3、PM2.5、PM10、CO、SO2、 NO2等6個測項之即時副指標值,再取出其中最大值為即時空氣品質指標,該最大值測項即為指標污染物:

O3,8hr取最近連續8小時移動平均值 (例如今日上午10點發布的O3的8小時濃度平均值,是取今日上午2點至上午9點監測數據的平均值。)
O3取即時濃度值
PM2.50.5 × 前12小時平均 + 0.5 × 前4小時平均 (前4小時2筆有效,前12小時6筆有效)
PM100.5 × 前12小時平均 + 0.5 × 前4小時平均 (前4小時2筆有效,前12小時6筆有效)
CO取最近連續8小時移動平均值 (例如今日上午10點發布的CO的8小時濃度平均值,是取今日上午2點至上午9點監測數據的平均值。)
SO2取即時濃度值
SO2,24hr取最近連續24小時濃度平均值 (例如今日上午10點發布的SO2的24小時濃度平均值,是取前1天上午10點至今日上午9點監測數據的平均值。)
NO2取即時濃度值

污染物濃度與即時副指標值對照表

  1. 一般以臭氧(O3)8小時值計算各地區之空氣品質指標(AQI)。但部分地區以臭氧(O3)小時值計算空氣品質指標(AQI)是更具有預警性,在此情況下,臭氧(O3)8小時與臭氧(O3)1小時之空氣品質指標(AQI)則皆計算之,取兩者之最大值作為空氣品質指標(AQI)。
  2. 空氣品質指標(AQI)301以上之指標值,是以臭氧(O3)小時值計算之,不以臭氧(O3)8小時值計算之。
  3. 空氣品質指標(AQI)200以上之指標值,是以二氧化硫(SO2)24小時值計算之,不以二氧化硫(SO2)小時值計算之。

 


 

瞭解JSON格式

https://j796160836.pixnet.net/blog/post/30530326?fbclid=IwAR2RQWBZQOfwdpgvA8AD76VTLyyoDk7h6saX9g0IQahluuZejpXoUVRyH6A

相關連結:

PM2.5環境監測超簡單(第二十四課) 
http://blog.ilc.edu.tw/blog/blog/868/post/97509/652136

相關連結:

OSEP scratch3課程目錄
https://2blog.ilc.edu.tw/868/44668/

OSEP第0課 概論(課前準備)程式安裝
https://2blog.ilc.edu.tw/868/44734/

用scratch學物聯網(IOT)

語音控制超簡單(OSEP scratch)

https://2blog.ilc.edu.tw/868/44875/

即時空氣品質監測看板(OSEP scratch3)(LASS資料庫應用)

https://2blog.ilc.edu.tw/868/44690/

即時空氣品質監測看板(OSEP 實用版)

https://2blog.ilc.edu.tw/868/44807/

IFTTT物聯網的運用(OSEP scratch3)

https://2blog.ilc.edu.tw/868/44812/

大數據之雲端資料儲存
ThingSpeak雲端資料庫應用(OSEP scratch3)

https://2blog.ilc.edu.tw/868/44928/

大數據之網路資料運用
JSON格式資料運用(OSEP scratch)

https://2blog.ilc.edu.tw/868/44903/

 

roc

宜蘭縣國小資訊小站

您可能也會喜歡…