docs(firms): tighten the Suomi NPP notes

This commit is contained in:
German Khokhlov committed 2026-11-09 21:44:09 +04:00
1 parent d90da158ea
commit fce5ee6381
4 files changed
+8 -11

No files matched your search

+1 -1
View File
@@ -329,7 +329,7 @@ and MODIS NRT (Terra + Aqua), clamped to the trailing 24 h, cached 30 min to res
transaction quota. Requires a free `FIRMS_MAP_KEY` transaction quota. Requires a free `FIRMS_MAP_KEY`
(https://firms.modaps.eosdis.nasa.gov/api/map_key/); the layer is empty without it. (https://firms.modaps.eosdis.nasa.gov/api/map_key/); the layer is empty without it.
The former bundled 2026-05-25 snapshot was removed 2026-07-16. Suomi NPP (`VIIRS_SNPP_NRT`) The former bundled 2026-05-25 snapshot was removed 2026-07-16. Suomi NPP (`VIIRS_SNPP_NRT`)
is no longer requested: NASA stopped delivering its data on 2026-11-02. is not requested: NASA stopped delivering it on 2026-11-02.
### UCS Satellite Database (`ucs_satellites/`) ### UCS Satellite Database (`ucs_satellites/`)
+1 -3
View File
@@ -2860,9 +2860,7 @@ reporting are unchanged.
## FIRMS source status ## FIRMS source status
The FIRMS proxy requests VIIRS NOAA-20, VIIRS NOAA-21 and MODIS NRT (Terra and The FIRMS proxy requests VIIRS NOAA-20, VIIRS NOAA-21 and MODIS NRT (Terra and
Aqua). It no longer requests VIIRS Suomi NPP: NASA stopped delivering Suomi NPP Aqua). It skips VIIRS Suomi NPP, which NASA stopped delivering on 2026-11-02.
data on 2026-11-02, and the source returned no rows while still costing one
MAP_KEY transaction per refresh.
The FIRMS CSV parser rejects impossible acquisition calendar dates before the proxy filters records to the trailing 24 hours, while retaining valid UTC acquisition times. The FIRMS CSV parser rejects impossible acquisition calendar dates before the proxy filters records to the trailing 24 hours, while retaining valid UTC acquisition times.
The `get_active_fires` tool reports acquisition times as UTC ISO timestamps, The `get_active_fires` tool reports acquisition times as UTC ISO timestamps,
+3 -4
View File
@@ -132,8 +132,8 @@ export async function fetchFirms(
* Upstream: https://firms.modaps.eosdis.nasa.gov/api/area/csv/{KEY}/{SOURCE}/world/2 * Upstream: https://firms.modaps.eosdis.nasa.gov/api/area/csv/{KEY}/{SOURCE}/world/2
* *
* Merges two VIIRS NRT sources (NOAA-20, NOAA-21 — independent satellites, no * Merges two VIIRS NRT sources (NOAA-20, NOAA-21 — independent satellites, no
* cross-source dedup) plus MODIS_NRT (combined Terra+Aqua, * cross-source dedup) plus MODIS_NRT (combined Terra+Aqua, ~1 km, numeric
* ~1 km, numeric 0-100 confidence), fetched sequentially (quota courtesy) * 0-100 confidence), fetched sequentially (quota courtesy)
* with `days=2` (`days=1` means "current UTC day", nearly empty just after * with `days=2` (`days=1` means "current UTC day", nearly empty just after
* 00:00Z) and clamps to the trailing 24 h via src/data/firmsCsv.js. FIRMS * 00:00Z) and clamps to the trailing 24 h via src/data/firmsCsv.js. FIRMS
* quota is 5,000 transactions / 10 min per MAP_KEY, so the cache is the point: * quota is 5,000 transactions / 10 min per MAP_KEY, so the cache is the point:
@@ -141,8 +141,7 @@ export async function fetchFirms(
* fresh-enough disk cache (.gev-cache/firms.json) prevents ANY upstream * fresh-enough disk cache (.gev-cache/firms.json) prevents ANY upstream
* fetch across dev-server restarts. Pattern mirrors celestrakProxy. * fetch across dev-server restarts. Pattern mirrors celestrakProxy.
* *
* VIIRS_SNPP_NRT is not requested: NASA stopped delivering Suomi NPP data on * VIIRS_SNPP_NRT is left out: NASA stopped delivering Suomi NPP on 2026-11-02.
* 2026-11-02, so that source only spent a transaction per refresh (#849).
* *
* Routes: * Routes:
* GET /api/firms → {fetchedAt, stale, ttlMs, sources, count, fires} * GET /api/firms → {fetchedAt, stale, ttlMs, sources, count, fires}
+3 -3
View File
@@ -21,7 +21,7 @@ assert.notEqual(start, -1, 'FIRMS refresh function exists');
const end = config.indexOf('\n }', start); const end = config.indexOf('\n }', start);
assert.notEqual(end, -1, 'FIRMS refresh function closes'); assert.notEqual(end, -1, 'FIRMS refresh function closes');
const refreshSource = config.slice(start, end + 4); const refreshSource = config.slice(start, end + 4);
// Read the source list from production so these tests share one source of truth. // Read the list from production so these tests follow it.
const listed = config.match(/const SOURCES = \[([^\]]*)\];/); const listed = config.match(/const SOURCES = \[([^\]]*)\];/);
assert.ok(listed, 'FIRMS source list exists'); assert.ok(listed, 'FIRMS source list exists');
const SOURCES = [...listed[1].matchAll(/'([A-Z0-9_]+)'/g)].map((m) => m[1]); const SOURCES = [...listed[1].matchAll(/'([A-Z0-9_]+)'/g)].map((m) => m[1]);
@@ -312,7 +312,7 @@ test('every FIRMS upstream request goes through the IPv4 fallback', async () =>
}); });
test('FIRMS requests only the satellites NASA still delivers', () => { test('FIRMS requests only the satellites NASA still delivers', () => {
// NASA stopped delivering Suomi NPP data on 2026-11-02 (#849): requesting it // NASA stopped delivering Suomi NPP on 2026-11-02; asking for it only spends
// returns no rows and still spends a MAP_KEY transaction on every refresh. // a MAP_KEY transaction.
assert.ok(!SOURCES.includes('VIIRS_SNPP_NRT')); assert.ok(!SOURCES.includes('VIIRS_SNPP_NRT'));
}); });