From 368846cb6026617e1fa2fa397442f84bae1c9634 Mon Sep 17 00:00:00 2001 From: XANTRONIX Industrial Date: Sun, 2 Mar 2025 01:02:37 -0500 Subject: [PATCH] Rename rawins.py to raob.py --- lib/xmet/{rawins.py => raob.py} | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) rename lib/xmet/{rawins.py => raob.py} (93%) diff --git a/lib/xmet/rawins.py b/lib/xmet/raob.py similarity index 93% rename from lib/xmet/rawins.py rename to lib/xmet/raob.py index 4b5f988..a98e029 100644 --- a/lib/xmet/rawins.py +++ b/lib/xmet/raob.py @@ -10,10 +10,10 @@ from xmet.sounding import Sounding, SoundingSample CHUNK_SEP = "\x01" CHUNK_STRIP_CHARS = "\x01\x03\x0a\x20" -class RawinsReaderException(Exception): +class RAOBReaderException(Exception): ... -class RawinsSample(): +class RAOBSample(): def __init__(self): self.surface: bool = False self.height: float = None @@ -23,14 +23,14 @@ class RawinsSample(): self.wind_dir: float = None self.wind_speed: float = None -class RawinsSounding(): +class RAOBSounding(): def __init__(self): self.timestamp: datetime.datetime = None self.station: int = None - self.cur: RawinsSample = None - self.samples: list[RawinsSample] = list() + self.cur: RAOBSample = None + self.samples: list[RAOBSample] = list() -class RawinsObs(): +class RAOBObs(): def __init__(self, kind: str): self.kind: str = kind self.values: list[str] = list() @@ -197,8 +197,8 @@ class RawinsObs(): 'pressure': float(pressure) } - def parse_sample_values(self, values: list[str]) -> RawinsSample: - sample = RawinsSample() + def parse_sample_values(self, values: list[str]) -> RAOBSample: + sample = RAOBSample() if values[0][0:2] == '99': sample.surface = True @@ -221,7 +221,7 @@ class RawinsObs(): return sample - def parse_ttaa(self) -> RawinsSounding: + def parse_ttaa(self) -> RAOBSounding: # # Return None if there is no height data up to 100mb. # @@ -239,7 +239,7 @@ class RawinsObs(): if sample is None: return - sounding = RawinsSounding() + sounding = RAOBSounding() sounding.timestamp = self.parse_timestamp(self.values[0]) sounding.station = int(self.values[1]) sounding.samples.append(sample) @@ -257,7 +257,7 @@ class RawinsObs(): return sounding -class RawinsChunk(): +class RAOBChunk(): def __init__(self, wfo: str, product: str, @@ -280,7 +280,7 @@ class RawinsChunk(): if obs is not None: yield obs - obs = RawinsObs(value) + obs = RAOBObs(value) elif obs is not None: obs.read(value) @@ -297,7 +297,7 @@ class RawinsChunk(): yield sounding -class RawinsReader(): +class RAOBReader(): """ A reader for the global `Current.rawins` file provided by UCAR: @@ -308,7 +308,7 @@ class RawinsReader(): self.soundings = dict() self.current = Sounding() - def parse_chunk(self, text: str) -> RawinsChunk: + def parse_chunk(self, text: str) -> RAOBChunk: meta = { 'wfo': None, # NWS forecast office 'product': None # NWS product code @@ -330,7 +330,7 @@ class RawinsReader(): match = RE_ID.match(lines[0]) if match is None: - raise RawinsReaderException(f"First chunk line not 3-digit identifier ({lines[0]})") + raise RAOBReaderException(f"First chunk line not 3-digit identifier ({lines[0]})") else: line_index += 1 @@ -342,7 +342,7 @@ class RawinsReader(): match = RE_ISSUANCE.match(lines[1]) if match is None: - raise RawinsReaderException('Second chunk line not product issuance') + raise RAOBReaderException('Second chunk line not product issuance') else: meta['wfo'] = match['wfo'] line_index += 1 @@ -367,7 +367,7 @@ class RawinsReader(): for line in lines[line_index:]: values.extend(re.split(r'\s+', line)) - return RawinsChunk(meta['wfo'], + return RAOBChunk(meta['wfo'], meta['product'], values)