Add wrapper tool for EONET v3 event search#104
Open
pushwithak wants to merge 1 commit into
Open
Conversation
- Wraps /api/v3/events with filters for category, status, time-range, bbox, and magnitude - Each event carries derived bbox / t_start / t_end so downstream tools can consume the spatiotemporal envelope without re-parsing GeoJSON - Bbox accepted in standard (min_lon, min_lat, max_lon, max_lat); translated to EONET's order internally - Base URL, timeout, and source allowlist kept in config - Added EONETCategory and EONETStatus enums in structures.py - Added tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EONETSearchToolwraps NASA's EONET v3/eventsendpoint for natural-event discovery. EONET tracks wildfires, severe storms, volcanoes, floods, earthquakes, sea/lake ice, landslides, drought, dust/haze, snow, temperature extremes, water color anomalies, and manmade events worldwide. The API is public; no authentication required.Filters
category— event type (wildfires,severeStorms,volcanoes, …); omit for all categoriesstatus—open/closed/all(default:open)daysORstart/end— recency window (mutually exclusive)bbox— bounding box in standard(min_lon, min_lat, max_lon, max_lat)order; translated to EONET's(minLon, maxLat, maxLon, minLat)request format internallylimit— max number of events to return (1–100, default 10)magnitude_id+magnitude_min/magnitude_max— magnitude filtering (e.g.ktsfor wind speed,acfor acres burned)Output
Each
EONETEventreturns:id,title,description,link,closed,categories,sources,geometrybbox(envelope across all geometries in standard order),t_start,t_endThe derived spatiotemporal envelope lets downstream tools (CMR queries, Worldview deep links) consume event context without re-parsing GeoJSON.
Configuration (instance-level)
base_url,timeoutsources— optional allowlist of upstream provider IDs (e.g.['InciWeb', 'USGS_EHP'])Enums
EONETCategoryandEONETStatusStrEnums added instructures.py.Usage
Tests: 8 unit (schema validation) + 11 integration (live EONET API).