Do a better job of calculating surface pressure

This commit is contained in:
XANTRONIX 2025-03-01 18:15:20 -05:00
parent 9dcebc58b8
commit fbb3cdf4d5

View file

@ -53,13 +53,6 @@ class RawinsObs():
day = day if day < 51 else day - 50
)
def parse_surface_pressure(self, value: str):
if value[0:2] == '99':
return {
'height': None,
'pressure': float(value[2:5])
}
def parse_temp_dewpoint(self, value: str):
if value[2] == '/':
return {
@ -161,8 +154,18 @@ class RawinsObs():
'pressure': float(value[2:5])
}
def parse_sample_values(self, values: list[str], first: bool=False) -> RawinsSample:
if first:
def parse_surface_pressure(self, value: str):
if value[0:2] == '99':
return {
'height': None,
'pressure': float(value[2:5])
}
def parse_sample_values(self, values: list[str]) -> RawinsSample:
sample = RawinsSample()
if values[0][0:2] == '99':
sample.surface = True
hp = self.parse_surface_pressure(values[0])
else:
hp = self.parse_height_pressure(values[0])
@ -173,7 +176,6 @@ class RawinsObs():
td = self.parse_temp_dewpoint(values[1])
wind = self.parse_wind(values[2])
sample = RawinsSample()
sample.height = hp['height']
sample.pressure = hp['pressure']
sample.temp = td['temp'] if td is not None else None
@ -183,7 +185,7 @@ class RawinsObs():
return sample
def parse_ttaa(self):
def parse_ttaa(self) -> RawinsSounding:
#
# Return None if there is no height data up to 100mb.
#
@ -196,15 +198,14 @@ class RawinsObs():
if self.values[1][0:3] == 'NIL':
return None
sounding = RawinsSounding()
sounding.timestamp = self.parse_timestamp(self.values[0])
sounding.station = int(self.values[1])
sample = self.parse_sample_values(self.values[2:5], True)
sample = self.parse_sample_values(self.values[2:5])
if sample is None:
return
sounding = RawinsSounding()
sounding.timestamp = self.parse_timestamp(self.values[0])
sounding.station = int(self.values[1])
sounding.samples.append(sample)
for i in range(5, len(self.values), 3):