| Target | Lead | MAE | RMSE | ROC-AUC | Brier | vs Persistence | vs Climatology |
|---|
| Target | Lead | MAE | RMSE | ROC-AUC | Brier | vs Persistence | vs Climatology |
|---|
This page is its own backend. All API calls are handled by the same index.php
via the ?api= query parameter.
Responses are JSON with Access-Control-Allow-Origin: * so the dashboard
(or any other client) can fetch them cross-origin.
Health check. Returns {"status":"ok"} when the PHP backend is reachable.
The dashboard's 🔍 Ping button calls this endpoint.
Fetch GOES-18 SUVI L2 Thematic Map feature metrics for a given date. The PHP backend downloads FITS files from NOAA, parses the binary pixel arrays, and returns per-class area fractions.
{
"source": "goes18",
"date": "2026-08-20",
"cadence_min": 4,
"storm_class": "moderate",
"phase": "main",
"n_records": 24,
"errors": [],
"records": [
{
"t": "2026-08-20T00:00:00+00:00",
"file": "dn_suvi-l2-thmap_g18_s20260820T000000Z_e20260820T000400Z_v1-0-3.fits",
"qflag": 0,
"br": 0.2341, // bright_region class 3
"ch": 0.0876, // coronal_hole class 6
"fl": 0.0012, // flare class 9
"qs": 0.6541, // quiet_sun class 7
"fm": 0.0231, // filament class 4
"pr": 0.0112, // prominence class 5
"lm": 0.0112, // limb class 8
"fc1": 0.2341, // 1h Codex forecast (persistence placeholder)
"fc3": 0.2341, // 3h forecast
"fc6": 0.2341 // 6h forecast
}
]
}
Parsed FITS records are cached to disk for 10 minutes (/tmp/suvi_cache).
This means a second request for the same file is instant — only the first fetch hits NOAA.
In process_file() near the bottom of the PHP section, replace the three
placeholder lines with your model's inference:
// Replace these three lines: 'fc1' => $fracs['br'], 'fc3' => $fracs['br'], 'fc6' => $fracs['br'], // With your Codex model output: 'fc1' => codex_predict($fracs, lead_h: 1), 'fc3' => codex_predict($fracs, lead_h: 3), 'fc6' => codex_predict($fracs, lead_h: 6),
SUVI L2 Thematic Map pixel values and their solar features:
0 → unlabeled 3 → bright_region (br) 6 → coronal_hole (ch)
1 → outer_space 4 → filament (fm) 7 → quiet_sun (qs)
5 → prominence (pr) 8 → limb (lm)
9 → flare (fl)
A machine-learning testbed for short-term solar-feature forecasting using NOAA GOES-R Solar Ultraviolet Imager (SUVI) Level-2 Thematic Map products. Developed by HexaF Innovations LLC under a NOAA-aligned Phase I SBIR concept.
Investigate whether time sequences of SUVI L2 Thematic Maps can be used to forecast the short-term evolution of solar features relevant to space-weather operations, moving from passive feature identification to probabilistic forecasting with 1h, 3h, and 6h lead times.
Bright-region area fraction, coronal-hole area, flare present flag, and flare pixel count — all derived from SUVI class-labeled solar feature maps.
Persistence, climatology, logistic regression, random forest, XGBoost (optional), and a ConvLSTM scaffold. Codex-trained model provides 1h/3h/6h lead forecasts.
NOAA GOES-18 SUVI L2 Thematic Map products at 4-minute cadence.
Archived at data.ngdc.noaa.gov/.../suvi-l2-thmap/.
Each file is ~1.6 MB binary FITS; this backend parses them without any Python dependency.
Muhammad Fraz Bashir, Ph.D. — Founder & CEO, HexaF Innovations LLC
frazbashir@hexaf.io ·
platform.hexaf.io