Research view

Filling the gaps between stations.

The heat map estimates air between stations by distance weighting, then drifts it with the current wind to sketch the next three hours. The check below shows how well that works on today's readings. This is a workbench for the curious, not an official DOE APIMS feed.

Stations used

65 reporting now

Layers
Now+3h
Rendering the spatial canvas and station network…
Index scale0–50 Good51–100 Moderate101–200 Unhealthy201–300 Very unhealthyAbove 300 Hazardous

Model validation

Each station is hidden in turn and estimated from all the others, then compared with what it actually reported. An R² near zero or below means the colours between stations are rough guesses today; trust the station dots over the shading.

RMSE
—
API units
MAE
—
API units
R²
—
Variance explained
InterpolatorIDW power p = 2.0 (distance squared)C(x, y, t+Δt) = C(x − uΔt, y − vΔt, t)

Validation needs the live station feed, which is not available right now.

3-hour forecast model, test results13,160 test hours

Trained on Klang Valley records from January 2023 to mid-2024 and tested on September to December 2024, which it never saw.

ModelMAE (µg/m³)RMSER²Status
Persistence Baseline12.19417.4250.203Baseline
Linear Regression9.80313.3230.534Baseline
Random Forest7.60210.7870.695Tested
XGBoost (Application)7.46210.5580.707In use

Typical day (illustration)

No trend is available for this station.

An illustrative scenario, not observed history and not a forecast.Now —

Visibility report log

0 kept separate from network readings
No visibility reports yet

Reports submitted through HazeMY appear here once the application receives them. They are logged apart from network readings and never feed the interpolation.