https://github.com/javierarce/aire-madrid
Node package to get information about Madrid's air quality
https://github.com/javierarce/aire-madrid
air air-quality madrid pollution
Last synced: about 1 year ago
JSON representation
Node package to get information about Madrid's air quality
- Host: GitHub
- URL: https://github.com/javierarce/aire-madrid
- Owner: javierarce
- License: mit
- Created: 2021-02-20T08:59:10.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-09-25T09:44:33.000Z (over 4 years ago)
- Last Synced: 2025-02-28T04:46:26.860Z (over 1 year ago)
- Topics: air, air-quality, madrid, pollution
- Language: JavaScript
- Homepage:
- Size: 159 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aire-madrid
Node package to get information about Madrid's air quality.
[](https://travis-ci.com/javierarce/aire-madrid)
## 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).
```js
const air = require('aire-madrid')
air.getReadings({ stations: [8, 11], pollutants: [7, 9]}).then((data) => {
console.log(data)
})
```
See output
```js
[{
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](https://github.com/javierarce/aire-madrid/wiki/Pollutants).
- For [these pollutants](https://github.com/javierarce/aire-madrid/wiki/How-are-quality-indexes-calculated) a scoring is offered.
#### Get the list of stations
```js
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
```js
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
- [Pollutants ids](https://github.com/javierarce/aire-madrid/wiki/Pollutants)
- [How are quality indexes calculated](https://github.com/javierarce/aire-madrid/wiki/How-are-quality-indexes-calculated)
- [Data sources](https://github.com/javierarce/aire-madrid/wiki/Data-sources)
### TODO
- [ ] Show information about possible [problems in the stations](https://twitter.com/airedemadrid/status/1364142646382452736)
### DONE
- [x] Improve this README.
- [x] Add a global quality score for a station
- [x] Add pollutants scoring
- [x] Find a better name than 'magnitude'
- [x] Return data in the form of an array
- [x] Add tests
- [x] Add more methods to get readings
- [x] Improve documentation with examples
- [x] Add stations metadata (lng, lat, address, etc.)