AirBase
An easy downloader for air quality data provided by the European Environment Agency.
https://github.com/johnpaton/airbase
Category: Natural Resources
Sub Category: Air Quality
Keywords
air-quality airbase data python
Keywords from Contributors
aerocom aerosol climate-science earth-observation model-evaluation
Last synced: about 2 hours ago
JSON representation
Repository metadata
🌬 An easy downloader for the AirBase air quality data.
- Host: GitHub
- URL: https://github.com/johnpaton/airbase
- Owner: JohnPaton
- License: mit
- Created: 2018-11-15T21:15:34.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-10-14T12:47:33.000Z (8 months ago)
- Last Synced: 2026-05-28T03:04:27.566Z (17 days ago)
- Topics: air-quality, airbase, data, python
- Language: Python
- Homepage: https://airbase.readthedocs.io
- Size: 2.93 MB
- Stars: 11
- Watchers: 2
- Forks: 5
- Open Issues: 5
- Releases: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
🌬 AirBase
An easy downloader for air quality data provided by the European Environment Agency (EEA).
The data is available for download at
the portal, but
the interface makes it a bit time consuming to do bulk downloads. Hence, an easy
Python-based interface.
Read the full documentation at https://airbase.readthedocs.io.
🔌 Installation
To install airbase, simply run
$ pip install airbase
🚀 Getting Started
🗺 Get info about available countries and pollutants:
>>> import airbase
>>> client = airbase.AirbaseClient()
>>> client.countries
frozenset({'LI', 'CY', 'IE', 'LV', 'BE', 'EE', ...})
>>> client.pollutants
frozenset({'Co', 'sum-PCB', 'PCB-26', 'HNO3', ...})
>>> client.search_pollutant("O3")
[{'poll': 'O3', 'id': 7}, {'poll': 'NO3', 'id': 46}, ...]
🗂 Request download links from the server and save the resulting Parquet files into a directory:
>>> r = client.request("Verified", "NL", "DE", poll=["NO3", "NO3- in PM2.5", "NO3- in PM10"])
>>> r.download(dir="data", skip_existing=True)
summary : 100%|█████| 2/2 [00:00<00:00, 4.48requests/s]
URLs : 100%|█████| 29.0/29.0 [00:00<00:00, 490URL/s]
download: 386kb [00:00, 570kb/s]
📦 Download the entire dataset (not for the faint of heart):
>>> r = client.request()
>>> r.download_to_directory("data")
summary : 100%|█████| 39/39 [00:15<00:00, 2.54requests/s]
URLs : 100%|█████| 47.0k/47.0k [00:00<00:00, 77.7kURL/s]
download: 20.6Gb [54:36, 6.74Mb/s]
🌡 Don't forget to get the metadata about the measurement stations:
>>> client.download_metadata("data/metadata.csv")
Writing metadata to data/metadata.csv...
🚆 Command line interface
Historical data delivered between 2002 and 2012
$ airbase historical --help
Usage: airbase historical [OPTIONS]
Historical Airbase data delivered between 2002 and 2012 before Air Quality
Directive 2008/50/EC entered into force.
Use -c/--country and -p/--pollutant to restrict the download specific countries and pollutants, e.g.
- download only Norwegian, Danish and Finish sites
airbase historical -c NO -c DK -c FI
- download only SO2, PM10 and PM2.5 observations
airbase historical -p SO2 -p PM10 -p PM2.5
Use -C/--city to further restrict the download to specific cities, e.g.
- download only PM10 and PM2.5 from Valletta, the Capital of Malta
airbase historical -C Valletta -c MT -p PM10 -p PM2.5
Options:
-c, --country [AD|AL|AT|...]
-p, --pollutant [k|V|NT|...]
-C, --city TEXT only from selected <cities>
-F, --aggregation-type, --frequency [hourly|daily|other]
only hourly data, daily data or other
aggregation frequency
-M, --metadata download station metadata
--path PATH [default: data/historical]
-n, --dry-run, --summary Total download files/size, nothing will be
downloaded.
-O, --overwrite Re-download existing files.
-q, --quiet No progress-bar.
--help Show this message and exit.
Verified data from 2013 to 2024
$ airbase verified --help
Usage: airbase verified [OPTIONS]
Verified data (E1a) from 2013 to 2024 reported by countries by 30 September
each year for the previous year.
Use -c/--country and -p/--pollutant to restrict the download specific countries and pollutants, e.g.
- download only Norwegian, Danish and Finish sites
airbase verified -c NO -c DK -c FI
- download only SO2, PM10 and PM2.5 observations
airbase verified -p SO2 -p PM10 -p PM2.5
Use -C/--city to further restrict the download to specific cities, e.g.
- download only PM10 and PM2.5 from Valletta, the Capital of Malta
airbase verified -C Valletta -c MT -p PM10 -p PM2.5
Options:
-c, --country [AD|AL|AT|...]
-p, --pollutant [k|V|NT|...]
-C, --city TEXT only from selected <cities>
-F, --aggregation-type, --frequency [hourly|daily|other]
only hourly data, daily data or other
aggregation frequency
-M, --metadata download station metadata
--path PATH [default: data/verified]
-n, --dry-run, --summary Total download files/size, nothing will be
downloaded.
-O, --overwrite Re-download existing files.
-q, --quiet No progress-bar.
--help Show this message and exit.
Unverified data from the beginning of 2025
$ airbase unverified --help
Usage: airbase unverified [OPTIONS]
Unverified data transmitted continuously (Up-To-Date/UTD/E2a) data from the
beginning of 2025.
Use -c/--country and -p/--pollutant to restrict the download specific countries and pollutants, e.g.
- download only Norwegian, Danish and Finish sites
airbase unverified -c NO -c DK -c FI
- download only SO2, PM10 and PM2.5 observations
airbase unverified -p SO2 -p PM10 -p PM2.5
Use -C/--city to further restrict the download to specific cities, e.g.
- download only PM10 and PM2.5 from Valletta, the Capital of Malta
airbase unverified -C Valletta -c MT -p PM10 -p PM2.5
Options:
-c, --country [AD|AL|AT|...]
-p, --pollutant [k|V|NT|...]
-C, --city TEXT only from selected <cities>
-F, --aggregation-type, --frequency [hourly|daily|other]
only hourly data, daily data or other
aggregation frequency
-M, --metadata download station metadata
--path PATH [default: data/unverified]
-n, --dry-run, --summary Total download files/size, nothing will be
downloaded.
-O, --overwrite Re-download existing files.
-q, --quiet No progress-bar.
--help Show this message and exit.
🛣 Roadmap
Parallel CSV downloadsContributed by @avaldebeCLI to avoid using Python all togetherContributed by @avaldebe- Data wrangling module for AirBase output data
Owner metadata
- Name: John Paton
- Login: JohnPaton
- Email:
- Kind: user
- Description: 📊 Machine Learning Engineer / 🎓 Theoretical physics / 🐍 Pythonista / 💼 Booking.com / 📍 Netherlands 🇳🇱
- Website: https://johnpaton.net
- Location:
- Twitter:
- Company: @bookingcom
- Icon url: https://avatars.githubusercontent.com/u/18459252?u=05f4cc62fe0abbb76058d5a0b283f0158027265b&v=4
- Repositories: 5
- Last ynced at: 2023-03-03T15:01:13.188Z
- Profile URL: https://github.com/JohnPaton
GitHub Events
Total
- Release event: 2
- Delete event: 3
- Pull request event: 13
- Issues event: 13
- Watch event: 2
- Issue comment event: 16
- Push event: 72
- Pull request review comment event: 3
- Pull request review event: 14
- Create event: 13
Last Year
- Pull request event: 1
- Issue comment event: 1
- Push event: 7
- Pull request review event: 3
- Create event: 2
Committers metadata
Last synced: 3 days ago
Total Commits: 407
Total Committers: 4
Avg Commits per committer: 101.75
Development Distribution Score (DDS): 0.297
Commits in past year: 11
Committers in past year: 1
Avg Commits per committer in past year: 11.0
Development Distribution Score (DDS) in past year: 0.0
| Name | Commits | |
|---|---|---|
| Alvaro Valdebenito | a****v@m****o | 286 |
| John Paton | j****n@j****t | 88 |
| JohnPaton | j****n@c****l | 32 |
| Heiko Klein | h****n@m****o | 1 |
Committer domains:
- met.no: 2
- catawiki.nl: 1
- johnpaton.net: 1
Issue and Pull Request metadata
Last synced: 7 months ago
Total issues: 26
Total pull requests: 68
Average time to close issues: 9 months
Average time to close pull requests: about 1 month
Total issue authors: 6
Total pull request authors: 3
Average comments per issue: 1.77
Average comments per pull request: 1.85
Merged pull request: 48
Bot issues: 0
Bot pull requests: 0
Past year issues: 5
Past year pull requests: 18
Past year average time to close issues: 12 days
Past year average time to close pull requests: 5 days
Past year issue authors: 1
Past year pull request authors: 2
Past year average comments per issue: 0.2
Past year average comments per pull request: 1.39
Past year merged pull request: 9
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- JohnPaton (13)
- avaldebe (9)
- heikoklein (1)
- omidnabavi (1)
- b-kode (1)
- charlienegri (1)
Top Pull Request Authors
- avaldebe (38)
- JohnPaton (28)
- heikoklein (2)
Top Issue Labels
- enhancement (9)
- bug (2)
- wontfix (1)
Top Pull Request Labels
- enhancement (8)
- bug (2)
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 412 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 15
- Total maintainers: 1
pypi.org: airbase
An easy downloader for the AirBase air quality data.
- Homepage:
- Documentation: https://airbase.readthedocs.io
- Licenses: MIT License
- Latest release: 1.0.0 (published over 1 year ago)
- Last Synced: 2026-06-11T13:01:39.208Z (3 days ago)
- Versions: 15
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 412 Last month
-
Rankings:
- Dependent packages count: 7.31%
- Forks count: 15.416%
- Stargazers count: 18.529%
- Downloads: 23.758%
- Average: 26.702%
- Dependent repos count: 68.496%
- Maintainers (1)
Dependencies
- importlib_metadata *
- sphinx >=4.2.0
- sphinx_rtd_theme *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pre-commit/action v2.0.3 composite
- pypa/gh-action-pypi-publish release/v1 composite
Score: 10.182330676320705