Initial implementation of parsing PPBB blocks

This commit is contained in:
XANTRONIX 2025-03-28 22:54:14 -04:00
parent ae57b24954
commit ecdaf35c49

View file

@ -372,6 +372,44 @@ class RAOBObs():
'samples': samples 'samples': samples
} }
def parse_ppbb_samples(self, tokens: list[str]) -> dict:
heights = tokens[0]
if heights[0] != '9':
return dict()
tens = int(heights[1])
h1 = (10000 * tens) + (1000 * int(heights[2]))
h2 = (10000 * tens) + (1000 * int(heights[3]))
h3 = (10000 * tens) + (1000 * int(heights[4]))
return {
h1: self.parse_wind(tokens[1]),
h2: self.parse_wind(tokens[2]),
h3: self.parse_wind(tokens[3])
}
def parse_ppbb(self) -> dict:
timestamp = self.tokens[0]
station = self.tokens[1]
samples = list()
for i in range(2, len(self.tokens), 4):
data = self.parse_ppbb_samples(self.tokens[i:i+4])
for height in data:
samples.append({
'height': height,
'wind_speed': data[height]['speed'],
'wind_dir': data[height]['dir']
})
return {
'station': station,
'timestamp': timestamp,
'samples': samples
}
class RAOBChunk(): class RAOBChunk():
def __init__(self, def __init__(self,
wfo: str, wfo: str,