diff --git a/lib/xmet/raob.py b/lib/xmet/raob.py index 3108a71..0f2f644 100644 --- a/lib/xmet/raob.py +++ b/lib/xmet/raob.py @@ -13,26 +13,10 @@ 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() class RAOBObs(): @@ -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 = {