[FOSSGIS-Talk] kleine Auffälligkeiten beim featureCount()

bmarcus at giswana.de bmarcus at giswana.de
Mo Mai 11 08:11:40 CEST 2026


Hallo Listenmitglieder,

 

ich bin zwar kein blutiger Python Anfänger, aber mit der PyGIS-API tu ich
mich immer wieder gerne schwer.

Um den Standart-Wert von Eingabeparameter eines QGIS-Modells etwas
dynamischer zu gestalten, habe ich das Modell als Python-Skript exportiert
und entsprechend angepasst. Um die Lauffähigkeit des Skripts zu
gewährleisten, stehen natürlich noch weitere Änderungen an, bei denen ich
auf ein interessantes, mir unerklärliches Phänomen bei der Bestimmung der
Objektanzahl gestoßen bin. Nachfolgendes Skriptschnippsel  

 

log_tbl = QgsProject.instance().mapLayer(

    't_sys_log_leitbild_24ced76d_bd40_43af_a214_35d4ad8b545f'

    )

print(f'1. Anzahl Features log: {log_tbl.featureCount()}')

 

alg_params = {

    'FIELD': 'user',

    'INPUT': 't_sys_log_leitbild_24ced76d_bd40_43af_a214_35d4ad8b545f', 

    'OPERATOR': 0,

    'VALUE': 'Horst'

    'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT

}

proc_child = processing.run(

    'native:extractbyattribute', alg_params, is_child_algorithm=True

    )['OUTPUT']

proc_child_lyr = QgsVectorLayer('proc_child', '', 'ogr')

print(f'2. Anzahl Features proc_child_lyr: {proc_child_lyr.featureCount()}')

 

proc_lyr = processing.run(

    'native:extractbyattribute', alg_params

    )['OUTPUT']

print(f'3. Anzahl Features proc_lyr: {proc_lyr.featureCount()}')

 

führt zu folgender Ausgabe:

 

1. Anzahl Features log: 0

2. Anzahl Features proc_child_lyr: -2

3. Anzahl Features proc_lyr: 4

 

Die Tabelle "t_sys_log_leitbild" nimmt über Trigger gesteuert, Änderungen
eines Layers innerhalb eines GeoPackages entgegen. Horst hat 4 Änderungen an
dem Layer durchgeführt. Die Ausgabe von 3. ist somit korrekt. 

Da QGIS von den Änderungen innerhalb der Datenbank nichts mitbekommen hat,
wird für 1. eine Objektanzahl von 0 ausgegeben. Ist somit nachvollziehbar.

Warum sich allerdings die Ergebnisse von 2. und 3. unterscheiden und wieso
die Anzahl von Tabelleneinträgen negativ sein kann, bleibt mir schleierhaft.
Kann hier jemand Licht ins Dunkel meiner Gehirnwindungen bringen?

Zudem würde mich ebenfalls interessieren, ob es eine Methode gibt, die das
Abrufen des aktuellen Zustands einer Datenbanktabelle ermöglicht oder ob
eine Verbindung zur Datenbank mit SQL-Abfrage den einzig sicheren Weg
darstellt.

 

Mein Dank im Voraus 

und schöne Grüße

Bernd

 

 



Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste