/aire-madrid

Node package to get information about Madrid's air quality

Primary LanguageJavaScriptMIT LicenseMIT

aire-madrid

Node package to get information about Madrid's air quality.

Build Status

Installation

yarn add aire-madrid

or

npm install aire-madrid

Usage examples

Get readings from 'Monóxido de Nitrógeno' (6) & 'Partículas < 2.5 µm' (9) at stations 8 (Escuelas Aguirre) and 11 (Avda. Ramón y Cajal).

const air = require('aire-madrid')

air.getReadings({ stations: [8, 11], pollutants: [7, 9]}).then((data) => {
  console.log(data)
})
See output
[{
    id: '8',
    name: 'Escuelas Aguirre',
    address: 'Entre C/ Alcalá y C/ O\x92 Donell ',
    lng: '-3.6823158',
    lat: '40.4215533',
    pollutants: [{
      id: '7',
      name: 'Monóxido de Nitrógeno',
      values: [ 22, 11, 4, 2, 2, 2, 3, 5, 10, 10, 7, 
                4, 3, 3, 3,  2, 2, 3, 3, 4, 4, 9 ]
    }, {
      id: '9',
      name: 'Partículas < 2.5 µm',
      scoring: [
        { value: 5, name: 'muy bien', range: [ 0, 10 ] },
        { value: 4, name: 'bien', range: [ 11, 20 ] },
        { value: 3, name: 'regular', range: [ 21, 25 ] },
        { value: 2, name: 'mal', range: [ 26, 50 ] },
        { value: 1, name: 'muy mal', range: [ 51, 800 ] }
      ],
      values: [ 14, 14, 11, 5, 6, 9, 7, 5, 10, 12, 15, 11, 
                11, 11, 8, 12, 13, 19, 17, 17, 25, 30 ],
      quality: { scoring: { name: 'mal', value: 2 }, lastValue: 30, time: 22 }
    }],
    qualityIndex: 2
  }, {
  
  • The first value in the values array corresponds to the 1 AM of the current day.
  • Pollutant IDs can be found here.
  • For these pollutants a scoring is offered.

Get the list of stations

air.getStations().then((data) => {
  console.log(data)
})
See output ```js [ { id: '4', name: 'Pza. de España', address: 'Plaza de España', lng: '-3.7122567', lat: '40.4238823' }, { id: '8', name: 'Escuelas Aguirre', address: 'Entre C/ Alcalá y C/ O\x92 Donell ', lng: '-3.6823158', lat: '40.4215533' }, … ```

Get the list of pollutants

air.getPollutants().then((data) => {
  console.log(data)
})
See output ```js [ { id: '1', name: 'Dióxido de Azufre', scoring: [ { value: 5, name: 'muy bien', range: [ 0, 100 ] }, { value: 4, name: 'bien', range: [ 101, 200 ] }, { value: 3, name: 'regular', range: [ 201, 350 ] }, { value: 2, name: 'mal', range: [ 351, 500 ] }, { value: 1, name: 'muy mal', range: [ 501, 1250 ] } ] }, { id: '6', name: 'Monóxido de Carbono' }, { id: '7', name: 'Monóxido de Nitrógeno' }, … ] ```

More information

TODO

DONE

  • Improve this README.
  • Add a global quality score for a station
  • Add pollutants scoring
  • Find a better name than 'magnitude'
  • Return data in the form of an array
  • Add tests
  • Add more methods to get readings
  • Improve documentation with examples
  • Add stations metadata (lng, lat, address, etc.)