Technical report · Air quality · Ghana

GH-PM25: daily 1-km fine particulate matter for Ghana

Data sources, sensor harmonisation, a hybrid machine-learning–geostatistical downscaling algorithm, uncertainty quantification, validation, and the operational monitoring system.

Product
GH-PM25 v1.0.0
Variable
24-h mean PM2.5, µg m⁻³
Grid
0.01° WGS84 (≈1.1 km), 650 × 455
Extent
3.30°W–1.25°E, 4.70–11.20°N
Training record
2024-08-01 → 2026-09-10
Training data
33,097 station-days, 187 sites
Latency
D+1 forecast · D0 nowcast · D−7 final
Uncertainty
90% conformal interval per cell
Spatial CV R² / RMSE
0.75 / 5.3 µg m⁻³
Formats
NetCDF-4 CF-1.8, GeoTIFF, CSV, web

Executive summary

GH-PM25 is a daily map of fine particulate matter (PM2.5) for all of Ghana at about 1 km resolution. It runs automatically each day and has a public web portal. The product combines ground measurements with atmospheric-composition modelling, reanalysis weather, satellite fire detections and detailed land-surface information. Every modelling choice (hyperparameters, ensemble composition, strength of geostatistical correction) was selected under spatial cross-validation rather than random cross-validation. Each pixel carries a distribution-free prediction interval.

Key findings

  • Training data. 33,097 daily observations from 187 monitors (84 in Ghana, 18,395 station-days) were quality-controlled and harmonised to US State Department BAM-1020 reference monitors.
  • Accuracy in unseen cities. Predicting whole cities the model never saw (leave-city-cluster-out cross-validation), GH-PM25 reaches R² = 0.75, RMSE = 5.3 µg m⁻³ and MAE = 3.4 µg m⁻³. For Ghanaian stations: R² = 0.69, RMSE = 4.1 µg m⁻³.
  • Improvement over the global model. The raw CAMS global model scores R² = 0.06 (RMSE = 10.2 µg m⁻³); GH-PM25 cuts RMSE by 48%. A gradient-boosting model with the aerosol-optical-depth, meteorology and day-of-year inputs typical of earlier work reaches R² = 0.64 under the same test.
  • Optimistic random CV. Random 10-fold cross-validation, the design behind many headline numbers in the literature, gives R² = 0.92. The gap to the spatial score shows why spatial validation is needed.
  • Uncertainty. The 90% prediction intervals cover 90.1% of held-out observations in unseen cities.
  • Record length. 769 daily maps have been produced so far.

In Accra, over 517 matched days, GH-PM25 reached r = 0.96 and RMSE = 2.5 µg/m³ out-of-sample, compared with r = 0.81 and RMSE = 8.2 µg/m³ for the Anand et al. (2026) product.

1Background and objectives

Ambient PM2.5 is the leading environmental health risk in West Africa. Ghana's air-quality problem has two parts. In the south, rapidly growing cities (Greater Accra, Kumasi, Sekondi-Takoradi) add traffic, waste burning, industry and domestic biomass fuels. Nationwide, the Harmattan (roughly December–February) brings Saharan mineral dust and smoke from savanna burning. In Accra, measured PM2.5 during the Harmattan has averaged about 90 µg m⁻³, against about 22 µg m⁻³ outside it (Alli et al., 2021; 2023). The WHO 2021 guideline for 24-hour PM2.5 is 15 µg m⁻³, and Ghana EPA's national 24-hour standard (GS 1236:2019) is 35 µg m⁻³.

Regulatory monitoring is sparse. Until early 2025 the only continuous reference-grade monitor with open data was the US Embassy BAM-1020 in Accra. Low-cost sensor networks have since grown fast: Breathe Accra (Clarity) from 2024, AirGradient deployments by the University of Ghana, Afri-SET and Ghana EPA, and a national Clarity network in regional capitals from 2026. Without calibration and a spatial model, these networks describe only where sensors happen to be.

The most recent km-scale product for Ghana (Anand et al., 2026) was trained with XGBoost on MAIAC AOD, OMI/TROPOMI trace gases, ERA5-Land and MERRA-2. It reports R² = 0.72 under random cross-validation, falling to 0.49–0.57 when leaving out locations. Its hyperparameters were tuned on random folds, it gives no pixel-level uncertainty, and it uses no land-use, population, road or fire information. GH-PM25 was designed to close these gaps:

  1. Harmonise low-cost sensors to reference-grade monitors before training, with network-specific corrections chosen by cross-validation and guarded against extrapolation.
  2. Use predictors that carry real kilometre-scale information (built-up area, population, night-time lights, roads, terrain) and physically meaningful dynamic information: ventilation, dust fraction, and upwind fire radiative power.
  3. Train on a regional West African network, so dust and smoke regimes rare in Ghana's coastal cities are represented.
  4. Combine heterogeneous learners into a robust ensemble, and test whether same-day residual kriging adds skill before using it.
  5. Give every pixel a calibrated prediction interval and an area-of-applicability flag.
  6. Evaluate with validation designs that stop information leaking from nearby monitors, and tune and select models under those designs only.
  7. Run operationally with open, keyless data services: nowcast, one-day forecast and weekly final reprocessing, published to an interactive portal.

2Domain and product design

The mapping grid is a regular 0.01° latitude–longitude lattice (≈1.11 km at the equator) covering Ghana from 3.30°W to 1.25°E and 4.70°N to 11.20°N. It has 650 rows and 455 columns; cells whose centres fall inside the geoBoundaries national outline are mapped. The day is 00–24 UTC, which is also Ghana's local time. Model training uses a wider regional domain (9°W–9°E, 4–13.5°N) that includes monitors in Côte d'Ivoire, Togo, Burkina Faso, Mali and Nigeria. The training record starts on 2024-08-01, the first day of CAMS global composition fields in the archive used.

3Data

3.1Ground monitors

Ground data come from two keyless archives:

  • OpenAQ public archive (s3://openaq-data-archive, one gzip CSV per location per day) for low-cost networks and the State Department monitors it redistributes.
  • AirNow "EmbassyHistorical" files (files.airnowtech.org) for the Lomé and Ouagadougou reference monitors, and to fill gaps at Accra and Abidjan.

No OpenAQ location metadata dump exists, so Ghanaian and regional location IDs were found by listing every location prefix in the archive (55,567 locations), reading coordinates from each location's first file, and pulling operator details from the public explorer pages.

Hourly quality control:

  1. physical range 0 < PM2.5 ≤ 1000 µg m⁻³, and conversion of sub-hourly records to hourly means;
  2. removal of stuck sensors (≥ 6 identical consecutive hours);
  3. a Hampel spike filter (|x − 25-h rolling median| > max(6 × 1.4826 × MAD, 30 µg m⁻³)).

A daily mean is kept only with at least 12 valid hours and at least 2 hours in each 6-hour block, so the diurnal cycle is represented. One network (Aurassure, Nigeria) was excluded after screening because its daily values were physically implausible.

Table 2. Ground monitoring data used for training after QC (33,097 station-days, 187 sites).
CountryNetwork / operatorGradeSitesStation-daysFromToMean rawMean calibrated
BFAurassureLow-cost optical1992026-042026-0911.740.6
BFUS Embassy (AirNow)Reference BAM-10201572024-082025-0339.039.0
CIData354Low-cost optical214,9102024-082026-098.718.7
CIClarityLow-cost optical101,3712026-012026-0918.827.0
CIStateAir AbidjanReference BAM-102012092024-092025-0425.225.2
CIAirGradientLow-cost optical1232026-052026-0814.414.8
GHClarityLow-cost optical6813,3482024-082026-0922.017.9
GHAirGradientLow-cost optical144,8662024-082026-0924.919.2
GHStateAir AccraReference BAM-102011552024-082026-0521.521.5
GHUnknownLow-cost optical1262025-102025-1132.928.1
NGAirGradientLow-cost optical395,6352025-022026-0930.424.9
NGIQAirLow-cost optical31,1012025-082026-0927.723.5
NGClarityLow-cost optical15012024-082026-0523.121.5
NGMiri AfricaLow-cost optical93032026-032026-0413.319.7
NGAirNowReference BAM-102022762024-082025-0331.731.7
NGAirQoLow-cost optical131232026-052026-0931.122.4
TGUS Embassy (AirNow)Reference BAM-10201942024-112025-0354.954.9
Figure 1. Ground monitors used for training. (a) Regional training domain; (b) Ghana. Marker size is proportional to the number of
Figure 1. Ground monitors used for training. (a) Regional training domain; (b) Ghana. Marker size is proportional to the number of valid station-days; triangles mark US State Department BAM-1020 reference monitors.
Figure 2. Monthly station-days available for training by country and network. The Ghanaian network grows sharply after August 2024
Figure 2. Monthly station-days available for training by country and network. The Ghanaian network grows sharply after August 2024 (Breathe Accra) and February 2026 (national Clarity deployment by Ghana AQ).

3.2Low-cost sensor harmonisation

Optical sensors over-read at high humidity (hygroscopic growth) and under-read coarse dust, and the size of these errors varies by manufacturer. Each low-cost site within 10 km of a BAM-1020 was paired with the reference daily mean for the same day. For each network, three corrections were compared by month-blocked cross-validation:

  • identity (no correction);
  • a constant multiplicative ratio;
  • a robust (Huber) log-linear model:
\[ \ln \mathrm{PM}_{\mathrm{ref}} = a + b \,\ln \mathrm{PM}_{\mathrm{lcs}} + c\, \mathrm{RH}^{*}, \qquad \mathrm{RH}^{*} = \operatorname{clip}\!\left(\mathrm{RH},\, \mathrm{RH}_{2\%},\, \mathrm{RH}_{98\%}\right),\quad b \in [0.4, 1.3] \]

RH is MERRA-2 relative humidity at the sensor, so any sensor can be corrected even without an on-board humidity channel. Humidity is clamped to the range seen in co-location. This matters because coastal Accra rarely has the very dry Harmattan air found inland, and an unconstrained humidity term produced implausible corrections in early tests.

Correction models are applied hierarchically: network first, then sensor family, then all low-cost sensors pooled. Each observation carries its calibration uncertainty \( \sigma_{\mathrm{cal}} \) forward into the training weights. Networks whose calibrated cross-validated R² stays below 0.30 are excluded.

Table 3. Low-cost sensor harmonisation: raw vs month-blocked cross-validated calibrated agreement with BAM-1020 (µg/m³).
NetworkPairsSensorsMean dist. kmRH range %Max ref.Selected modelR² rawR² cal.MAE rawMAE cal.Bias rawBias cal.Excluded
CI · Data3541,456134.360-93110loglinear-0.450.3713.28.6-12.4-1.6no
GH · AirGradient92148.463-9499loglinear0.400.676.13.14.8-0.7no
GH · Clarity1,173345.067-9462loglinear-0.280.568.35.35.9-0.6no
GH · Clarity (legacy 2022-23)27628.162-93258loglinear0.210.5018.514.8-16.7-6.5no
Figure 3. Quasi-co-located daily pairs (sensor within 10 km of a BAM-1020, same day) before (top) and after (bottom) network-speci
Figure 3. Quasi-co-located daily pairs (sensor within 10 km of a BAM-1020, same day) before (top) and after (bottom) network-specific harmonisation.

3.3Atmospheric composition and meteorology

CAMS global composition. The ECMWF CAMS global analyses and forecasts (IFS-COMPO, 0.4°, 3-hourly) assimilate MODIS and VIIRS aerosol optical depth and supply surface PM2.5, PM10, dust, AOD 550 nm, CO and NO₂. They were retrieved through the Open-Meteo air-quality API at 126 lattice nodes (0.8° spacing aligned to the native grid, plus the nodes surrounding every out-of-country station) and averaged to daily means. The free service limits request volume, so downloads are paced with a token bucket.

MERRA-2 weather and aerosol. Meteorology and aerosol come from NASA POWER (MERRA-2, with GEOS FP-IT for recent days; 0.5° × 0.625°):

  • near-surface temperature, humidity and dew point;
  • precipitation (IMERG-corrected);
  • 10-m winds and surface pressure;
  • downward shortwave radiation and cloud fraction;
  • MERRA-2 total AOD;
  • the pressure at the top of the planetary boundary layer, converted to a depth with the hypsometric relation \( h \approx H \ln(p_s/p_{\mathrm{PBL}}) \), H = 8.4 km.

Forecast and nowcast days. For days not yet in POWER, ECMWF IFS 0.25° forecasts are used. They are mapped to MERRA-2 by per-node linear regression over the most recent 45 overlapping days, which removes the systematic difference between the two models.

3.4Fires

Biomass burning is a major PM2.5 source in the savanna belt, yet the baseline product did not use fire data. GH-PM25 uses a single-sensor record from Suomi-NPP VIIRS at 375 m, giving 3,221,152 quality-screened detections:

  • 2022–2024: NASA FIRMS yearly country archives (VNP14IMG);
  • From 2025: the NOAA Enterprise VIIRS I-band fire EDR (EFIRE v1r3), published keyless on the NOAA Open Data Dissemination bucket with about 1–2 h latency. The legacy AF-Iband EDR ends in February 2025.

Detections with nominal or high confidence, no persistent-anomaly flag (gas flares, industry) and valid FRP are kept.

A full day of EFIRE holds about 1,000 granules, so GH-PM25 selects granules with a simple sun-synchronous orbit model:

  1. about a dozen probe granules each day give nadir position and pass direction from their embedded geolocation grid;
  2. these yield the ascending-node time and longitude, \( \phi(t)=\arcsin(\sin i\,\sin u),\ u=2\pi(t-t_\Omega)/P \);
  3. only granules whose nadir track passes within one swath of West Africa are read.

A first approach based on 16-day repeat-cycle templates failed because of along-track timing drift, which is why the orbit model is used. Across 10 independent QA days the selection read on average 33 of 589 candidate granules and captured 100.0%–100.0% of fire radiative power. On 13 overlapping days in late 2024 the median EFIRE/FIRMS ratio was 1.009 for FRP and 1.006 for detection counts.

Figure 18. Fire record quality assurance: (a) share of FRP captured by the orbit-model granule selection compared with an exhaustiv
Figure 18. Fire record quality assurance: (a) share of FRP captured by the orbit-model granule selection compared with an exhaustive scan; (b) EFIRE vs FIRMS daily regional FRP during the 2024 overlap.

3.5Static 1-km covariates

Kilometre-scale spatial structure comes from:

  • ESA WorldCover 2021 (10 m): land-cover class fractions.
  • Copernicus DEM GLO-90: mean elevation, sub-grid roughness, and elevation relative to the surrounding 10 km.
  • WorldPop R2025A 2024: constrained, UN-adjusted population density.
  • VIIRS DNB monthly composites (World Bank "Light Every Night"): median night-time radiance over November–February.
  • OpenStreetMap (motorway to secondary roads): major-road density and distance to the nearest major road.
  • Natural Earth: distance to the coast.

Cloud-optimised GeoTIFFs are read in windows over HTTP and aggregated to the 0.01° lattice. Urban layers also get 3-km and 10-km Gaussian neighbourhood versions that represent upwind and area-source influence.

Figure 4. Examples of static predictors on the 0.01° grid.
Figure 4. Examples of static predictors on the 0.01° grid.

3.6Data provenance

Table 1. Input datasets, roles and access (all keyless).
DatasetProviderResolutionAccess pointLatencyRole
OpenAQ archiveOpenAQ; operators Clarity, AirGradient, Data354, IQAir…point, ≤hourlyopenaq-data-archive.s3.amazonaws.com1–3 dtarget (calibrated)
BAM-1020 embassy monitorsUS Department of State / AirNowpoint, hourlyfiles.airnowtech.org/airnow/EmbassyHistorical1 d (Accra feed halted Mar 2025)reference, calibration
CAMS global compositionECMWF / Copernicus0.4°, 3-hourlyair-quality-api.open-meteo.comforecastpredictors
MERRA-2 / GEOS FP-ITNASA GMAO via NASA POWER0.5° × 0.625°, dailypower.larc.nasa.gov/api/temporal/daily/regional1–3 dpredictors
ECMWF IFS 0.25°ECMWF via Open-Meteo0.25°, hourlyapi.open-meteo.com/v1/forecastforecastnowcast/forecast met
VIIRS 375 m firesNASA FIRMS; NOAA NESDIS EFIRE375 mfirms.modaps.eosdis.nasa.gov/data/country; noaa-nesdis-snpp-pds~2 hfire predictors
ESA WorldCover v200ESA10 mesa-worldcover.s3.eu-central-1.amazonaws.comstaticland cover
Copernicus DEM GLO-90ESA / Airbus90 mcopernicus-dem-90m.s3.amazonaws.comstaticterrain
WorldPop R2025AUniversity of Southampton30″data.worldpop.orgstaticpopulation, exposure weights
VIIRS DNB monthlyWorld Bank / NOAA EOG15″globalnightlight.s3.amazonaws.comstaticnight lights
OpenStreetMap roadsOSM contributorsvectorOverpass APIstaticroads
geoBoundaries GHA ADM0–2William & Mary geoLabvectorGitHub releasestaticmask, statistics

4Methods

4.1Predictors

70 predictors are built identically for station-days and grid cells:

  • dynamic fields bilinearly interpolated from their native lattices;
  • 1–2-day lags and 3-day accumulations;
  • derived physical terms: ventilation coefficient (PBL depth × wind speed), dust fraction (dust / PM10), wind-direction components;
  • fire terms: total FRP within 25 and 100 km, and an upwind-weighted influence \( I(x)=\ln\!\big(1+\sum_j \mathrm{FRP}_j \max(\cos\theta_j,0)\, e^{-d_j/150\,\mathrm{km}}\big) \), where \( \theta_j \) is the angle between the fire-to-target vector and the mean 10-m wind;
  • static covariates and calendar terms.

The full list is in Appendix A.

4.2Stage 1: heterogeneous stacked ensemble

Four learners with different inductive biases and target formulations are trained on \( y=\ln \mathrm{PM2.5} \):

  • M1 LightGBM (leaf-wise boosting);
  • M2 XGBoost on the multiplicative CAMS correction \( y-\ln \mathrm{CAMS} \), so it learns where and when CAMS is biased;
  • M3 CatBoost (ordered boosting with symmetric trees);
  • M4 ExtraTrees (randomised, low-variance trees).

Each learner's hyperparameters were tuned by random search under leave-city-cluster-out cross-validation, using a fold assignment independent of the evaluation folds (Appendix B). Tuning under random folds would reward models that memorise near-duplicate neighbours.

Sample weights down-weight dense city clusters and noisier observations:

\[ w_i = \frac{1}{\sqrt{n_{\mathrm{sites}}(\mathrm{cluster}_i)}}\cdot \frac{0.2^2+0.1^2}{0.2^2+\sigma_{\mathrm{cal},i}^2} \]

The learners are combined in log space, with the combination rule chosen from 16 candidates:

  • a non-negative least-squares stack \( \hat y^{(1)} = \sum_k \beta_k \hat y_k + \beta_0 \) (\( \beta_k\ge 0,\ \sum_k\beta_k = 1 \));
  • equal-weight averages of each of the 15 non-empty subsets of learners.

The selection criterion was fixed before scoring: the highest mean R² across leave-city-cluster-out, leave-site-out and leave-month-out validation, computed for both all stations and Ghanaian stations. Stack weights were always fitted nested, without the held-out fold, because fitting them on the same out-of-fold predictions inflated R² by 0.01–0.04.

The NNLS stack scored highest on in-sample weights (LightGBM 0.61, ExtraTrees 0.35) but transferred poorly to Ghanaian stations. The equal-weight CatBoost + ExtraTrees average was the most robust and is the operational ensemble; the resulting weights are LightGBM 0.00, XGBoost-ratio 0.00, CatBoost 0.50, ExtraTrees 0.50. The full ranking is in outputs/ensemble_selection.csv. Predictions are converted back from log space with Duan's smearing factor (1.059).

4.3Stage 2: same-day residual kriging (evaluated, strength selected by validation)

Stage-1 residuals combine a persistent per-station offset (sensor calibration error, micro-environment) with a day-specific anomaly. The offset is estimated as a shrunken mean,

\[ r_{it} = \ln y_{it} - \hat y^{(1)}_{it} = b_i + e_{it},\qquad \hat b_i = \frac{\sum_t r_{it}}{n_i + 15} \]

and only the anomalies \( e_{it} \) are kriged, as a zero-mean Gaussian field with covariance \( C(d)=\sigma_s^2 e^{-d/L} + \tau^2 \mathbb{1}_{d=0} \). The parameters are fitted by weighted least squares to the pooled same-day correlogram of leave-cluster-out anomalies: \( c_0 \) = 0.41, L = 10 km.

The kriged anomaly enters as \( \hat y = \hat y^{(1)} + \lambda\, \hat e(x) \). The strength \( \lambda \in [0,1] \) is selected by leave-site-out validation, which mirrors the case where Stage 2 should help most: an unmonitored place inside a monitored city. The selected value was \( \lambda \) = 0.0. Section 5.2 shows why.

4.4Stage 3: uncertainty and area of applicability

Prediction intervals use locally adaptive split-conformal inference (Lei et al., 2018):

  1. A scale model \( \hat\sigma(x) \) (LightGBM) predicts the absolute log-error from the kriging variance, distance to the nearest same-day monitor, monitor density within 100 km, CAMS PM2.5, dust fraction, humidity, PBL depth, population, latitude, season and fire activity. It is cross-fitted by city cluster.
  2. The conformity score is \( s_i=|r_i|/\hat\sigma(x_i) \), computed from leave-city-cluster-out residuals.
  3. With \( q_{0.9} \) = 2.09 the finite-sample quantile of the scores, the interval is \( [\exp(\hat y-q\hat\sigma),\ \exp(\hat y+q\hat\sigma)] \).

Coverage is checked in a nested way: the quantile for each held-out cluster fold is computed only from the other folds.

A dissimilarity index (Meyer & Pebesma, 2021) is computed on the 20 most important predictors, weighted by importance. Cells beyond the cross-validated threshold are flagged as outside the area of applicability.

4.5Validation design

Low-cost networks cluster tightly within cities, so random cross-validation leaks information between near-duplicate neighbours (Just et al., 2020; Ploton et al., 2020). Four designs are reported, from most to least optimistic:

  • Random 10-fold over station-days, for comparison with the literature;
  • Leave-month-out (10 folds of calendar months);
  • Leave-site-out (10 folds of sites);
  • Leave-city-cluster-out: sites grouped by complete-linkage clustering at 30 km, 10 folds of clusters. This is the primary design. It asks whether the model can map a city with no monitors.

All Stage-2 results use only same-day observations outside the held-out fold.

Baselines:

  • raw CAMS;
  • CAMS with a log-linear bias correction on humidity, PBL depth and dust fraction;
  • a gradient-boosting model with only AOD, near-surface meteorology and day-of-year, the predictor family of earlier Ghana products.

Metrics are R², Pearson r, RMSE, MAE, mean bias, normalised mean bias and the regression slope, all in µg m⁻³ on the original scale.

4.6Operational system

The daily run (scripts/run_daily.py, scheduled at 06:30 UTC) refreshes each input incrementally:

  1. CAMS analyses and forecast;
  2. MERRA-2 from POWER, extended with bias-adjusted IFS;
  3. the last 10 days of VIIRS fires;
  4. the last 12 days of OpenAQ observations, calibrated with the stored network models.

It then re-maps D−7 to D+1 and publishes the portal. Each day carries a product tier:

  • forecast (D+1): no observations;
  • nowcast (D0);
  • near-real-time (D−1 to D−6): re-processed as late data arrive;
  • final (≥ D−7).

A failed input is logged and the run continues with what is available; source freshness is published to the portal. The system is retrained every four weeks with the new ground data. Windows Task Scheduler and GitHub Actions definitions are provided.

5Results

5.1Sensor harmonisation

Table 3 and Figure 3 summarise calibration. Ghanaian AirGradient and Clarity sensors read higher than the Accra BAM-1020, while the Abidjan Data354 network reads well below the Abidjan reference. After correction, cross-validated bias is close to zero for the networks with co-location data, and MAE falls for every network with enough pairs. The co-location record has few days above about 60 µg m⁻³ and few dry days. That is a known limitation for the Harmattan peak, discussed in Section 6.

5.2Cross-validated accuracy

Table 5. Cross-validated skill for all 33,097 station-days (RMSE in µg/m³). Bold row: operational product.
ModelRandom R²RMSEMonth-out R²RMSESite-out R²RMSECluster-out R²RMSE
CAMS global (raw, bilinear)0.0610.20.0610.20.0610.20.0610.2
CAMS + log-linear bias correction0.408.20.308.80.328.70.119.9
GBDT with AOD + meteorology + day-of-year (baseline-style)0.765.10.636.40.735.50.646.4
M1 LightGBM, ln PM0.913.20.834.40.784.90.735.5
M2 XGBoost, ln(PM/CAMS)0.863.90.725.60.705.80.586.9
M3 CatBoost, ln PM0.932.80.863.90.775.00.735.5
M4 ExtraTrees, ln PM0.913.20.824.50.775.10.735.4
GH-PM25 ensemble (Stage 1)0.923.00.854.00.775.00.755.3
GH-PM25 final (operational)0.923.00.854.00.775.00.755.3
Figure 5. R² and RMSE for baselines, the four base learners and the GH-PM25 stages under four validation designs.
Figure 5. R² and RMSE for baselines, the four base learners and the GH-PM25 stages under four validation designs.
Figure 6. Out-of-fold predictions of the final product against observations for each validation design (log–log density).
Figure 6. Out-of-fold predictions of the final product against observations for each validation design (log–log density).

Ranking of designs. Skill falls in the expected order as validation gets stricter: random R² = 0.92, leave-month-out 0.85, leave-site-out 0.77, leave-city-cluster-out 0.75. The drop from random to cluster-out CV is the information leakage that random validation hides.

Ensemble vs single learners. Under leave-city-cluster-out the best single learner, M4 ExtraTrees, ln PM, reaches R² = 0.73, while the operational ensemble reaches 0.75. The ensemble's main benefit is robustness: no single learner is best across every design and subset (Table 5, ensemble_selection.csv).

CAMS contributes little. Raw CAMS explains almost none of the day-to-day and site-to-site variance (R² = 0.06). Dropping every CAMS-derived predictor does not reduce spatial skill (Table 9). Over Ghana, the synoptic signal is carried almost entirely by MERRA-2 humidity, winds and boundary-layer depth, plus seasonality. The CAMS-ratio learner therefore receives zero weight.

Stage-2 kriging: a negative result worth reporting

Residual kriging is common in hybrid PM2.5 models, but here it did not add skill. Without offset removal, kriging raw residuals lowered leave-site-out R². With offset removal, the day-specific anomaly correlogram is short-ranged (\( c_0 \) = 0.41, L = 10 km). Leave-site-out R² still falls steadily as \( \lambda \) rises from 0 to 1 (outputs/stage2_lambda_scan.csv), and under leave-city-cluster-out the change is within ±0.003.

In dense low-cost networks the day-to-day residual at one sensor is mostly calibration noise that does not transfer to its neighbours. Stage 1 already captures the transferable spatial structure through urban-form and population predictors. The operational product therefore uses \( \lambda \) = 0.0. Observation proximity still informs the uncertainty model, and the kriging machinery is retained so \( \lambda \) is re-selected automatically at each retraining as reference monitoring improves.

Table 6. Final-product skill by subset under leave-city-cluster-out cross-validation (µg/m³).
SubsetnMean obs.rRMSEMAEBiasSlopeCAMS R²CAMS RMSE
All stations33,09720.40.750.875.33.40.30.730.0610.2
Ghana18,39518.30.690.854.12.70.50.87-0.418.9
Ghana, BAM-1020 reference15521.50.770.885.23.7-0.70.730.1110.3
All BAM-1020 reference79131.30.590.7716.710.61.60.570.5417.8
Ghana south of 8°N18,11718.10.690.854.12.70.40.85-0.408.7
Ghana north of 8°N27828.90.600.915.24.13.51.01-3.4517.5
Harmattan (Dec–Feb)7,07829.50.710.847.74.70.20.710.1213.4
Mar–Nov26,01918.00.660.824.43.00.40.63-0.479.1
Figure 7. Leave-city-cluster-out skill by subset for raw CAMS, the baseline-style GBDT and GH-PM25.
Figure 7. Leave-city-cluster-out skill by subset for raw CAMS, the baseline-style GBDT and GH-PM25.
Figure 10. Per-site R² and RMSE under leave-city-cluster-out cross-validation.
Figure 10. Per-site R² and RMSE under leave-city-cluster-out cross-validation.

5.3Benchmarking against the existing Ghana product

The Anand et al. (2026) city-level daily series (Zenodo 19636051) was compared with city-mean calibrated observations within 15 km of each city centre, on days where both exist. GH-PM25 values in this comparison are leave-city-cluster-out predictions, meaning the whole city was withheld from training. The Anand et al. product, by contrast, included monitors in these cities during training, so on that count the comparison favours it.

A caveat runs the other way. The "observations" are low-cost sensors harmonised to the US Embassy BAM-1020 with this work's calibration, while Anand et al. used their own co-location corrections. Differences in bias and RMSE therefore partly reflect different calibration references. The correlation coefficient is unaffected by any linear recalibration, so it is the most robust basis for comparison.

Table 7. Head-to-head evaluation against city-mean observations on identical days. GH-PM25 values are out-of-sample (leave-city-cluster-out); the Anand et al. (2026) product was trained with monitors in these cities, so its scores are partly in-sample.
CityProductDaysPeriodMean obs.rRMSEMAEBias
AccraGH-PM25 (this work, leave-cluster-out)5172024-08–2025-1219.00.960.902.51.50.8
AccraAnand et al. 2026 product5172024-08–2025-1219.00.81-0.088.27.26.7
AccraCAMS raw5172024-08–2025-1219.00.83-0.208.67.6-6.8
KumasiGH-PM25 (this work, leave-cluster-out)722025-09–2025-1222.80.820.655.24.10.3
KumasiAnand et al. 2026 product722025-09–2025-1222.80.52-0.8311.89.37.9
KumasiCAMS raw722025-09–2025-1222.80.56-1.1212.810.5-10.5
TemaGH-PM25 (this work, leave-cluster-out)4122024-08–2025-1220.30.930.744.23.20.5
TemaAnand et al. 2026 product4122024-08–2025-1220.30.810.147.66.55.8
TemaCAMS raw4122024-08–2025-1220.30.82-0.289.38.1-7.0
KoforiduaGH-PM25 (this work, leave-cluster-out)452025-11–2025-1219.70.95-2.306.76.56.5
KoforiduaAnand et al. 2026 product452025-11–2025-1219.70.34-23.0718.117.117.1
KoforiduaCAMS raw452025-11–2025-1219.70.52-2.897.36.6-6.5
SomanyaGH-PM25 (this work, leave-cluster-out)372024-08–2024-109.30.53-8.729.89.49.4
SomanyaAnand et al. 2026 product372024-08–2024-109.30.19-15.2212.712.212.2
SomanyaCAMS raw372024-08–2024-109.30.19-0.273.62.5-1.3
Figure 15. Accra: city-mean observations, GH-PM25 (out-of-sample) and the Anand et al. (2026) product on matched days.
Figure 15. Accra: city-mean observations, GH-PM25 (out-of-sample) and the Anand et al. (2026) product on matched days.
Figure 16. Median monthly ratio of CAMS to BAM-1020 PM2.5 at reference monitors.
Figure 16. Median monthly ratio of CAMS to BAM-1020 PM2.5 at reference monitors.

5.4What drives the predictions

Figure 8. SHAP analysis of the LightGBM member: (a) global importance; (b) dependence plots for leading predictors (log-space cont
Figure 8. SHAP analysis of the LightGBM member: (a) global importance; (b) dependence plots for leading predictors (log-space contributions).
Table 10. Top-15 predictors by mean absolute SHAP value.
Predictormean |SHAP| (ln µg/m³)
rh0.1030
cams_pm100.0364
doy_cos0.0327
log_pop0.0206
cams_co0.0180
cams_dust0.0175
lc_crop_s10km0.0168
t2m_range0.0161
rh_lag10.0156
cams_pm25_3d0.0156
td2m0.0148
cams_pm250.0141
doy_sin0.0137
lon0.0131
t2m0.0130
Table 9. Feature-group ablation (single LightGBM, leave-city-cluster-out).
VariantSubsetFeaturesRMSEMAEBias
all_featuresall700.7305.473.39-0.72
all_featuresghana700.6494.432.67-0.37
no_staticall440.7185.593.49-0.98
no_staticghana440.6704.302.75-0.84
no_fireall670.7295.483.40-0.65
no_fireghana670.6564.392.67-0.25
no_camsall570.7365.413.36-0.80
no_camsghana570.6704.302.63-0.43
no_coordsall680.7275.503.43-0.65
no_coordsghana680.6514.422.67-0.17
no_merra_metall470.5776.854.28-0.65
no_merra_metghana470.6214.603.08-0.00
Figure 17. Feature-group ablation.
Figure 17. Feature-group ablation.

5.5Uncertainty and spatial dependence

Figure 9. (a) Pooled same-day residual correlogram and fitted exponential model used for kriging; (b) empirical coverage of 90% an
Figure 9. (a) Pooled same-day residual correlogram and fitted exponential model used for kriging; (b) empirical coverage of 90% and 68% conformal intervals; (c) absolute error versus distance to the nearest same-day monitor.
Table 8. Empirical coverage of the conformal prediction intervals (nested leave-city-cluster-out).
SubsetNominalEmpirical coverageMedian width µg/m³n
All stations90%90.1%14.233,097
Ghana90%90.8%12.918,395
Ghana, BAM-1020 reference90%97.4%23.1155
All BAM-1020 reference90%71.3%23.4791
Ghana north of 8°N90%98.6%22.3278
Ghana south of 8°N90%90.7%12.818,117
Harmattan (Dec–Feb)90%91.7%18.77,078
Mar–Nov90%89.6%13.326,019
All stations68%70.2%6.933,097
Ghana68%76.2%6.318,395
Ghana, BAM-1020 reference68%84.5%10.8155
All BAM-1020 reference68%45.4%11.1791
Ghana north of 8°N68%81.7%10.9278
Ghana south of 8°N68%76.2%6.318,117
Harmattan (Dec–Feb)68%71.8%9.17,078
Mar–Nov68%69.7%6.426,019

The residual correlogram shows correlation decaying over tens of kilometres ( \( c_0 \) = 0.41, L = 10 km). Kriging therefore sharpens maps inside and around monitored cities, but adds little in the sparsely monitored north. The scale model captures this: intervals widen with distance from monitors and during the Harmattan.

5.6Maps

Figure 11. Daily 1-km PM2.5 with 90% interval bounds, and the CAMS input, for the most polluted Harmattan day and the cleanest wet-
Figure 11. Daily 1-km PM2.5 with 90% interval bounds, and the CAMS input, for the most polluted Harmattan day and the cleanest wet-season day in the record.
Figure 12. Kilometre-scale structure in the three largest urban areas.
Figure 12. Kilometre-scale structure in the three largest urban areas.
Figure 13. Long-term and seasonal mean PM2.5.
Figure 13. Long-term and seasonal mean PM2.5.

5.7Population exposure

Figure 14. (a) National population-weighted PM2.5 with 90% interval (7-day means); (b) population-weighted means for the five north
Figure 14. (a) National population-weighted PM2.5 with 90% interval (7-day means); (b) population-weighted means for the five northern regions versus the rest of Ghana (30-day means).
Table 11. National exposure summary by year (partial years flagged by day count).
YearDaysPop.-weighted mean µg/m³Days national pop.-weighted >35Mean share of pop. >15Mean share of pop. >35
2024.015026.0390.6880.251
2025.036524.8600.7690.193
2026.025422.7310.6420.158
Table 12. Annual mean population-weighted PM2.5 by region (µg/m³).
Region202420252026
Upper East Region29.033.234.2
Upper West Region28.832.533.4
Northern Region33.234.933.1
North East Region29.232.432.9
Savannah Region32.533.431.5
Bono East Region33.231.629.2
Oti Region31.229.028.4
Bono Region32.831.026.3
Ahafo Region29.927.822.9
Ashanti Region27.826.622.4
Volta Region26.623.321.8
Eastern Region23.722.119.3
Western North Region23.821.618.0
Greater Accra Region21.919.618.0
Central Region19.216.815.3
Western Region18.816.415.2

6Discussion and limitations

What is new compared with existing products

  • Honest validation. The ensemble is selected and weighted under leave-city-cluster-out validation, and all four designs are reported side by side.
  • Sensor harmonisation before training. Network-specific corrections are guarded against extrapolation, and calibration uncertainty is carried into the training weights.
  • Kilometre-scale information. Urban form, population, lights and roads, instead of downscaled 10–50 km satellite and reanalysis fields alone.
  • Explicit fire physics. Upwind-weighted FRP from a consistent single-sensor 375 m record with near-real-time delivery.
  • Stage-2 residual kriging tested before use. Its strength is set by validation, and the evidence that it does not help dense low-cost networks is reported.
  • Calibrated per-pixel uncertainty and an area-of-applicability mask.
  • A fully keyless, reproducible operational chain with product tiers and a public portal.

Limitations

  • Reference data. Ghana's only open reference monitor (US Embassy Accra) stopped regular reporting in March 2025, and none has ever operated in the north. Calibration therefore rests on coastal co-location. Its humidity range is narrow and it sees few extreme dust days, so Harmattan peaks and northern concentrations carry more uncertainty than the headline figures suggest. The conformal intervals partly reflect this.
  • Short training record. Training starts in August 2022 (CAMS availability), and most Ghanaian data are from 2024–2026. Hindcasts before 2022 are not produced, and trends over this short record should be interpreted cautiously.
  • No satellite AOD at 1 km. The product does not use kilometre-scale satellite AOD (MAIAC or VIIRS), which needs an Earthdata account or heavy swath processing. CAMS assimilates satellite AOD at coarse resolution. Adding MAIAC as an optional input is a straightforward extension (Section 7).
  • Static layers. Static layers are fixed (WorldCover 2021, WorldPop 2024, VIIRS 2023–24), so rapid urban change is not captured.
  • Operational sources. Operational inputs depend on third-party free services with rate limits (Open-Meteo, NASA POWER). The system logs failures and degrades gracefully, but availability is not guaranteed.

Recommendations

  • Co-locate at least one sensor of each network with a BAM or FEM monitor in Tamale or Bolgatanga for a full Harmattan season.
  • Restore open reporting of a reference monitor in Accra.
  • Obtain a free OpenAQ API key to enable hourly live station layers.
  • Add MAIAC AOD when Earthdata credentials are available.
  • Recalibrate and retrain monthly as the national Clarity network grows.

7Reproducibility

ghana_pm25/            python package
  sources/ground.py      OpenAQ archive + AirNow embassy files, QC, daily means
  sources/openmeteo.py   CAMS composition (paced, cached)
  sources/power.py       MERRA-2 / GEOS via NASA POWER
  sources/firms.py       FIRMS archives, EFIRE EDR, orbit-model granule selection, fire predictors
  sources/static.py      WorldCover, DEM, WorldPop, VIIRS lights, OSM roads, coast distance
  calibration.py         sensor harmonisation
  features.py            predictor engineering
  model.py               ensemble, stacking, correlogram, kriging, conformal, AOA
  predict.py             daily 1-km mapping and regional statistics
  nrt.py                 near-real-time updates, IFS bias adjustment, product tiers
  export.py              NetCDF / GeoTIFF / portal encoders
scripts/
  01_download_ground.py  02_build_static.py  10_download_dynamic.py
  03_train_evaluate.py   04_predict_history.py  05_export_portal.py
  06_make_figures.py     07_build_report.py     run_daily.py
  qa_fire_template.py    qa_portal.py           schedule_windows_task.ps1
portal/                static web portal (MapLibre GL + d3)
outputs/daily/YYYY/GH-PM25_1km_YYYYMMDD.nc

A full rebuild runs the scripts in numerical order. The operational cycle is python scripts/run_daily.py, and the portal is served as static files (for example python -m http.server --directory portal). Software: Python 3.12, LightGBM, XGBoost, CatBoost, scikit-learn, SHAP, xarray, rasterio, shapely, MapLibre GL JS and d3.

References

  1. Adong, P., Bainomugisha, E., Okure, D., Sserunjogi, R. (2022). Applying machine learning for large scale field calibration of low-cost PM2.5 and PM10 air pollution sensors. Applied AI Letters 3, e76.
  2. Alli, A.S., Clark, S.N., Hughes, A., et al. (2021). Spatial-temporal patterns of ambient fine particulate matter (PM2.5) and black carbon (BC) pollution in Accra. Environ. Res. Lett. 16, 074013.
  3. Alli, A.S., et al. (2023). High-resolution patterns and inequalities in ambient fine particle mass (PM2.5) and black carbon (BC) in the Greater Accra Metropolis, Ghana. Sci. Total Environ. 875, 162582.
  4. Anand, A., Amooli, J.A., Amoah, S., et al., Westervelt, D.M. (2026). Two decades of kilometer-scale daily PM2.5 from satellite observations and machine learning reveal geographically diverging exposure in Ghana. EarthArXiv, doi:10.31223/X5KR3D.
  5. Barkjohn, K.K., Gantt, B., Clements, A.L. (2021). Development and application of a United States-wide correction for PM2.5 data collected with the PurpleAir sensor. Atmos. Meas. Tech. 14, 4617–4637.
  6. Di, Q., Amini, H., Shi, L., et al. (2019). An ensemble-based model of PM2.5 concentration across the contiguous United States with high spatiotemporal resolution. Environ. Int. 130, 104909.
  7. Gueymard, C.A., Yang, D. (2020). Worldwide validation of CAMS and MERRA-2 reanalysis aerosol optical depth products using 15 years of AERONET observations. Atmos. Environ. 225, 117216.
  8. Hengl, T., Nussbaum, M., Wright, M.N., Heuvelink, G.B.M., Gräler, B. (2018). Random forest as a generic framework for predictive modeling of spatial and spatio-temporal variables. PeerJ 6, e5518.
  9. Inness, A., et al. (2019). The CAMS reanalysis of atmospheric composition. Atmos. Chem. Phys. 19, 3515–3556.
  10. Just, A.C., Arfer, K.B., Rush, J., et al. (2020). Advancing methodologies for applying machine learning and evaluating spatiotemporal models of PM2.5 using satellite data over large regions. Atmos. Environ. 239, 117649.
  11. Lei, J., G'Sell, M., Rinaldo, A., Tibshirani, R.J., Wasserman, L. (2018). Distribution-free predictive inference for regression. J. Am. Stat. Assoc. 113, 1094–1111.
  12. McFarlane, C., Raheja, G., Malings, C., et al., Westervelt, D.M. (2021). Application of Gaussian mixture regression for the correction of low cost PM2.5 monitoring data in Accra, Ghana. ACS Earth Space Chem. 5, 2268–2279.
  13. Meyer, H., Pebesma, E. (2021). Predicting into unknown space? Estimating the area of applicability of spatial prediction models. Methods Ecol. Evol. 12, 1620–1633.
  14. Meyer, H., Pebesma, E. (2022). Machine learning-based global maps of ecological variables and the challenge of assessing them. Nat. Commun. 13, 2208.
  15. Ploton, P., et al. (2020). Spatial validation reveals poor predictive performance of large-scale ecological mapping models. Nat. Commun. 11, 4540.
  16. Raheja, G., Nimo, J., Appoh, E.K., et al., Westervelt, D.M. (2023). Low-cost sensor performance intercomparison, correction factor development, and 2+ years of ambient PM2.5 monitoring in Accra, Ghana. Environ. Sci. Technol. 57, 10708–10720.
  17. Shtein, A., Kloog, I., Schwartz, J., et al. (2020). Estimating daily PM2.5 and PM10 over Italy using an ensemble model. Environ. Sci. Technol. 54, 120–128.
  18. van Donkelaar, A., Hammer, M.S., Bindle, L., et al. (2021). Monthly global estimates of fine particulate matter and their uncertainty. Environ. Sci. Technol. 55, 15287–15300.
  19. Wei, J., Li, Z., Lyapustin, A., et al. (2023). First close insight into global daily gapless 1 km PM2.5 pollution, variability, and health impact. Nat. Commun. 14, 8349.
  20. Westervelt, D.M., Amooli, J.A., Anand, A. (2025). Twenty years of high spatiotemporal resolution estimates of daily PM2.5 in West Africa using satellite data, surface monitors, and machine learning. ACS ES&T Air 2, 1468–1477.
  21. World Health Organization (2021). WHO global air quality guidelines: particulate matter (PM2.5 and PM10), ozone, nitrogen dioxide, sulfur dioxide and carbon monoxide. Geneva.
  22. Ghana Standards Authority (2019). GS 1236:2019 Environment and health protection — requirements for ambient air quality and point source/stack emissions.

Appendix A. Predictor dictionary

Table A1. Predictor dictionary (70 predictors).
GroupPredictorDefinition
CAMS compositioncams_pm25CAMS PM2.5 (µg/m³), daily mean
CAMS compositioncams_pm10CAMS PM10
CAMS compositioncams_aodCAMS total AOD 550 nm
CAMS compositioncams_dustCAMS dust surface concentration
CAMS compositioncams_coCAMS carbon monoxide (combustion/biomass-burning tracer)
CAMS compositioncams_no2CAMS NO₂ (traffic/urban tracer)
CAMS compositioncams_pm25_maxCAMS hourly PM2.5 maximum
MERRA-2 meteorology/aerosolt2m2-m temperature (°C)
MERRA-2 meteorology/aerosolt2m_rangediurnal temperature range
MERRA-2 meteorology/aerosolrh2-m relative humidity (%)
MERRA-2 meteorology/aerosolqv2mspecific humidity (g/kg)
MERRA-2 meteorology/aerosoltd2mdew point
MERRA-2 meteorology/aerosolprecipprecipitation (mm/day, IMERG-corrected)
MERRA-2 meteorology/aerosolws1010-m wind speed
MERRA-2 meteorology/aerosolu1010-m zonal wind
MERRA-2 meteorology/aerosolv1010-m meridional wind
MERRA-2 meteorology/aerosolpssurface pressure
MERRA-2 meteorology/aerosolssrdsurface shortwave down (kWh/m²/day)
MERRA-2 meteorology/aerosolcloudcloud fraction
MERRA-2 meteorology/aerosolmerra_aodMERRA-2 AOD 550 nm
MERRA-2 meteorology/aerosolblhPBL depth from MERRA-2 PBLTOP (m)
Derived dynamiclog_cams_pm25ln CAMS PM2.5
Derived dynamiccams_pm25_lag1CAMS PM2.5 day t−1
Derived dynamiccams_pm25_3dCAMS PM2.5 3-day mean
Derived dynamiccams_dust_lag1CAMS dust t−1
Derived dynamicdust_fracdust / (PM10 + 1)
Derived dynamiclog_cams_dustln(1+dust)
Derived dynamicprecip_3d3-day precipitation
Derived dynamicprecip_lag1precipitation t−1
Derived dynamiclog_blhln PBL depth
Derived dynamicventilationventilation coefficient PBL × wind (m²/s)
Derived dynamicrh_lag1RH t−1
Derived dynamicws10_lag1wind speed t−1
Derived dynamicmerra_aod_3d3-day MERRA-2 AOD
Derived dynamicwind_dir_sinsin wind direction
Derived dynamicwind_dir_coscos wind direction
Firefrp_25kmln(1+FRP) within 25 km, t and t−1
Firefrp_100kmln(1+FRP) within 100 km
Firefire_upwindupwind-weighted fire influence within 500 km
Static 1-kmelevmean elevation (m)
Static 1-kmelev_sdsub-grid elevation SD
Static 1-kmelev_rel_10kmelevation relative to 10-km mean
Static 1-kmlc_treetree-cover fraction
Static 1-kmlc_shrubshrub fraction
Static 1-kmlc_grassgrassland fraction
Static 1-kmlc_cropcropland fraction
Static 1-kmlc_builtbuilt-up fraction
Static 1-kmlc_barebare/sparse fraction
Static 1-kmlc_waterwater fraction
Static 1-kmlog_popln(1+population density)
Static 1-kmlog_ntlln(1+night-time radiance)
Static 1-kmroad_densitymajor-road density (km/km²)
Static 1-kmdist_roadln(1+distance to major road km)
Static 1-kmdist_coastln(1+distance to coast km)
Static 1-kmlc_built_s3kmlc_built (3-km Gaussian)
Static 1-kmlc_built_s10kmlc_built (10-km Gaussian)
Static 1-kmlog_pop_s3kmlog_pop (3-km Gaussian)
Static 1-kmlog_pop_s10kmlog_pop (10-km Gaussian)
Static 1-kmlog_ntl_s3kmlog_ntl (3-km Gaussian)
Static 1-kmlog_ntl_s10kmlog_ntl (10-km Gaussian)
Static 1-kmroad_density_s3kmroad_density (3-km Gaussian)
Static 1-kmroad_density_s10kmroad_density (10-km Gaussian)
Static 1-kmlc_crop_s10kmlc_crop (10-km Gaussian)
Static 1-kmlc_tree_s10kmlc_tree (10-km Gaussian)
Static 1-kmlc_bare_s10kmlc_bare (10-km Gaussian)
Calendardoy_sinsin day-of-year
Calendardoy_coscos day-of-year
Calendardowday of week
Coordinateslatlatitude
Coordinateslonlongitude

Appendix B. Model configuration

Each base learner's hyperparameters were chosen by random search (12 candidates plus the default) minimising weighted log-space RMSE under 5-fold leave-city-cluster-out cross-validation. The cluster-to-fold assignment was shuffled independently of the evaluation folds; the full search history is in outputs/tuning_history.csv.

Table B1. Selected hyperparameters (unlisted values are defaults: LightGBM n=1200, lr=0.03, leaves=48, min_child=40, colsample=0.6, λ=5; XGBoost n=1000, lr=0.03, depth=7, min_child_weight=10; CatBoost 1500 iterations, lr=0.05, depth 8, l2=5; ExtraTrees 300 trees, min_leaf=5, max_features=0.5).
LearnerConfiguration
M1 LightGBM, ln PMnum_leaves=63, min_child_samples=50, learning_rate=0.02, n_estimators=800, colsample_bytree=0.4, reg_lambda=20.0
M2 XGBoost, ln(PM/CAMS)max_depth=4, min_child_weight=50, learning_rate=0.05, n_estimators=800, colsample_bytree=0.8, reg_lambda=5.0
M3 CatBoost, ln PMdefaults
M4 ExtraTrees, ln PMmin_samples_leaf=1, max_features=0.7, n_estimators=300
Scale modelLightGBM n=400, lr=0.03, leaves=15, min_child=100
Krigingexponential + nugget, 300 km search radius, Cholesky solve
AOAtop-20 gain-weighted predictors, 6,000 training reference points, threshold Q3 + 1.5·IQR

Appendix C. Ghanaian monitoring sites

Table C1. Ghanaian monitoring sites.
IDSiteNetworkLatLonDaysReference
oaq_2453497Afri-SETAirGradient5.6538-0.1859760
oaq_2453500Afri-SETAirGradient5.6538-0.1859768
oaq_2453501Afri-SETAirGradient5.6538-0.1859739
oaq_1374750Built Environment UESDAirGradient6.0525-0.0078149
oaq_4967224Divine healer's Church, BethlehemAirGradient5.7046-0.0103387
oaq_4959011Kpone Methodists SchoolAirGradient5.69150.0554180
oaq_6109067KumasiAirGradient6.9320-1.608034
oaq_1236045Physics Department-UG-Accra/CAOA-UESDAirGradient5.6510-0.1860703
oaq_4959010Satet International School, Tema ManheanAirGradient5.66030.0275371
oaq_4958512Tema Community 25 EstateAirGradient5.72470.0173316
oaq_6494903Tema Community 3AirGradient5.6210-0.023814
oaq_4946349Tema Community 3 SSNIT Flat AirGradient5.6210-0.0238230
oaq_4948390Tema Community 7, Royal School AirGradient5.6643-0.0090432
oaq_4959012Tema PortAirGradient5.63470.0089393
oaq_6313993+233, North RidgeClarity5.5738-0.195468
oaq_302558437 Lorry StationClarity5.5889-0.1796637
oaq_947135A7RWN47GClarity6.7542-1.771435
oaq_1008918AM9CQFVLClarity6.7569-1.76424
oaq_947145ANHLHLNJClarity5.6511-0.185940
oaq_947129ARJWQ6WVClarity5.6511-0.185932
oaq_947131AWJQ4MVTClarity6.7133-1.528632
oaq_6302944Abeka Total Filling StationClarity5.5979-0.233669
oaq_6242085Aburi Town CenterClarity5.8441-0.1752108
oaq_6341624Accra New Town Clarity5.5878-0.207561
oaq_6302945Achimota New StationClarity5.6208-0.225671
oaq_6301620Adenta Commandos Last StopClarity5.7326-0.144773
oaq_3025588AgbogbloshieClarity5.5515-0.2193603
oaq_6303239Alajo MarketClarity5.5912-0.216977
oaq_3091472AmasamanClarity5.7031-0.2995496
oaq_3025583Ashaley Botwe School JunctionClarity5.6761-0.1241529
oaq_6092970Ashiaman Market Area Clarity5.6884-0.0293256
oaq_6322654Asylum DownClarity5.5662-0.205758
oaq_6301618Aviation Road, AdentaClarity5.6884-0.148172
oaq_6313991Black Star SquareClarity5.5495-0.190364
oaq_6311212Burma Hills, Tse AddoClarity5.6065-0.139471
oaq_6242086CCMA OfficeClarity5.1113-1.2477124
oaq_6322655CantonmentsClarity5.5819-0.166870
oaq_6242083Cape Coast UCC_North CampusClarity5.1155-1.292894
oaq_5907572County Hospital, Abrepo, Kumasi [Ghana AQ Project]Clarity6.7268-1.6576168
oaq_6302788Dansoman Keep Fit AreaClarity5.5565-0.275969
oaq_6302789Dansoman MarketClarity5.5424-0.264873
oaq_3025580Dansoman RoundaboutClarity5.5585-0.2645572
oaq_6302787Darkuman Christian Complex SchoolClarity5.5902-0.256744
oaq_6302990Dome Road, Christian VillageClarity5.6368-0.216666
oaq_6302790Dr. Busia Street, SakamanClarity5.5739-0.265874
oaq_6297280Dzorwulu Fidelity Bank Clarity5.6105-0.204872
oaq_6301616FOTS International School, AmrahiaClarity5.7702-0.133070
oaq_6309349Flagstaff House Basic SchoolClarity5.5826-0.185960
oaq_3025585Graphic RoadClarity5.5590-0.2253592
oaq_6301619Jungle Avenue, A & C MallClarity5.6421-0.151773
oaq_3025592Kaneshie MarketClarity5.5661-0.2355457
oaq_6242084Kasoa Overhead BridgeClarity5.5343-0.424743
oaq_6309352Kawukudi Community Youth CenterClarity5.5930-0.186265
oaq_6130293Koforidua_ANUCClarity6.1094-0.3021210
oaq_6302946Kotobabi Lorry StationClarity5.5959-0.209269
oaq_6311211Krispat Hearing Center, Pig FarmClarity5.5998-0.197179
oaq_6242087Kumasi AdumClarity6.6947-1.6211124
oaq_3025593Kwame Nkrumah CircleClarity5.5694-0.2140496
oaq_3025581Kwashieman Presby ChurchClarity5.5939-0.2688661
oaq_6311173La Palm Royal Beach Hotel, LabadiClarity5.5633-0.142977
oaq_3025586Lapaz IntersectionClarity5.6072-0.2490673
oaq_6297279Lartebiokorshie Cluster of SchoolsClarity5.5542-0.239171
oaq_3025587Madina Zongo JunctionClarity5.6779-0.1729599
oaq_3025589MakolaClarity5.5485-0.2072568
oaq_6309347Mallam Atta Market Clarity5.5796-0.207367
oaq_6309346Mallam MarketClarity5.5735-0.278962
oaq_6309350Mamobi General HospitalClarity5.5919-0.199670
oaq_6297281Mataheko PIWCClarity5.5725-0.250474
oaq_6406583Mpoase Latter Day Saints ChurchClarity5.5264-0.270742
oaq_6309348New Town CollegeClarity5.5832-0.208311
oaq_3025591Nima MarketClarity5.5821-0.1986504
oaq_6297282Okponglo JunctionClarity5.6406-0.178471
oaq_3025590Osu Oxford StreetClarity5.5597-0.1820537
oaq_6301621Otinibi Last StopClarity5.7905-0.149176
oaq_6301622Pantang HospitalClarity5.7144-0.187435
oaq_6235651Printex Junction, Spintex RdClarity5.6403-0.119720
oaq_6313992Ridge HospitalClarity5.5622-0.198970
oaq_6301617Spintex Road (China Marble Town)Clarity5.6403-0.121668
oaq_6322656TED Academy, Banana InnClarity5.5420-0.253865
oaq_6242082Takoradi Market CircleClarity4.8999-1.7629162
oaq_6242088Tamale Central High StreetClarity9.4034-0.8412119
oaq_6092971Tema Community CenterClarity5.5886-0.268757
oaq_6302989Tesano Police StationClarity5.6052-0.225662
oaq_3025594Tetteh Quarshie InterchangeClarity5.6192-0.1763596
oaq_6301615Tipper Junction Road, OyarifaClarity5.7493-0.171068
oaq_6242081Wa Main TrafficClarity10.0617-2.5083159
oaq_3025582West Hills MallClarity5.5458-0.3423627
oaq_367218A7RWN47GClarity (legacy 2022-23)6.7542-1.7714203
oaq_367219AM9CQFVLClarity (legacy 2022-23)6.7569-1.764279
oaq_367216ANHLHLNJClarity (legacy 2022-23)5.6511-0.1859216
oaq_367215ARJWQ6WVClarity (legacy 2022-23)5.6511-0.1859224
oaq_367217AWJQ4MVTClarity (legacy 2022-23)6.7133-1.5286201
oaq_9764US Diplomatic Post: AccraStateAir Accra5.5794-0.1707664BAM-1020
oaq_6109213nanUnknown6.6931-1.608826

Appendix D. Per-site accuracy

Table D1. Per-site leave-city-cluster-out metrics, Ghana (µg/m³).
SiteNetworkLatLonDaysMean obs.rRMSEMAEBias
Lapaz IntersectionClarity5.607-0.24967318.70.860.982.71.91.7
Kwashieman Presby ChurchClarity5.594-0.26966116.90.700.983.83.33.2
Afri-SETAirGradient5.654-0.18663917.20.580.874.53.32.1
37 Lorry StationClarity5.589-0.18063718.20.850.972.71.81.4
Afri-SETAirGradient5.654-0.18663419.20.700.874.02.80.2
West Hills MallClarity5.546-0.34262716.50.850.982.72.12.0
Afri-SETAirGradient5.654-0.18660517.60.180.549.24.72.0
AgbogbloshieClarity5.551-0.21960323.00.540.954.94.4-4.3
Madina Zongo JunctionClarity5.678-0.17359920.60.850.972.51.50.4
Tetteh Quarshie InterchangeClarity5.619-0.17659617.10.690.984.13.43.4
Physics Department-UG-Accra/CAOA-UESDAirGradient5.651-0.18659417.60.500.775.73.11.6
Graphic RoadClarity5.559-0.22559219.50.920.962.01.5-0.2
Dansoman RoundaboutClarity5.559-0.26457218.10.820.923.32.11.0
MakolaClarity5.548-0.20756819.40.870.962.72.0-1.7
Osu Oxford StreetClarity5.560-0.18253717.00.860.962.72.11.5
Ashaley Botwe School JunctionClarity5.676-0.12452917.80.800.993.62.92.9
Nima MarketClarity5.582-0.19950418.10.700.923.72.21.9
Kwame Nkrumah CircleClarity5.569-0.21449620.40.910.972.31.7-1.3
AmasamanClarity5.703-0.30049618.30.890.952.71.80.8
Kaneshie MarketClarity5.566-0.23545719.00.930.981.71.10.3
Tema Community 7, Royal School AirGradient5.664-0.00943219.20.410.775.14.2-2.8
Tema PortAirGradient5.6350.00939317.60.570.764.23.3-0.4
Divine healer's Church, BethlehemAirGradient5.705-0.01038725.4-1.130.639.68.1-8.1
Satet International School, Tema ManheanAirGradient5.6600.02737121.30.080.786.25.4-4.7
Tema Community 25 EstateAirGradient5.7250.01731620.80.570.864.53.7-2.8
Ashiaman Market Area Clarity5.688-0.02925619.40.870.951.81.4-0.6
Tema Community 3 SSNIT Flat AirGradient5.621-0.02423018.90.550.814.94.0-1.7
Koforidua_ANUCClarity6.109-0.30221018.90.520.975.34.44.3
Kpone Methodists SchoolAirGradient5.6920.05518020.7-0.310.736.05.1-4.8
County Hospital, Abrepo, Kumasi [Ghana AQ Project]Clarity6.727-1.65816823.50.870.964.33.42.4
Takoradi Market CircleClarity4.900-1.76316215.00.730.861.51.1-0.3
Wa Main TrafficClarity10.062-2.50815928.60.750.924.23.62.7
US Diplomatic Post: AccraStateAir Accra5.579-0.17115521.50.770.885.23.7-0.7
CCMA OfficeClarity5.111-1.24812412.6-0.250.852.32.01.9
Kumasi AdumClarity6.695-1.62112422.00.940.972.31.8-0.5
Tamale Central High StreetClarity9.403-0.84111929.40.400.956.44.94.7
Aburi Town CenterClarity5.844-0.17510816.50.350.953.12.11.7
Cape Coast UCC_North CampusClarity5.116-1.2939414.10.810.911.41.10.4
Krispat Hearing Center, Pig FarmClarity5.600-0.1977913.90.480.931.61.31.3
La Palm Royal Beach Hotel, LabadiClarity5.563-0.1437713.70.200.762.31.91.3
Alajo MarketClarity5.591-0.2177716.00.790.931.30.9-0.7
Otinibi Last StopClarity5.790-0.1497614.20.480.761.61.20.2
Mataheko PIWCClarity5.572-0.2507413.0-0.830.952.92.82.8
Dr. Busia Street, SakamanClarity5.574-0.2667413.1-0.110.952.52.42.4
Jungle Avenue, A & C MallClarity5.642-0.1527314.00.530.961.61.41.4
Adenta Commandos Last StopClarity5.733-0.1457313.10.490.791.31.00.5
Dansoman MarketClarity5.542-0.2657313.10.390.852.01.81.3
Dzorwulu Fidelity Bank Clarity5.610-0.2057213.20.450.931.51.21.2
Aviation Road, AdentaClarity5.688-0.1487213.60.270.951.81.61.6
Lartebiokorshie Cluster of SchoolsClarity5.554-0.2397113.60.350.872.01.71.6
Burma Hills, Tse AddoClarity5.607-0.1397112.9-0.170.932.62.42.4
Achimota New StationClarity5.621-0.2267113.80.450.951.41.21.1
Okponglo JunctionClarity5.641-0.1787112.9-1.980.873.02.72.7
Ridge HospitalClarity5.562-0.1997013.70.570.911.81.51.3
CantonmentsClarity5.582-0.1677012.6-0.270.953.02.72.7
FOTS International School, AmrahiaClarity5.770-0.1337013.4-0.130.782.21.71.5
Mamobi General HospitalClarity5.592-0.2007013.80.550.961.31.11.1
Dansoman Keep Fit AreaClarity5.556-0.2766912.7-0.410.952.92.82.8
Abeka Total Filling StationClarity5.598-0.2346913.7-0.170.942.12.02.0
Kotobabi Lorry StationClarity5.596-0.2096914.20.780.921.00.90.6
+233, North RidgeClarity5.574-0.1956813.60.310.831.51.31.0
Tipper Junction Road, OyarifaClarity5.749-0.1716813.00.030.901.91.71.7
Spintex Road (China Marble Town)Clarity5.640-0.1226813.80.160.942.82.62.6
Mallam Atta Market Clarity5.580-0.2076714.80.790.911.10.9-0.5
Dome Road, Christian VillageClarity5.637-0.2176613.80.330.911.71.41.4
Kawukudi Community Youth CenterClarity5.593-0.1866513.4-0.710.922.52.22.2
TED Academy, Banana InnClarity5.542-0.2546513.2-0.040.881.81.61.4
Black Star SquareClarity5.550-0.1906414.20.560.841.41.10.2
Tesano Police StationClarity5.605-0.2266214.90.900.960.80.60.2
Mallam MarketClarity5.573-0.2796214.90.780.901.20.90.4
Accra New Town Clarity5.588-0.2076113.40.490.931.61.41.4
Flagstaff House Basic SchoolClarity5.583-0.1866013.2-0.820.902.52.32.3
Asylum DownClarity5.566-0.2065814.50.700.871.41.20.3
Tema Community CenterClarity5.589-0.2695719.40.240.983.73.33.3
Darkuman Christian Complex SchoolClarity5.590-0.2574413.7-0.280.932.32.22.1
Kasoa Overhead BridgeClarity5.534-0.4254318.20.860.961.11.00.8
Mpoase Latter Day Saints ChurchClarity5.526-0.2714215.4-0.230.382.61.8-1.0
Built Environment UESDAirGradient6.052-0.008379.3-8.720.539.89.49.4
Pantang HospitalClarity5.714-0.1873512.5-0.440.931.81.61.6
KumasiAirGradient6.932-1.6083429.1-1.200.789.08.2-8.2

GH-PM25 technical report · product version 1.0.0 · compiled 2026-09-14. Figures and tables are regenerated from pipeline outputs by scripts/06_make_figures.py and scripts/07_build_report.py.