Allow fetching soundings by station ID
This commit is contained in:
parent
1ddc343487
commit
cda1413f2c
1 changed files with 12 additions and 10 deletions
|
@ -572,16 +572,13 @@ class RAOBReader():
|
||||||
self.soundings = dict()
|
self.soundings = dict()
|
||||||
|
|
||||||
def sounding(self, station: str, timestamp: str) -> RAOBSounding:
|
def sounding(self, station: str, timestamp: str) -> RAOBSounding:
|
||||||
key = station + '.' + timestamp
|
if station not in self.soundings:
|
||||||
|
self.soundings[station] = dict()
|
||||||
|
|
||||||
if key in self.soundings:
|
if timestamp not in self.soundings[station]:
|
||||||
return self.soundings[key]
|
self.soundings[station][timestamp] = RAOBSounding(station, timestamp)
|
||||||
|
|
||||||
sounding = RAOBSounding(station, timestamp)
|
return self.soundings[station][timestamp]
|
||||||
|
|
||||||
self.soundings[key] = sounding
|
|
||||||
|
|
||||||
return sounding
|
|
||||||
|
|
||||||
def parse_chunk(self, text: str) -> RAOBChunk:
|
def parse_chunk(self, text: str) -> RAOBChunk:
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -667,12 +664,17 @@ class RAOBReader():
|
||||||
data.get('wind_speed'),
|
data.get('wind_speed'),
|
||||||
data.get('wind_dir'))
|
data.get('wind_dir'))
|
||||||
|
|
||||||
for key in self.soundings:
|
def each_sounding_by_station(self, station: str):
|
||||||
sounding = self.soundings[key].finish()
|
for timestamp in self.soundings[station]:
|
||||||
|
sounding = self.soundings[station][timestamp].finish()
|
||||||
|
|
||||||
if sounding is not None:
|
if sounding is not None:
|
||||||
yield sounding
|
yield sounding
|
||||||
|
|
||||||
|
def each_sounding(self):
|
||||||
|
for station in self.soundings:
|
||||||
|
yield from self.each_sounding_by_station(station)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def each_sounding_from_fh(fh: io.TextIOBase):
|
def each_sounding_from_fh(fh: io.TextIOBase):
|
||||||
reader = RAOBReader(fh)
|
reader = RAOBReader(fh)
|
||||||
|
|
Loading…
Add table
Reference in a new issue