python-aqi icon indicating copy to clipboard operation
python-aqi copied to clipboard

A library to convert between AQI value and pollutant concentration (µg/m³ or ppm)

########################### python-aqi - AQI conversion ###########################

A library to convert between AQI value and pollutant concentration (µg/m³ or ppm) using the following algorithms:

  • United States Environmental Protection Agency (EPA)
  • China Ministry of Environmental Protection (MEP)

.. image:: https://travis-ci.org/hrbonz/python-aqi.svg?branch=master :target: https://travis-ci.org/hrbonz/python-aqi :alt: Testing Status

.. image:: https://readthedocs.org/projects/python-aqi/badge/?version=0.6.1 :target: https://readthedocs.org/projects/python-aqi/?badge=latest :alt: Documentation Status

.. image:: http://img.shields.io/badge/license-BSD%203--Clause-blue.svg :target: http://opensource.org/licenses/BSD-3-Clause :alt: license BSD 3-Clause

Install

::

$ pip install python-aqi

Usage

Library

Convert a pollutant to its IAQI (Intermediate Air Quality Index)::

import aqi
myaqi = aqi.to_iaqi(aqi.POLLUTANT_PM25, '12', algo=aqi.ALGO_EPA)

Get an AQI out of several pollutant concentrations, default algorithm is EPA::

import aqi
myaqi = aqi.to_aqi([
    (aqi.POLLUTANT_PM25, '12'),
    (aqi.POLLUTANT_PM10, '24'),
    (aqi.POLLUTANT_O3_8H, '0.087')
])

Convert an IAQI to its pollutant concentration::

import aqi
mycc = aqi.to_cc(aqi.POLLUTANT_PM25, '22', algo=aqi.ALGO_EPA)

Command line

List supported algorithms and pollutants::

$ aqi -l
aqi.algos.epa: pm10 (µg/m³), o3_8h (ppm), co_8h (ppm), no2_1h (ppb), o3_1h (ppm), so2_1h (ppb), pm25 (µg/m³)
aqi.algos.mep: no2_24h (µg/m³), so2_24h (µg/m³), no2_1h (µg/m³), pm10 (µg/m³), o3_1h (µg/m³), o3_8h (µg/m³), so2_1h (µg/m³), co_1h (mg/m³), pm25 (µg/m³), co_24h (mg/m³)

Convert PM2.5 to IAQI using EPA algorithm::

$ aqi aqi.algos.epa pm25:12
50

Convert PM2.5 to IAQI using EPA algorithm (full length)::

$ aqi -c aqi aqi.algos.epa pm25:12
50

Convert pollutants concentrations to AQI using EPA algorithm::

$ aqi aqi.algos.epa pm25:40.9 o3_8h:0.077 co_1h:8.4
114

Convert pollutants concentrations to AQI using EPA algorithm, display IAQIs::

$ aqi -v aqi.algos.epa pm25:40.9 o3_8h:0.077 co_1h:8.4
pm25:102 o3_8h:104 co_1h:90
114

Convert PM2.5 IAQI to concentration using EPA algorithm::

$ aqi -c cc aqi.algos.epa pm25:39
pm2.5:9.3

Development

To install the development environment::

$ pip install -r dev_requirements.txt

Test

Test the package::

$ python -m unittest discover

Automatic testing in various environments::

$ tox

Release

Use bumpr to release the package::

$ bumpr -b -m

Project

  • Source code on github <https://github.com/hrbonz/python-aqi>_
  • Documentation on readthedocs <http://python-aqi.readthedocs.org/>_
  • Package on pypi <https://pypi.python.org/pypi/python-aqi>_

Resources

  • EPA AQI: Technical Assistance Document for the Reporting of Daily Air Quality – the Air Quality Index (AQI) December 2013) found at http://www.epa.gov/airnow/aqi-technical-assistance-document-dec2013.pdf

  • National Ambient Air Quality Standards for Particulate Matter found at http://www.gpo.gov/fdsys/pkg/FR-2013-01-15/pdf/2012-30946.pdf

  • MEP AQI:

    • GB3095—2012 (2012/02/29) found at http://www.mep.gov.cn/gkml/hbb/bwj/201203/t20120302_224147.htm
    • HJ633-2012 (2012/02/29) found at http://www.zzemc.cn/em_aw/Content/HJ633-2012.pdf

License

python-aqi is published under a BSD 3-clause license, see the LICENSE file distributed with the project.