Simplify API for band conditions #92

This commit is contained in:
Ian Renton
2026-03-29 08:31:36 +01:00
parent 11d71629ce
commit ed1f9e5b06
13 changed files with 110 additions and 124 deletions

View File

@@ -95,18 +95,6 @@ class HFBandCondition:
condition: str = None
@dataclass
class VHFCondition:
"""Data class representing a VHF propagation condition."""
# Phenomenon name, e.g. "E-Skip", "Sporadic E"
phenomenon: str = None
# Geographic location this applies to, e.g. "Europe", "N America"
location: str = None
# Condition description, e.g. "Band Closed", "Enhanced", "Good"
condition: str = None
@dataclass
class SolarConditions:
"""Data class representing current solar and propagation conditions."""
@@ -139,13 +127,13 @@ class SolarConditions:
geomag_field: str = None
# Geomagnetic background noise level, e.g. "S0", "S1", "S2"
geomag_noise: str = None
# HF band propagation conditions
hf_conditions: list = None # list[HFBandCondition]
# VHF propagation phenomena
vhf_conditions: list = None # list[VHFCondition]
# HF band propagation conditions, keyed by "{band}-{time}" e.g. "80m-40m-day"
hf_conditions: dict = None
# VHF propagation conditions, keyed by condition name
vhf_conditions: dict = None
# Derived values (populated by infer_descriptions())
# HF radio blackout risk, derived from x_ray
# HF radio blackout risk description, derived from x_ray
blackout_desc: str = None
# Solar radiation storm level description, derived from proton_flux
proton_flux_desc: str = None
@@ -157,7 +145,7 @@ class SolarConditions:
geomag_storm_scale: int = None
# Overall HF band conditions summary, derived from sfi
band_conditions_desc: str = None
# Electron flux level, derived from electron_flux
# Electron flux description, derived from electron_flux
electron_flux_desc: str = None
def infer_descriptions(self):