Parse data into objects
This commit is contained in:
parent
291b439f00
commit
8b03ed0c46
1 changed files with 26 additions and 17 deletions
|
@ -23,12 +23,17 @@ class RawinsSample():
|
|||
self.wind_dir: float = None
|
||||
self.wind_speed: float = None
|
||||
|
||||
class RawinsSounding():
|
||||
def __init__(self):
|
||||
self.timestamp: datetime.datetime = None
|
||||
self.station: int = None
|
||||
self.cur: RawinsSample = None
|
||||
self.samples: list[RawinsSample] = list()
|
||||
|
||||
class RawinsObs():
|
||||
def __init__(self, kind: str):
|
||||
self.kind: str = kind
|
||||
self.timestamp: datetime.datetime = None
|
||||
self.surface: float = None
|
||||
self.values: list[str] = list()
|
||||
self.kind: str = kind
|
||||
self.values: list[str] = list()
|
||||
|
||||
def read(self, value: str):
|
||||
self.values.append(value)
|
||||
|
@ -147,26 +152,30 @@ class RawinsObs():
|
|||
}
|
||||
|
||||
def parse_ttaa(self):
|
||||
samples = list()
|
||||
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])
|
||||
|
||||
for i in range(2, len(self.values), 3):
|
||||
if len(self.values) <= i+2 or self.values[i][-1] == '=':
|
||||
break
|
||||
|
||||
samples.append({
|
||||
'pressure': self.parse_surface_pressure(self.values[i]),
|
||||
'temp_dewp': self.parse_temp_dewpoint(self.values[i+1]),
|
||||
'wind': self.parse_wind(self.values[i+2])
|
||||
})
|
||||
td = self.parse_temp_dewpoint(self.values[i+1])
|
||||
wind = self.parse_wind(self.values[i+2])
|
||||
|
||||
if self.values[1][0:3] == 'NIL':
|
||||
return None
|
||||
sample = RawinsSample()
|
||||
sample.pressure = self.parse_surface_pressure(self.values[i])
|
||||
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
|
||||
|
||||
return {
|
||||
'timestamp': self.parse_timestamp(self.values[0]),
|
||||
'station': int(self.values[1]),
|
||||
'samples': samples
|
||||
}
|
||||
sounding.samples.append(sample)
|
||||
|
||||
return sounding
|
||||
|
||||
class RawinsChunk():
|
||||
def __init__(self,
|
||||
|
|
Loading…
Add table
Reference in a new issue