Skip to main content

Air quality index hub

Project description

AQI Hub

AQI Hub Cover

AQI 计算,以及分指数计算

Contents

计算方法

AQI (CN)

计算方法参照中华人民共和国生态环境部标准: HJ 633--2012 环境空气质量指数 (AQI) 技术规定 (试行).pdf

AQI 等级说明

AQI 范围 指数级别 类别 颜色
0 至 50 一级 绿色
51 至 100 二级 黄色
101 至 150 三级 轻度污染 橙色
151 至 200 四级 中度污染 红色
201 至 300 五级 重度污染 紫色
301+ 六级 严重污染 褐红色

AQI 颜色标准(中国)

RGB 颜色 R G B RGB HEX CMYK 颜色 C M Y K CMYK HEX
绿色 0 228 0 #00E400 绿色 CMYK 40 0 100 0 #99FF00
黄色 255 255 0 #FFFF00 黄色 CMYK 0 0 100 0 #FFFF00
橙色 255 126 0 #FF7E00 橙色 CMYK 0 52 100 0 #FF7A00
红色 255 0 0 #FF0000 红色 CMYK 0 100 100 0 #FF0000
紫色 153 0 76 #99004C 紫色 CMYK 10 100 40 30 #A0006B
褐红色 126 0 35 #7E0023 褐红色 CMYK 30 100 100 30 #7C0000

AQI (USA)

计算方法参考 US EPA: Technical Assistance Document for the Reporting of Daily Air Quality – the Air Quality Index (AQI)

AQI Range

AQI Range Descriptor Color
0 to 50 Good Green
51 to 100 Moderate Yellow
101 to 150 Unhealthy for Sensitive Groups Orange
151 to 200 Unhealthy Red
201 to 300 Very Unhealthy Purple
301+ Hazardous Maroon

AQI Color

RGB Color R G B RGB HEX CMYK Color C M Y K CMYK HEX
Green 0 228 0 #00E400 Green CMYK 40 0 100 0 #99FF00
Yellow 255 255 0 #FFFF00 Yellow CMYK 0 0 100 0 #FFFF00
Orange 255 126 0 #FF7E00 Orange CMYK 0 52 100 0 #FF7A00
Red 255 0 0 #FF0000 Red CMYK 0 100 100 0 #FF0000
Purple 143 63 151 #8F3F97 Purple CMYK 5 58 0 41 #8F3F96
Maroon 126 0 35 #7E0023 Maroon CMYK 30 100 100 30 #7D0000

使用方法

安装

pip install aqi-hub

中国 AQI 计算

1 AQI 计算

from aqi_hub.aqi_cn.aqi import cal_aqi_cn

# 1.1 计算小时值 AQI
aqi, iaqi = cal_aqi_cn(
    pm25=45, pm10=80, so2=35, no2=85, co=3, o3=140, data_type="hourly"
)
print("测试数据 1:")
print(f"AQI: {aqi}")
print(f"IAQI: {iaqi}")

# 1.2 计算日均值 AQI
aqi, iaqi = cal_aqi_cn(
    pm25=120, pm10=180, so2=65, no2=150, co=8, o3=200, data_type="daily"
)
print("\n测试数据 2:")
print(f"AQI: {aqi}")
print(f"IAQI: {iaqi}")

2 IAQI 计算

from aqi_hub.aqi_cn.aqi import cal_iaqi_cn

# 2.1 计算 PM2.5 的 IAQI
pm25_iaqi = cal_iaqi_cn("PM25_24H", 120)
print(f"PM25_24H IAQI: {pm25_iaqi}")

# 2.2 计算 PM10 的 IAQI
pm10_iaqi = cal_iaqi_cn("PM10_24H", 180)
print(f"PM10_24H IAQI: {pm10_iaqi}")

3 空气质量等级

from aqi_hub.aqi_cn.aqi import get_aqi_level

# 3.1 计算 AQI
level = get_aqi_level(120)
print(f"AQI 等级: {level}")

4 空气质量等级颜色

from aqi_hub.aqi_cn.aqi import get_aqi_level_color

# 4.1 计算 AQI 等级颜色
color = get_aqi_level_color(1, "RGB")
print(f"AQI 等级颜色: {color}")

# 4.2 计算 AQI 等级颜色
color = get_aqi_level_color(2, "CMYK")
print(f"AQI 等级颜色: {color}")

# 4.3 计算 AQI 等级颜色
color = get_aqi_level_color(3, "RGB_HEX")
print(f"AQI 等级颜色: {color}")

# 4.4 计算 AQI 等级颜色
color = get_aqi_level_color(4, "CMYK_HEX")
print(f"AQI 等级颜色: {color}")

5 污染物计算

from aqi_hub.aqi_cn.aqi import cal_primary_pollutant, cal_exceed_pollutant

# 5.1 计算主要污染物
iaqi = {
    "PM25": 120,
    "PM10": 180,
    "SO2": 65,
    "NO2": 150,
    "CO": 8,
    "O3": 200,
}
primary_pollutant = cal_primary_pollutant(iaqi)
print(f"主要污染物: {primary_pollutant}")

# 5.2 计算超标污染物
exceed_pollutant = cal_exceed_pollutant(iaqi)
print(f"超标污染物: {exceed_pollutant}")

6 AQI 类

from aqi_hub.aqi_cn.aqi import AQI

data_type = "hourly"
# or
data_type = "daily"

aqi_obj = AQI(
    pm25=120,
    pm10=180,
    so2=65,
    no2=150,
    co=1.0,
    o3=200,
    data_type=data_type,
)
print(f"AQI: {aqi_obj.AQI}")
print(f"IAQI: {aqi_obj.IAQI}")
print(f"主要污染物: {aqi_obj.primary_pollutant}")
print(f"超标污染物: {aqi_obj.exceed_pollutant}")
print(f"AQI 等级: {aqi_obj.aqi_level}")
print(f"AQI 等级颜色 (RGB): {aqi_obj.aqi_color_rgb}")
print(f"AQI 等级颜色 (CMYK): {aqi_obj.aqi_color_cmyk}")
print(f"AQI 等级颜色 (RGB_HEX): {aqi_obj.aqi_color_rgb_hex}")
print(f"AQI 等级颜色 (CMYK_HEX): {aqi_obj.aqi_color_cmyk_hex}")

"""
AQI: 158
IAQI: {'PM2.5': 158, 'PM10': 115, 'SO2': 22, 'NO2': 135, 'CO': 25, 'O3': 137}
主要污染物: ['PM2.5']
超标污染物: ['PM2.5', 'PM10', 'NO2', 'O3']
AQI 等级: 4
AQI 等级颜色 (RGB): (255, 0, 0)
AQI 等级颜色 (CMYK): (0, 100, 100, 0)
AQI 等级颜色 (RGB_HEX): #FF0000
AQI 等级颜色 (CMYK_HEX): #FF0000
"""

美国 AQI 计算

1 AQI 计算

from aqi_hub.aqi_usa.aqi import cal_aqi_usa

aqi, iaqi = cal_aqi_usa(
    pm25=120, pm10=180, so2_1h=65, no2=150, co=8, o3_8h=0.200, so2_24h=None, o3_1h=None
)
print("aqi:", aqi)
print("iaqi:", iaqi)

2 IAQI 计算

from aqi_hub.aqi_usa.aqi import cal_iaqi_usa

# 2.1 计算 PM2.5 的 IAQI
pm25_iaqi = cal_iaqi_usa(120, "PM25_24H")
print(f"PM25_24H IAQI: {pm25_iaqi}")

# 2.2 计算 PM10 的 IAQI
pm10_iaqi = cal_iaqi_usa(180, "PM10_24H")
print(f"PM10_24H IAQI: {pm10_iaqi}")

# 2.3 计算 SO2 的 IAQI
so2_1h_iaqi = cal_iaqi_usa(65, "SO2_1H")
print(f"SO2_1H IAQI: {so2_1h_iaqi}")
so2_24h_iaqi = cal_iaqi_usa(307, "SO2_24H")
print(f"SO2_24H IAQI: {so2_24h_iaqi}")

# 2.4 计算 NO2 的 IAQI
no2_iaqi = cal_iaqi_usa(150, "NO2_1H")
print(f"NO2_1H IAQI: {no2_iaqi}")

# 2.5 计算 CO 的 IAQI
co_iaqi = cal_iaqi_usa(8, "CO_8H")
print(f"CO_8H IAQI: {co_iaqi}")

# 2.6 计算 O3 的 IAQI
o3_8h_iaqi = cal_iaqi_usa(0.200, "O3_8H")
print(f"O3_8H IAQI: {o3_8h_iaqi}")
o3_1h_iaqi = cal_iaqi_usa(0.200, "O3_1H")
print(f"O3_1H IAQI: {o3_1h_iaqi}")

3 AQI 等级

from aqi_hub.aqi_usa.aqi import get_aqi_level

aqi_level = get_aqi_level(200)
print(f"AQI: {aqi_level}")

4 空气质量等级颜色

from aqi_hub.aqi_usa.aqi import get_aqi_level_color

color = get_aqi_level_color(1, "RGB")
print(f"Color: {color}")

color = get_aqi_level_color(2, "CMYK")
print(f"Color: {color}")

color = get_aqi_level_color(3, "RGB_HEX")
print(f"Color: {color}")

color = get_aqi_level_color(4, "CMYK_HEX")
print(f"Color: {color}")

5 污染物计算

from aqi_hub.aqi_usa.aqi import cal_primary_pollutant

iaqi = {
    "PM2.5": 150,
    "PM10": 120,
    "SO2": 200,
    "NO2": 100,
    "CO": 50,
    "O3": 300,
}
primary_pollutant = cal_primary_pollutant(iaqi)
print(f"Primary Pollutant: {primary_pollutant}")

6 AQI 类

from aqi_hub.aqi_usa.aqi import AQI

aqi = AQI(
    pm25=120,
    pm10=180,
    so2_1h=65,
    no2=150,
    co=8,
    o3_8h=0.200,
    so2_24h=None,
    o3_1h=None,
)
print("aqi:", aqi.AQI)
print("iaqi:", aqi.IAQI)
print("aqi_level:", aqi.aqi_level)
print("primary_pollutant", aqi.primary_pollutant)
print("aqi_color_rgb:", aqi.aqi_color_rgb)
print("aqi_color_cmyk:", aqi.aqi_color_cmyk)
print("aqi_color_rgb_hex:", aqi.aqi_color_rgb_hex)
print("aqi_color_cmyk_hex:", aqi.aqi_color_cmyk_hex)

返回值说明

支持的污染物

污染物 中国标准单位 美国标准单位 单位换算(25℃,1标准大气压)
PM2.5 μg/m³ μg/m³ 相同
PM10 μg/m³ μg/m³ 相同
O3 μg/m³ ppb 1 ppb = 1.962 μg/m³
CO mg/m³ ppm 1 ppm = 1.145 mg/m³
NO2 μg/m³ ppb 1 ppb = 1.88 μg/m³
SO2 μg/m³ ppb 1 ppb = 2.62 μg/m³

参考文献

  1. HJ 633--2012 环境空气质量指数 (AQI) 技术规定 (试行).pdf
  2. Technical Assistance Document for the Reporting of Daily Air Quality – the Air Quality Index (AQI)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aqi_hub-0.2.1.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aqi_hub-0.2.1-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file aqi_hub-0.2.1.tar.gz.

File metadata

  • Download URL: aqi_hub-0.2.1.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.14

File hashes

Hashes for aqi_hub-0.2.1.tar.gz
Algorithm Hash digest
SHA256 43cca50bb68485e614dd7a5e2b9573790bb581c55c8531f9b5dfbaf556abee15
MD5 63aa39c96833fbdced00e283524d7869
BLAKE2b-256 e75728fdef6ef0a822ba52601a93338b465d07871c72fdad4422a8656642a4d4

See more details on using hashes here.

File details

Details for the file aqi_hub-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: aqi_hub-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.14

File hashes

Hashes for aqi_hub-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c84cfdbcef884a76ff3eb8edca9508c3395c842bf7face63ec7469385b71ff0
MD5 65f7331e17281508dbc3bea5297f5bb0
BLAKE2b-256 ef6c0004d16c75be9f9c9821ed1599af1b5dad03c109a90fccab9142b67d9a41

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page