The goal is to create annual, monthly, daily, and potentially hourly maps of four key air quality indicators (NO2, O3, SO2, PM10, PM2.5). Hourly data from about 7,000 EEA measurement stations throughout the EU serves as basis for interpolation. Supplementary variables such as population density, land cover, climatology are further inputs to a universal Kriging method.
- write download functions
- write function to filter by quality flags
- write function to filter for rural/urban/suburban & background/traffic
- write function to join pollutant tables by country
- download station data for all countries (2015-2023)
- preprocess all station data
- gapfill all PM2.5 with predictors according to EEA
- PM10
- coordinates
- population density
- sun shine duration
- ERA5 alternative:
surface_net_solar_radiation
- NO2 mean
- SO2 mean
- PM2.5 mean
- PM10
- mean
- 90.4 percentile of daily mean
- O3
- mean
- 93.2 percentile of max. daily 8h rolling mean
- Elevation: COP-DEM
- Corine Land Cover
- reclassify to 8 classes (Horalek 2019, section 3.4)
- aggregate to single-class 1 km fractional cover
- aggregate to single-class 10 km fractional cover
- aggregate to single-class 1 km fractional cover within 5 km radius
- Population Density
- CAMS data (atmospheric transport model outputs for each pollutant,
hourly)
- reanalysis
for 2015-2022
- validated reanalysis: 2015-2020
- interim reanalysis: 2021-2022
- forecasts for 2023 (3-year rolling archive)
- download
- 2015-2022
- 2023
- reanalysis
for 2015-2022
- ECWMF ERA5 Land data
(hourly):
- wind speed (from u and v)
- surface net solar radiation
- temperature
- relative humidity (from temp. and dew point temp.)
- download
- calculate wind speed/direction & humidity
- temporal aggregates (daily, monthly, annual)
- mean
- percentiles
- Sentinel-5P TROPOMI (daily)
- annual
- monthly
- daily
- function to read aq data
- function to read and warp required covariates to a common grid
- function wrapping lm
- function for residual kriging in parallel
- functions for (LOO-) cross-validation
- function to combine lm and kriging prediction
- functions for plotting prediction and standard error
- Weights: Traffic Exposure
- buffer and rasterize GRIP vector data for road classes 1-3
- distance to nearest road (by type)
- Weights: Urban Character
- scale and reclassify population density grid
- function to weight and merge map layers in parallel
- RB: rural background stations
- UB: urban/suburban background stations
- JB: joint rural/urbal background stations
- UT: urban/suburban traffic station (not for O3)
- adjust RB and UB where necessary using JB
- adjust UT where necessary using UB (not O3)
- write final maps (prediction and se) to COG
gdal_translate in out -of "COG" -co "COMPRESS=DEFLATE" -co "PREDICTOR=3" -co "BIGTIFF=YES"
- interpolation using
- standard Random Forest
- Random Forest with awareness for spatial correlation (RF-GLS)
Step | File | Description |
---|---|---|
1 | ACS_CAMS_access.R CCS_ERA5_access.R download_nc_job.R rename_nc.R |
Request hourly ERA5 weather and CAMS pollution data. Copy to URLs from the web interface and store in .txt file to iterate over for downloading. Rename files according to metadata. |
2 | EEA_stations.qmd |
Create a spatial dataset with all AQ stations and supplement them with static covariates (elevation, population, land cover). |
3 | EEA_AQ_data_access.qmd EEA_AQ_data_access_all_countries.R |
Download & pre-process hourly AQ measurements. This includes reading, filtering, and joining up to 4 pollutant time series per station for 2015-2023. |
4 | xarray_extract_station_SSR.ipynb EEA_PM25_gapfilling_all_countries.qmd |
Extract hourly Surface Solar Radiation before gapfilling PM2.5 (only where PM10 is measured) using linear regression. |
5 | xarray_dask_rel_humidity.ipynb xarray_dask_ws_wd.ipynb |
Process ERA5 wind vectors and temperature data to wind speed & direction and relative humidity. |
6 | EEA_AQ_data_temporal_aggregation.qmd xarray_temp_aggregate.ipynb xarray_temp_aggregate_rolling.ipynb |
Aggregate AQ measurements and CAMS/ERA5 hourly data to annual, monthly, daily means/quantiles. |
7 | AQ_interpolation_demo.qmd |
Interpolate AQ data using environmental and socio-economic covariates. |