在 aqicn.org / waqi.info 地圖上發布空氣品質數據
飼料模板

發布世界空氣品質指數項目的數據對每個人都是免費的。但這也很簡單明了:在世界空氣品質指數地圖上添加數據所需的只是提供一個提要 URL,其中包含有關監測站(名稱和位置)、正在測量的污染物以及真實空氣質量的實時信息。 -時間讀數(連同單位,例如毫克或ppb)。


資格標準

請注意,從歷史上看,世界空氣品質指數地圖(aqicn.org 和 waqi.info)上發布的數據只是每個國家各自環境保護局提供的官方數據(請參閱完整的 EPA 清單)。

官方數據是指使用專業的BAM、TEOM和類似的高成本空氣品質監測站監測的數據。這些站的使用並不簡單,並且確實需要 EPA 專業現場工程團隊的持續維護和校準。

然而,如今,更實惠的基於雷射散射的空氣品質監測站被廣泛使用,作為官方空氣品質監測站的配對。那些更實惠的站的成本可以比 BAM 和 TOEM 站低 1000 倍。

為此,我們建議使用半專業的GAIA空氣品質監測站。但我們也接受其他站的數據。然而,此類基於粒子計數器的站需要報告增強的資料饋送以及額外的品質控制(請參閱品質控制部分)。

飼料格式

由於幾乎每個國家都有自己的報告格式,因此世界空氣品質指數項目可以接受任何類型的來源格式:它們可以是 CSV、JSON 或純文字或 HTML 格式。您可以在本頁底部找到 3 個 CSV、HTML 和 JSON 範例。

作為參考,請查看新加坡荷蘭並注意,儘管它們各不相同,但它們可以被我們的系統攝取。

對於即時空氣粒子計數器,您可以透過我們自己的網頁伺服器或透過 thingspeak 報告資料。

資料攝取

世界空氣品質指數系統將定期檢查來源中的數據,每次更新時,都會對其進行處理,轉換為美國 EPA 等級 AQI 值,並在分鐘。

另外,雖然只有 PM2.5、PM10、臭氧、NO2、SO2 和 CO 空氣品質數據發布後,系統確實收集了更多污染物用於預測:苯、甲苯、乙苯、NOx、THC、NMHC、PM1、甲醛、汞、氨、甲烷、硫化氫、亞硝酸、酚、萘、對二甲苯(p-Xylen)、間二甲苯(m-Xylen)等。

還可以發布氣象資料:溫度、大氣壓力、濕度、降水、風速、風向、太陽輻射和紫外線。如果未提供,我們將使用其他相關氣象資訊來源。

Feed 範例(CSV 格式)

 #ID: ID_BEI_DC
#City: Beijing
#Station: Dongcheng
#Name: 东城东四
#Latitude: 39.929
#Longitude: 116.417
#Timezone: +0800
Date,PM10,PM25,CO,Ozone,Sulphur Dioxide,Nitrogen Dioxide,AmbientTemperature,RelativeHumidity,WindDirection,WindSpeed,Pressure,RainGauge
Unit,ug/m3,ug/m3,ppm,µg/m3,µg/m3,µg/m3,°C,%,°,m/s,hPa,mm
10/29/2016 13:00,16,3,,58,10,3,32,66,200,3,1001,0
10/29/2016 14:00,19,8,,57,9,4,32,64,197,2,1001,0
10/29/2016 15:00,15,9,,52,47,17,30,72,190,2,1001,0
10/29/2016 16:00,31,19,,52,34,17,30,75,191,2,1001,0
10/29/2016 17:00,31,17,,49,49,19,29,75,194,1,1002,0
10/29/2016 18:00,37,18,,45,55,25,29,73,183,1,1003,0
10/29/2016 19:00,24,13,,40,21,19,29,80,65,1,1004,0
10/29/2016 20:00,39,22,,44,4,16,28,85,7,1,1005,0
10/29/2016 21:00,24,16,,43,3,7,28,85,10,1,1005,0

提要範例(HTML 格式)

這是一個基於 HTML 格式的範例(直接 ​​url:publishingdata/html/):

Station list:
Station ID City or County Name Station Name Local name (optional) Latitude/Longitude Timezone (optional)
ID_BEI_DC Beijing Dongcheng 东城东四 39.929/116.417 +0800
ID_BEI_WP Beijing West Park 西城官园 39.929/116.339 +0800
ID_BEI_OP Beijing Olympic Park 朝阳奥体中心 39.982/116.397 +0800
... ... ... ... ... ...
  • Station ID 」是每個站的唯一標識符,它可以只是一個數字(例如ID8373),也可以是站城市和站名稱的串聯(例如「北京/東城」)。
  • 預設情況下,可以透過 url /city/ country-name / city-name / station-name存取該電台。
  • Station Name 」必須使用拉丁字符,因此可以提供可選的「 Local Name 」來本地化網頁。

Real-time pollutant list:
Station ID Pollutant Unit Update time Value Averaging
ID_BEI_DC PM10 mg/m3 2025-03-06T03:00:00+09:0027.8 1 hour
ID_BEI_DC PM25 mg/m3 2025-03-06T03:00:00+09:0010.8 1 hour
ID_BEI_DC Ozone mg/m3 2025-03-06T03:00:00+09:0015.2 1 hour
ID_BEI_DC Ozone mg/m3 2025-03-06T03:00:00+09:0018.2 8 hours
ID_BEI_DC Temperature Celcius 2025-03-06T03:00:00+09:0022.3 1 hour
ID_BEI_WP PM10 mg/m3 2025-03-06T03:00:00+09:0027.8 1 hour
ID_BEI_WP PM25 mg/m3 2025-03-06T03:00:00+09:0010.8 1 hour
ID_BEI_WP SO2 ppb 2025-03-06T03:00:00+09:0015.2 1 hour
ID_BEI_WP Humidiy % 2025-03-06T03:00:00+09:0088 1 hour
... ... ... ... ...
  • Averaging ”列用於指定值的持續時間。最常見的平均時間是 1 小時。它也是首選,因為我們的後端系統會自動對臭氧和一氧化碳進行 8 小時平均計算。
  • 如果提供的讀數比每小時更頻繁(例如每 30 分鐘或 10 分鐘),您可以提供給定時間段的原始讀數,也可以僅提供每小時平均值:無論如何,我們的後端系統都會處理數據即使在一個小時之間。

Feed 範例(JSON 格式)

這是一個基於JSON格式的範例(直接url:/publishingdata/json/

[ { id: "BEI001", cityName: "Beijing", stationName: "Dongcheng", localName: "东城东四", latitude: 39.929, longitude: 116.417, pollutants: [ { pol: "PM2.5", unit: "mg/m3", time: "2025-03-06T03:00:00+09:00", value: 18.7, averaging: "1 hour" }, { pol: "Ozone", unit: "ppb", time: "2025-03-06T03:00:00+09:00", value: 12.1, averaging: "1 hour" } ] }, { id: "BEI002", cityName: "Beijing", stationName: "WestPark", localName: "西城官园", latitude: 39.929, longitude: 116.417, pollutants: [ { pol: "PM10", unit: "mg/m3", time: "2025-03-06T03:00:00+09:00", value: 18.7, averaging: "1 hour" }, { pol: "Humidity", unit: "%", time: "2025-03-06T03:00:00+09:00", value: 88.8, averaging: "1 hour" } ] } ]

粒子計數器感測器的品質控制

適用於即時顆粒計數器,例如 Plantower PMSNova SDS,它們提供瞬時(幾秒鐘)顆粒物讀數,通常每分鐘報告一次數據。該數據通常是根據一兩分鐘內的幾個「平均」讀數來計算的。

然而,平均的使用還不夠好,特別是對於發生故障的傳感器(或即將報廢的傳感器)。因此,對於此類感測器,需要提供額外的度量,例如中位數、最小值、最大值和標準差。例如,請參閱以下 JSON 資料來源中的readings物件。

[ { id: "BEI001", cityName: "Beijing", stationName: "Dongcheng", localName: "东城东四", latitude: 39.929, longitude: 116.417, pollutants: [ { pol: "PM2.5", unit: "mg/m3", time: "2025-03-06T02:54:00+09:00", averaging: "1 minute", readings: { median: 18.4, average: 18.8, stddev: 0.3, min: 16.9, max: 19.3, count: 60 } } ] } ]

您可以使用以下 arduino 相容程式碼來收集這些指標:

class Accumulator 
{ 
    #define OUTPUT_BUFFER_SIZE 120 
    char buffer[OUTPUT_BUFFER_SIZE]; 
 
    #define MAXACCVALUES 120 
    int vals[MAXACCVALUES]; 
 
    int count = 0; 
 
public: 
    Accumulator() 
    { 
        reset(); 
    } 
 
    void reset() 
    { 
        count = 0; 
        for (int i=0;i< MAXACCVALUES;i++)  
        { 
            vals[i]=0; 
        } 
    } 
 
    bool hasData()  
    { 
        return count!=0; 
    } 
 
    std::string output()  
    { 
        if (!hasData()) return std::string("{}"); 
 
        sprintf(buffer, OUTPUT_BUFFER_SIZE, "{\"min\":%d,\"max\":%d,\"median\":%d,\"average\":%.1f,\"stddev\":%.1f,\"count\":%d}",  
            vmin(), vmax(), median(), average(), stddev(), count); 
 
        return std::string(buffer); 
 
    } 
 
    void add(int val) 
    { 
        if (count==MAXACCVALUES-1) { 
          for (int i = 0; i < MAXACCVALUES - 1; i++) { 
            vals[i] = vals[i + 1]; 
            } 
            count --; 
        } 
        vals[count++]=val; 
    } 
 
    float stddev()  
    { 
        if (!hasData()) return -1; 
        int u  =avg(); 
        int t = 0; 
        for (int i=0;ivals[j]) { 
                    float t = vals[j]; 
                    vals[j]=vals[i]; 
                    vals[i]=t; 
                } 
  
            } 
        } 
        return vals[count/2]; 
    } 
 
    float avg()  
    { 
        if (!hasData()) return -1; 
        float t = 0; 
        for (int i=0;ivals[i]) { 
                t=vals[i]; 
            } 
        } 
        return t; 
    } 
 
    float vmax()  
    { 
        if (!hasData()) return -1; 
        float t = vals[0]; 
        for (int i=0;it) { 
                t=vals[i]; 
            } 
        } 
        return t; 
    } 
};

您知道您所在地區有空氣品質監測站嗎?
為什麼不使用您自己的空氣品質站參與地圖呢?

我們的 GAIA 空氣品質監測儀設定非常簡單:您只需要一個 WIFI 存取點和一個 USB 相容電源。

連接後,您可以透過地圖和 API 立即獲得即時空氣污染等級。

該站配有 10 公尺長的防水電源線、USB 電源、安裝設備和可選的太陽能電池板。

關於空氣質量與空氣污染指數

本網站採用的污染指數和顏色與EPA是完全相同的。 EPA的指數可以從 AirNow上查到

空气质量指数 空气质量指数级别(状况)及表示颜色 对健康影响情况 建议采取的措施
0 - 50 一级(优) 空气质量令人满意,基本无空气污染 各类人群可正常活动
51 -100 二级(良) 空气质量可接受,但某些污染物可能对极少数异常敏感人群健康有较弱影响 极少数异常敏感人群应减少户外活动
101-150 三级(轻度污染) 易感人群症状有轻度加剧,健康人群出现刺激症状 儿童、老年人及心脏病、呼吸系统疾病患者应减少长时间、高强度的户外锻炼
151-200 四级(中度污染) 进一步加剧易感人群症状,可能对健康人群心脏、呼吸系统有影响 儿童、老年人及心脏病、呼吸系统疾病患者避免长时间、高强度的户外锻炼,一般人群适量减少户外运动
201-300 五级(重度污染) 心脏病和肺病患者症状显著加剧,运动耐受力降低,健康人群普遍出现症状 儿童、老年人及心脏病、肺病患者应停留在室内,停止户外运动,一般人群减少户外运动
300+ 六级(严重污染) 健康人群运动耐受力降低,有明显强烈症状,提前出现某些疾病 儿童、老年人和病人应停留在室内,避免体力消耗,一般人群避免户外活动
(参考详见 http://zh.wikipedia.org/wiki/空气质量指数)

如果你想了解更多有關空氣質量與污染,詳見維基百科或者 AirNow

有關健康建議詳​​見北京的Richard Saint Cyr MD醫生的博客:www.myhealthbeijing.com


注意事項: 所有空氣品質數據在發佈時均未經驗證,且為了確保資料準確性,這些數據可能隨時被修改,恕不另行通知。 世界空氣品質指數專案在編制這些訊息內容時已經謹慎的運用了所有適當的技巧,在任何情況下世界空氣品質指數 在任何情況下,世界空氣品質指數專案團隊或其代理人均不對因提供此數據而直接或間接引起的任何損失、傷害或損害來承擔契約、侵權或其他責任。



設定


選擇語言:


Temperature unit:
Celcius