空气质量API
学习如何获取特定位置的当前、预报及历史空气质量数据。
该API提供任意特定位置的当前空气污染数据,同时还可获取所选位置的空气质量预测数据以及历史空气污染数据。
注意: 历史空气污染数据自2020年11月27日起可用。
该API提供空气质量指数(AQI)及相关污染物气体的浓度数据,包括:
- 一氧化碳(CO)
- 氨气(NH₃)
- 一氧化氮(NO)
- 二氧化氮(NO₂)
- 臭氧(O₃)
- 粗颗粒物(PM₁₀)
- 细颗粒物(PM₂.₅)
- 二氧化硫(SO₂)
空气质量指数等级说明
| 定性名称 | 指数 | 污染物浓度(μg/m³) | |||
|---|---|---|---|---|---|
| NO₂ | PM₁₀ | O₃ | PM₂.₅(可选) | ||
| 优 | 1 | 0–50 | 0–25 | 0–60 | 0–15 |
| 良 | 2 | 50–100 | 25–50 | 60–120 | 15–30 |
| 中等 | 3 | 100–200 | 50–90 | 120–180 | 30–55 |
| 差 | 4 | 200–400 | 90–180 | 180–240 | 55–110 |
| 极差 | 5 | >400 | >180 | >240 | >110 |
注意: 了解空气质量指数的计算方法,请参阅相关资料。
接口地址
当前空气污染数据
通过向以下URI发送GET请求,获取指定位置的当前空气污染数据:
http://api.openweathermap.org/data/2.5/air_pollution?lat={lat}&lon={lon}&appid={APP_ID}
空气污染预报数据
通过向以下URI发送GET请求,获取指定位置的空气污染预报数据:
http://api.openweathermap.org/data/2.5/air_pollution/forecast?lat={lat}&lon={lon}&appid={APP_ID}
历史空气污染数据
通过向以下URI发送GET请求,获取指定位置的历史空气污染数据:
http://api.openweathermap.org/data/2.5/air_pollution/history?lat={lat}&lon={lon}&start={start}&end={end}&appid={APP_ID}
请求参数
| 参数 | 类型 | 必需性 | 描述 |
|---|---|---|---|
| APP_ID | 字符串 | 必需 | 用于身份验证的唯一API密钥。 |
| lat | 十进制 | 必需 | 地理位置的纬度。 |
| lon | 十进制 | 必需 | 地理位置的经度。 |
| start | 日期时间 | 必需 | 查询起始时间,单位为Unix时间戳和UTC时间。仅在获取历史数据时需要。 |
| end | 日期时间 | 必需 | 查询结束时间,单位为Unix时间戳和UTC时间。仅在获取历史数据时需要。 |
示例代码
第1–2行: 输入西雅图(美国)的地理坐标 47.6038321 和 -122.3300624,分别对应参数 lat 和 lon。
点击下方工具栏中的“运行”按钮查看输出结果。
1lat = 47.6038321 2lon = -122.3300624 3 4url = 'http://api.openweathermap.org/data/2.5/air_pollution?' \ 5 + 'lat=' + str(lat) + '&lon=' + str(lon) + '&appid={{APP_ID}}' 6 7response = requests.get(url) 8 9printResponse(response)
第1–2行: 输入西雅图(美国)的地理坐标 47.6038321 和 -122.3300624,分别对应参数 lat 和 lon。
点击下方工具栏中的“运行”按钮查看输出结果。
1lat = 47.6038321 2lon = -122.3300624 3 4url = 'http://api.openweathermap.org/data/2.5/air_pollution/forecast?' \ 5 + 'lat=' + str(lat) + '&lon=' + str(lon) + '&appid={{APP_ID}}' 6 7response = requests.get(url) 8 9printResponse(response)
第1–2行: 输入西雅图(美国)的地理坐标 47.6038321 和 -122.3300624,分别对应参数 lat 和 lon。
第3–4行: 获取最近5天的历史空气污染数据,因此 start 和 end 参数自动设置为5天前和当前时间戳。
点击下方工具栏中的“运行”按钮查看输出结果。
1lat = 47.6038321 2lon = -122.3300624 3start = int(time.time() - (5 * 86400)) 4end = int(time.time()) 5 6url = 'http://api.openweathermap.org/data/2.5/air_pollution/history?' \ 7 + 'lat=' + str(lat) + '&lon=' + str(lon) + '&start=' + str(start)+ '&end=' + str(end) \ 8 + '&appid={{APP_ID}}' 9 10response = requests.get(url) 11 12printResponse(response)
输出说明
第一个代码的输出显示指定位置的当前空气污染数据。
第二个代码的输出显示指定位置未来5天内每小时粒度的空气污染预报数据。
第三个代码的输出显示指定位置在指定时间段内每小时粒度的历史空气污染数据。
接下来深入分析API返回的响应字段。
响应参数
| 参数 | 类型 | 描述 |
|---|---|---|
| coord.lat | 十进制 | 位置的纬度。 |
| coord.lon | 十进制 | 位置的经度。 |
| list.components.co | 十进制 | 一氧化碳浓度,单位为 μg/m³。 |
| list.components.nh3 | 十进制 | 氨气浓度,单位为 μg/m³。 |
| list.components.no | 十进制 | 一氧化氮浓度,单位为 μg/m³。 |
| list.components.no2 | 十进制 | 二氧化氮浓度,单位为 μg/m³。 |
| list.components.o3 | 十进制 | 臭氧浓度,单位为 μg/m³。 |
| list.components.pm10 | 十进制 | 粗颗粒物浓度,单位为 μg/m³。 |
| list.components.pm2_5 | 十进制 | 细颗粒物浓度,单位为 μg/m³。 |
| list.components.so2 | 十进制 | 二氧化硫浓度,单位为 μg/m³。 |
| list.dt | 日期时间 | 数据的时间点,单位为Unix时间戳和UTC时间。 |
| list.main.aqi | 整数 | 空气质量指数,取值范围为:1(优)、2(良)、3(中等)、4(差)、5(极差)。 |