-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
Provide a formal extension point in OpenNomad that allows agencies to wire their own weather services, APIs, or databases into Nomad. Agencies implement a defined interface and register hooks — one for historical observations and one for forecast data — enabling seamless integration with agency-specific weather infrastructure.
Motivation
In ACN (Agency Centric Nomad) deployments, agencies have their own weather data systems — operational databases, forecast APIs, internal observation networks. Rather than forcing all weather data through file import, OpenNomad should expose clean extension points that let agencies connect their systems directly. This follows the 100% API-driven architecture — Nomad's UI stays pure presentation while the adapter layer handles data sourcing.
Design
Interface Contract
OpenNomad should define a WeatherProvider interface (or equivalent) with two hooks:
-
Historical Observations Hook — For retrieving past weather observation data
- Input: spatial extent, time range, station filters
- Output: weather records in Nomad's internal format
-
Forecast Data Hook — For retrieving weather forecast data
- Input: spatial extent, forecast period, model preferences
- Output: forecast records in Nomad's internal format
These are separate hooks because agencies may source historical and forecast data from entirely different systems.
Registration
Agencies implement the interface and register their provider(s) through OpenNomad's configuration. When registered, Nomad's weather data flows route through the agency provider instead of (or in addition to) built-in sources.
Acceptance Criteria
-
WeatherProviderinterface defined with historical and forecast hooks - Separate hook registration for historical observations and forecast data
- Default/fallback behavior when no agency provider is registered (existing built-in behavior)
- Documentation for agency developers on implementing and registering a provider
- At least one reference implementation or example provider
- Integration with the weather data flows already in Nomad (model setup wizard, weather import)