Pegelonline/pomodules/po_waterlevels.py

44 lines
1.8 KiB
Python

from . import poBaseURL
from .urlreader import UrlReader
class PoWaterlevels(UrlReader):
def __init__(self):
super().__init__(poBaseURL + 'stations.json?timeseries=W&includeTimeseries=true&includeCurrentMeasurement=true')
def getWaterlevels(self):
print("getWaterlevels: Lade Pegelstände herunter...")
stations_json = self.getJsonResponse()
if stations_json is None or len(stations_json) == 0:
print("getWaterlevels: FEHLER: Keine Pegelstände erhalten")
return None
stations = []
for station_json in stations_json:
stations.append(
{
'geometry': {
'longitude': station_json['longitude'] if 'longitude' in station_json else None,
'latitude': station_json['latitude'] if 'latitude' in station_json else None,
},
'attributes': {
'uuid': station_json['uuid'],
'shortname': station_json['shortname'],
'number': station_json['number'],
'agency': station_json['agency'],
'unit': station_json['timeseries'][0]['unit'],
'timestamp': station_json['timeseries'][0]['currentMeasurement']['timestamp'],
'value': station_json['timeseries'][0]['currentMeasurement']['value'],
'stateMnwMhw': station_json['timeseries'][0]['currentMeasurement']['stateMnwMhw'],
'stateNswHsw': station_json['timeseries'][0]['currentMeasurement']['stateNswHsw'],
'water': station_json['water']['longname'],
},
}
)
print("getWaterlevels: %d Pegelstände erhalten" % (len(stations),))
return stations