Pegelonline/po_modules/po_waterlevel.py

40 lines
1.7 KiB
Python

from qgis._core import QgsFeature, QgsGeometry, QgsPointXY
class PoWaterlevel(object):
def __init__(self, json):
self.longitude = json['longitude'] if 'longitude' in json else None
self.latitude = json['latitude'] if 'latitude' in json else None
self.uuid = json['uuid']
self.shortname = json['shortname']
self.number = json['number']
self.agency = json['agency']
self.unit = json['timeseries'][0]['unit']
self.timestamp = json['timeseries'][0]['currentMeasurement']['timestamp']
self.value = json['timeseries'][0]['currentMeasurement']['value']
self.mean = json['timeseries'][0]['currentMeasurement']['stateMnwMhw']
self.absolute = json['timeseries'][0]['currentMeasurement']['stateNswHsw']
self.water = json['water']['longname']
def new_feature(self, fields):
if self.longitude is None or self.latitude is None:
print("PoWaterlevel::new_feature: WARN: Station hat fehlende Koordinaten: %s" % (self.shortname,))
return None
feature = QgsFeature(fields)
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(self.longitude, self.latitude)))
feature.setAttribute('shortname', self.shortname)
feature.setAttribute('number', self.number)
feature.setAttribute('agency', self.agency)
feature.setAttribute('timestamp', self.timestamp)
feature.setAttribute('value', self.value)
feature.setAttribute('unit', self.unit)
feature.setAttribute('mean', self.mean)
feature.setAttribute('absolute', self.absolute)
feature.setAttribute('water', self.water)
return feature