GH-PM25 Observatory
Daily 1-km fine particulate matter for Ghana
Population-weighted PM2.5
µg/m³ · 90% interval
Population above WHO 24-h (15)
share of residents
Population above Ghana EPA 24-h (35)
share of residents
Ground monitors assimilated
stations with valid daily mean
Most affected region
population-weighted

Ground monitoring network

Select a station

Observed vs cross-validated prediction

Site statistics

Table view

Population-weighted PM2.5

µg/m³ with 90% interval · reference lines: WHO 15, Ghana EPA 35
Table view

Seasonal cycle

monthly mean of daily population-weighted PM2.5

Days above Ghana EPA 24-h standard (35 µg/m³)

share of days per year, population-weighted mean

North–south gradient

Northern regions (Northern, Savannah, North East, Upper East, Upper West) vs rest

Skill by model

R² (higher is better) — baselines vs GH-PM25 stages
Table view

Observed vs predicted

GH-PM25 final product, density of station-days, log axes

What drives the predictions

mean |SHAP| (log-space), LightGBM member

Residual spatial correlation

empirical correlogram and fitted exponential model

Prediction-interval coverage

Low-cost sensor calibration

against co-located BAM-1020 (≤10 km), month-blocked CV

Feature-group ablation (leave-cluster-out)

Per-site accuracy

leave-city-cluster-out, sites with ≥30 days

One day, full 1-km grid

generated in your browser · no sign-up

GeoTIFF3 bands, float32, EPSG:4326, 455 × 650 cells at 0.01° (≈1.1 km). Band 1 daily mean PM2.5, band 2 lower and band 3 upper bound of the 90% prediction interval, µg/m³. Cells outside Ghana are −9999 (nodata). Opens directly in QGIS, ArcGIS, R (terra) and Python (rasterio).
CSVOne row per land cell: lat, lon, pm25, lower90, upper90, cams_pm25, inside_aoa. About 195,000 rows.
PrecisionThese files are rebuilt from the portal's map encoding. The mean is exact to 0.1 µg/m³; interval bounds are exact to about 0.4% (lower) and 2.5% (upper) of the mean. For analysis-grade values use the NetCDF archive.

Archive

permanent files on GitHub Releases

Daily NetCDF-4 (CF-1.8), one zip per month

Mean maps (GeoTIFF) and statistics

NetCDF variables

file GH-PM25_1km_YYYYMMDD.nc
VariableUnitsDescription
pm25µg m⁻³Daily (00–24 UTC) mean PM2.5, GH-PM25 final product
pm25_lower90, pm25_upper90µg m⁻³Bounds of the 90% conformal prediction interval
pm25_stage1µg m⁻³Stage-1 ensemble prediction (before any geostatistical correction)
cams_pm25µg m⁻³CAMS global PM2.5 input, bilinearly interpolated
log_sigmaln unitsPredicted absolute log-error scale used for the interval
aoa_di, inside_aoaDissimilarity index and area-of-applicability flag (1 inside, 0 outside, −1 no data)

Grid: regular latitude–longitude, cell centres from 3.295°W to 1.245°E and 11.195°N to 4.705°N. PM2.5 fields are stored as scaled int16 (scale factor 0.1).

Use in code

Python example
import io, zipfile, requests, xarray as xr
url = "…/GH-PM25_1km_daily_2026-01.zip"
z = zipfile.ZipFile(io.BytesIO(requests.get(url).content))
z.extractall("gh-pm25")
ds = xr.open_mfdataset("gh-pm25/**/*.nc", combine="nested", concat_dim="time")
accra = ds.pm25.sel(lat=5.60, lon=-0.19, method="nearest").to_series()

Citation and attribution

GH-PM25: daily 1-km PM2.5 for Ghana (version 1.0). Derived from OpenAQ, US Department of State AirNow, Copernicus CAMS, NASA MERRA-2/POWER, NOAA/NASA VIIRS, ESA WorldCover, Copernicus DEM, WorldPop, OpenStreetMap and geoBoundaries data. Please acknowledge these sources when using the product.