40 lines
1.7 KiB
Python
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
|