central/tests/fixtures/eonet_sample.json
zvx 0b26bf902a feat(2-F): NASA EONET disaster adapter
Adds the NASA Earth Observatory Natural Event Tracker (EONET v3) adapter,
publishing on the existing CENTRAL_DISASTER stream under
central.disaster.eonet.<category>.global subjects.

- One Central event per EONET event id; geo = most-recent geometry point.
- Composite dedup key (eonet:<id>:<latest_geometry_date_iso>) — timeline
  advance re-publishes, idle re-poll suppresses.
- category_allowlist defaults to all 13 upstream categories; operator opts
  OUT per-category if GDACS overlap (wildfires/floods/severeStorms/volcanoes)
  produces unwanted dupes on gdacs.* subjects.
- camelCase upstream IDs (seaLakeIce, dustHaze, etc.) mapped to
  lower_snake_case subject components by a single _subject_category helper.
- Country resolves to literal 'global' (no reverse-geocode in v1).
- Fall-off: missing-from-feed event emits central.disaster.eonet.<cat>.removed.global,
  subtype before 'removed' per §8 canonical pattern.

Adapter ships disabled; operator enables via GUI.
2026-05-19 15:35:25 +00:00

108 lines
3.9 KiB
JSON

{
"title": "EONET Events (frozen test fixture)",
"description": "Trimmed from upstream /api/v3/events for tests. Real-shape entries from live data plus synthetic items to exercise categories absent from the live sample (seaLakeIce, dustHaze, tempExtremes) and multi-geometry. Do not refresh casually.",
"link": "https://eonet.gsfc.nasa.gov/api/v3/events",
"events": [
{
"id": "EONET_20098",
"title": "Eagle Lake Fire Wildfire, Hancock, Iowa",
"description": null,
"link": "https://eonet.gsfc.nasa.gov/api/v3/events/EONET_20098",
"closed": null,
"categories": [
{"id": "wildfires", "title": "Wildfires"}
],
"sources": [
{"id": "IRWIN", "url": "https://irwin.doi.gov/observer/incidents/c283aec9-aab3-4720-addc-47bb6a433a32"}
],
"geometry": [
{
"magnitudeValue": 550.00,
"magnitudeUnit": "acres",
"date": "2026-05-14T11:04:00Z",
"type": "Point",
"coordinates": [-93.72, 43.11]
}
]
},
{
"id": "EONET_31000",
"title": "Synthetic Sea Ice off Greenland",
"description": "Synthetic test event for seaLakeIce category.",
"link": "https://eonet.gsfc.nasa.gov/api/v3/events/EONET_31000",
"closed": null,
"categories": [
{"id": "seaLakeIce", "title": "Sea and Lake Ice"}
],
"sources": [],
"geometry": [
{
"date": "2026-05-10T00:00:00Z",
"type": "Point",
"coordinates": [-60.0, 70.5]
}
]
},
{
"id": "EONET_42000",
"title": "Synthetic Sahara Dust",
"description": "Synthetic test event for dustHaze category.",
"link": "https://eonet.gsfc.nasa.gov/api/v3/events/EONET_42000",
"closed": null,
"categories": [
{"id": "dustHaze", "title": "Dust and Haze"}
],
"sources": [],
"geometry": [
{
"date": "2026-05-11T12:00:00Z",
"type": "Point",
"coordinates": [30.0, 25.0]
}
]
},
{
"id": "EONET_55000",
"title": "Synthetic Tropical Storm Path",
"description": "Synthetic multi-geometry event for severeStorms category.",
"link": "https://eonet.gsfc.nasa.gov/api/v3/events/EONET_55000",
"closed": null,
"categories": [
{"id": "severeStorms", "title": "Severe Storms"}
],
"sources": [
{"id": "JTWC", "url": "https://www.metoc.navy.mil/jtwc/jtwc.html"}
],
"geometry": [
{
"date": "2026-05-12T00:00:00Z",
"type": "Point",
"coordinates": [140.0, 18.0]
},
{
"date": "2026-05-13T06:00:00Z",
"type": "Point",
"coordinates": [142.5, 19.2]
}
]
},
{
"id": "EONET_66000",
"title": "Synthetic Heat Wave",
"description": "Synthetic test event for tempExtremes category.",
"link": "https://eonet.gsfc.nasa.gov/api/v3/events/EONET_66000",
"closed": null,
"categories": [
{"id": "tempExtremes", "title": "Temperature Extremes"}
],
"sources": [],
"geometry": [
{
"date": "2026-05-09T18:00:00Z",
"type": "Point",
"coordinates": [12.5, 41.9]
}
]
}
]
}