Pegelonline/po_modules/po_waterlevels_reader_qgs.py

42 lines
1.6 KiB
Python

from PyQt5.QtCore import QVariant
from qgis._core import QgsCoordinateReferenceSystem
from qgis.core import QgsFields, QgsField
from .po_waterlevel_reader import PoWaterlevelReader
class PoWaterlevelReaderQgs(PoWaterlevelReader):
def __init__(self):
super().__init__()
self.fields = None
self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
def get_features(self):
print("PoWaterlevelReaderQgs::get_features: Erzeuge Features...")
self.fields = QgsFields()
self.fields.append(QgsField('shortname', QVariant.String))
self.fields.append(QgsField('number', QVariant.LongLong))
self.fields.append(QgsField('agency', QVariant.String))
self.fields.append(QgsField('timestamp', QVariant.DateTime))
self.fields.append(QgsField('value', QVariant.Double))
self.fields.append(QgsField('unit', QVariant.String))
self.fields.append(QgsField('mean', QVariant.String))
self.fields.append(QgsField('absolute', QVariant.String))
self.fields.append(QgsField('water', QVariant.String))
features = []
waterlevels = self.get_waterlevels()
if waterlevels is None or len(waterlevels) == 0:
print("PoWaterlevelReaderQgs::get_features: Fehler: Keine Pegelstände erhalten")
return None
for waterlevel in waterlevels:
feature = waterlevel.new_feature(self.fields)
if feature is not None:
features.append(feature)
print("PoWaterlevelReaderQgs::get_features: %d Features erzeugt" % (len(features),))
return features