From 60bfe3fa0900a27a661eff053297e53b1f3406fb Mon Sep 17 00:00:00 2001 From: XANTRONIX Industrial Date: Sun, 2 Mar 2025 11:35:28 -0500 Subject: [PATCH] Replace RAOBSample with SoundingSample --- lib/xmet/raob.py | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/lib/xmet/raob.py b/lib/xmet/raob.py index 3108a71..1f83d87 100644 --- a/lib/xmet/raob.py +++ b/lib/xmet/raob.py @@ -13,27 +13,11 @@ CHUNK_STRIP_CHARS = "\x01\x03\x0a\x20" class RAOBReaderException(Exception): ... -class RAOBSample(): - __slots__ = ( - 'surface', 'height', 'pressure', 'temp', 'dewpoint', - 'wind_dir', 'wind_speed' - ) - - def __init__(self): - self.surface: bool = False - self.height: float = None - self.pressure: float = None - self.temp: float = None - self.dewpoint: float = None - self.wind_dir: float = None - self.wind_speed: float = None - class RAOBSounding(): def __init__(self): - self.timestamp: datetime.datetime = None - self.station: int = None - self.cur: RAOBSample = None - self.samples: list[RAOBSample] = list() + self.timestamp: datetime.datetime = None + self.station: int = None + self.samples: list[SoundingSample] = list() class RAOBObs(): def __init__(self, kind: str): @@ -202,11 +186,11 @@ class RAOBObs(): 'pressure': float(pressure) } - def parse_sample_tokens(self, tokens: list[str]) -> RAOBSample: - sample = RAOBSample() + def parse_sample_tokens(self, tokens: list[str]) -> SoundingSample: + sample = SoundingSample() if tokens[0][0:2] == '99': - sample.surface = True + sample.elapsed = 0 hp = self.parse_surface_pressure(tokens[0]) else: hp = self.parse_height_pressure(tokens[0]) @@ -219,11 +203,15 @@ class RAOBObs(): sample.height = hp['height'] sample.pressure = hp['pressure'] - sample.temp = td['temp'] if td is not None else None - sample.dewpoint = td['dewpoint'] if td is not None else None + sample.temp = td['temp'] if td is not None else None + sample.dewpoint = td['dewpoint'] if td is not None else None sample.wind_dir = wind['dir'] if wind is not None else None sample.wind_speed = wind['speed'] if wind is not None else None + sample.pressure_qa = ' ' + sample.height_qa = ' ' + sample.temp_qa = ' ' + return sample def parse_ttaa(self) -> RAOBSounding: @@ -311,7 +299,6 @@ class RAOBReader(): def __init__(self, fh: io.TextIOBase): self.fh = fh self.soundings = dict() - self.current = Sounding() def parse_chunk(self, text: str) -> RAOBChunk: meta = {