DHDRL commited on
Commit
c895e68
·
verified ·
1 Parent(s): 91aa374

Update zone_observation.py

Browse files
Files changed (1) hide show
  1. zone_observation.py +16 -3
zone_observation.py CHANGED
@@ -83,9 +83,10 @@ class AlertLevel(Enum):
83
 
84
  @unique
85
  class DataSource(Enum):
86
- ERA5_REANALYSIS = "era5_reanalysis" # ECMWF ERA5 via CDS or Open-Meteo
87
- OPENMETEO_LIVE = "openmeteo_live" # Open-Meteo forecast API (free tier)
88
- BMKG_STATION = "bmkg_station" # Indonesian met agency station data
 
89
  SATELLITE_NDVI = "satellite_ndvi" # Sentinel-2 / Landsat NDVI tile
90
  SATELLITE_PRECIP = "satellite_precip" # IMERG / CHIRPS retrieval (schema v3+)
91
  SATELLITE_SOIL = "satellite_soil" # SMAP L3/L4 retrieval (schema v3+)
@@ -1428,6 +1429,18 @@ if __name__ == "__main__":
1428
  cfg_era5_back.force_data_source == DataSource.ERA5_REANALYSIS,
1429
  "ForecastConfig force_data_source=ERA5 round-trip"
1430
  )
 
 
 
 
 
 
 
 
 
 
 
 
1431
  cfg_new = ForecastConfig(
1432
  forecast_backend="openmeteo",
1433
  use_climatology_anomalies=True,
 
83
 
84
  @unique
85
  class DataSource(Enum):
86
+ ERA5_REANALYSIS = "era5_reanalysis" # ECMWF ERA5 via CDS or Open-Meteo
87
+ OPENMETEO_LIVE = "openmeteo_live" # Open-Meteo forecast API (free tier)
88
+ OPENMETEO_ARCHIVE = "openmeteo_archive" # Open-Meteo historical archive API
89
+ BMKG_STATION = "bmkg_station" # Indonesian met agency station data
90
  SATELLITE_NDVI = "satellite_ndvi" # Sentinel-2 / Landsat NDVI tile
91
  SATELLITE_PRECIP = "satellite_precip" # IMERG / CHIRPS retrieval (schema v3+)
92
  SATELLITE_SOIL = "satellite_soil" # SMAP L3/L4 retrieval (schema v3+)
 
1429
  cfg_era5_back.force_data_source == DataSource.ERA5_REANALYSIS,
1430
  "ForecastConfig force_data_source=ERA5 round-trip"
1431
  )
1432
+ _assert(DataSource.OPENMETEO_ARCHIVE.value == "openmeteo_archive",
1433
+ "OPENMETEO_ARCHIVE enum member missing")
1434
+ _assert(DataSource.OPENMETEO_ARCHIVE.is_observational(),
1435
+ "OPENMETEO_ARCHIVE must be observational")
1436
+ _assert(DataSource.OPENMETEO_ARCHIVE != DataSource.OPENMETEO_LIVE,
1437
+ "ARCHIVE and LIVE must be distinct sources")
1438
+ cfg_arch = ForecastConfig(force_data_source=DataSource.OPENMETEO_ARCHIVE)
1439
+ cfg_arch_back = ForecastConfig.from_dict(cfg_arch.to_dict())
1440
+ _assert(
1441
+ cfg_arch_back.force_data_source == DataSource.OPENMETEO_ARCHIVE,
1442
+ "ForecastConfig force_data_source=OPENMETEO_ARCHIVE round-trip"
1443
+ )
1444
  cfg_new = ForecastConfig(
1445
  forecast_backend="openmeteo",
1446
  use_climatology_anomalies=True,