Refactor RAOBObs.parse_ttaa() to return Sounding object

This commit is contained in:
XANTRONIX 2025-03-02 13:38:26 -05:00
parent 8787a37773
commit d83e52acb7

View file

@ -13,13 +13,9 @@ CHUNK_STRIP_CHARS = "\x01\x03\x0a\x20"
class RAOBReaderException(Exception):
...
class RAOBSounding():
def __init__(self):
self.timestamp: datetime.datetime = None
self.station: int = None
self.samples: list[SoundingSample] = list()
class RAOBObs():
DATA_SOURCE = 'UCAR'
def __init__(self, kind: str):
self.kind: str = kind
self.tokens: list[str] = list()
@ -214,7 +210,7 @@ class RAOBObs():
return sample
def parse_ttaa(self) -> RAOBSounding:
def parse_ttaa(self) -> Sounding:
#
# Return None if there is no height data up to 100mb.
#
@ -232,10 +228,16 @@ class RAOBObs():
if sample is None:
return
sounding = RAOBSounding()
sounding.timestamp = self.parse_timestamp(self.tokens[0])
sounding.station = int(self.tokens[1])
sounding.samples.append(sample)
timestamp = self.parse_timestamp(self.tokens[0])
sounding = Sounding()
sounding.samples = [sample]
sounding.station = self.tokens[1]
sounding.data_source_pressure = self.DATA_SOURCE
sounding.data_source_other = self.DATA_SOURCE
sounding.timestamp_observed = timestamp
sounding.timestamp_released = timestamp - datetime.timedelta(minutes=45)
for i in range(5, len(self.tokens), 3):
if len(self.tokens) < i+3 or self.tokens[i][-1] == '=':