1. 為什麼要把環境資料納入學習研究?
傳統學習分析(Learning Analytics)大多以 LMS 點擊紀錄、作業繳交、測驗成績為主要資料。然而學習從來不是發生在真空中——學生上課時所處的空氣品質、教室溫度、午後雷雨後的相對濕度,都可能默默地影響其專注度與認知負荷。當我們只看 LMS 內的資料,等於只測量學習「結果」,而忽略了學習「情境」。
Educational Omics 六維度框架
Uedu 提出 Educational Omics(教育組學)框架,將學習研究的資料維度擴展為六個彼此互補的「組學」面向。Environomics(環境組學)是其中一維,負責回答「學習者所處的物理環境是什麼樣子」這個問題。
2. 資料規模:我們目前接進來的全貌
Uedu Environomics 整合台灣兩大官方環境資料源——中央氣象署 (CWA) 與環境部 (MoEnv)。下列數字是「能力指標」,不是研究結論,請放心對外引用。
資料源結構
| 來源 | 資料集 | 站數 | 特色 | 更新頻率 |
|---|---|---|---|---|
| CWA | O-A0001-001 |
853 | 自動氣象站:溫度、濕度、降雨、風 | 每小時 |
| CWA | O-A0003-001 |
362 | 局屬站:額外含 UV、日照、能見度 | 每小時 |
| MoEnv | aqx_p_432 |
84 | 即時 AQI、PM2.5、O3 等污染物 | 每小時 |
| MoEnv | aqx_p_15 |
~90 | 5 年歷史 + 碳氫、空品站氣象變數 | 每日清晨補上昨日 |
戶外環境資料的覆蓋密度由 CWA + MoEnv 處理已足夠,再加民間微型感測器仍只是「戶外」的更高密度。下一步的核心挑戰是教室內微環境——學生實際暴露的空氣、光照、CO₂、噪音,與戶外差距可能很大。
Uedu 正自建STDB.org(智慧物件資料管理與分析平台),整合自製 IoT 感測裝置,預計納入教室層級即時資料,做為 Uedu 端到端 Environomics 基礎建設的原創貢獻。
3. 三個關鍵資料工程設計
多源環境資料接進來看似簡單,實際上有三個非平凡的工程問題。下面分享我們的方法,這些是可重複使用的 pattern,希望對其他研究團隊有幫助。
3.1 時間對齊:所有觀測一律存 UTC
CWA 的時間欄位是 ISO 8601 含 +08:00 時區(如 2026-05-15T14:00:00+08:00),MoEnv 則是裸的台灣本地時間字串(如 2026/05/15 14:00:00)。如果直接照寫進 DB,跨來源比對就會錯一小時。
我們的做法: 在 ETL 端統一轉為 UTC naive DATETIME 進庫;前端要顯示給台灣使用者時,再轉回 +08:00。這遵循「DB 統一存 UTC、顯示端做時區轉換」的全平台原則。
parse_cwa_iso_to_utc() / parse_moenv_to_utc()
3.2 空間對齊:學校 → 最近 K 站的 IDW 加權
學校與測站不會剛好同地點。例如中央大學在桃園市中壢區,最近的 MoEnv 站是平鎮 (~2 km) 與中壢 (~3 km)。如果直接取整個桃園市 6 站的平均,反而會被龜山、觀音、大園稀釋。
我們的做法: Haversine 公式計算球面距離 → 取最近 K 站(預設 K=3)→ Inverse Distance Weighting (p=2) 加權。距離越近權重越高,且不會被遠站稀釋。每個資料源(CWA / MoEnv)獨立做,因為兩者測站分布完全不同。
compute_environomics_school_station_map.py
3.3 Partial upsert:realtime 與 backfill 不互相覆蓋
MoEnv 即時資料集 (aqx_p_432) 含 AQI 但不含氣象變數,歷史資料集 (aqx_p_15) 隔日才公布卻含完整氣象與碳氫類。同一個 (站, 時) 的 row 會被兩條管線寫到。傳統 upsert 會用後者整列覆蓋前者,AQI 就被洗掉。
我們的做法: 改寫 upsert 只寫「本次有提供的欄位」,沒提供的欄位保留原值。Realtime 寫 AQI/PM2.5,backfill 寫 temp/RH/碳氫,互不衝突。實測 250 萬列 backfill 後 AQI 欄位仍保留 33 萬列,證明設計可靠。
upsert_air_measurement_partial()
4. 三個入口的能力展示
資料接進來只是起點,真正的價值在於「使用者可以怎麼用」。我們設計了三個入口,分別對應不同的使用情境。當天會現場演示,以下提供連結讓您事前或事後自行探索。
入口 A:環境資料公開展示頁
Leaflet 互動式測站地圖 + 四個 KPI 卡片,呈現時間涵蓋年數、總測站數、變數種類數、最新更新時間。讓訪客一眼看見 Uedu 在 Environomics 維度的資料規模。
開啟 /environment/入口 B:ETL 管理後台
Freshness 色階(綠 / 黃 / 紅)標示最後成功時間、24 小時內失敗次數、各測站健康度。確保資料管線真的在跑,不會在會議當天才發現上週就斷掉了。
當天現場演示,會分享 screenshot入口 C:ClassroomGPT 對話即時呼叫(重點展示)
這是 Uedu 把 Environomics 接進「使用者實際使用情境」的關鍵:學生不需要學會用 dashboard,只要在 AI 助教對話中自然提問,背後會自動呼叫對應的 function tool。三個層級的問題對應三個工具:
get_school_environment — 學校層級
get_county_environment — 縣市層級
get_taiwan_environment_ranking — 全台排行
5. 治理立場:政府開放資料「只用不再公開」
CWA 與 MoEnv 都已將資料對外開放,那 Uedu 為什麼不乾脆建一個鏡像站、做一個更好用的 API?這個選擇是刻意的,背後是研究倫理與責任分工的考量。
我們做的事
- 視覺化展示給人類看(地圖、KPI、透明度說明)
- 資料 server-side render 進 HTML,無 API endpoint
- 引導使用者去原政府網站取原始資料
- 將資料整合進 Uedu 自有研究與教學情境
我們不做的事
- 不提供測站清單/地圖 JSON API
- 不提供原始觀測資料下載
- Uedu Lab 不開放 CWA / MoEnv 原始資料
- 不做 KPI dashboard 對外即時展示具體數值
6. 進行中的研究問題(成果保留,歡迎合作)
我們正在追問的問題(部分)
Q1. 環境變數 × 認知歷程
當 PM2.5 或氣溫處於不利區間時,學生在 AI 助教對話中展現的認知層次(Bloom)是否系統性地不同?這需要 Environomics 與 Cognomics 的時序對齊。
Q2. 環境變數 × 生理指標
在 Uedu Fit / Uedu Brain 收集到的 HRV、睡眠品質,是否與前一日環境暴露(空品、溫差、UV)有關聯?這需要 Environomics × PhysioNeuromics 的個體層級資料融合。
Q3. 跨校環境暴露的不平等
不同地理位置的學校,其學生長期暴露於不同等級的環境變數,是否構成另一種「資源不平等」?這是 Educational Omics × Fairness 的研究方向。
Q4. 教室層級 vs 戶外層級的解析度差
政府測站是「戶外公開資料」,但學生實際上多在教室內。教室與戶外的環境差異有多大?這需要結合 Uedu 自製 IoT 感測裝置(規劃中)做共置量測。
7. 歡迎隨時來信討論
以下三個問題給所有讀者(無論是否參加 5/20 當天的小聚)。如果讀完後您有想法,歡迎透過頁尾任一管道分享或來信。
1. 您所在學校或研究團隊,目前對「學習者所處環境」的資料蒐集有哪些做法或缺口?
(共享現況,找到可互補的基礎建設)
2. 如果您的學科可以接上 Environomics 資料,您最想問的第一個研究問題是什麼?
(從學科專業角度提出 hypothesis)
3. 在政府開放資料的「使用 vs 二次發行」這條線上,您的研究實務經驗中有什麼觀察或顧慮?
(治理與倫理面,研究端的視角)
8. 會後補充(5/20 之後更新)
當天討論的重點摘要、與會者提出的延伸問題、會中提到的補充資源,將於 5/20 之後補回此區塊。歡迎之後再回來看看。
本頁將持續維護為公開閱讀資料。引用本頁可使用:
https://uedu.tw/research/meetup/2026-05-environomics