Model Baker Datenimport: Aktualisierung Daten im Baseset mit Fehlern beendet

Guten Tag

Ich versuche zurzeit die Nutzungsplanungsdaten (GEP) einer Gemeinde im Kanton Graubünden mit dem Model Baker in QGIS zu importieren. Beim Schritt „Datenimport Sessions - Aktualisiere die Daten im Dataset Baseset“ mit der xtf Datei der Gemeinde, erhalte ich eine Fehlermeldung. Hier ein Ausschnitt der Fehlermeldung:

[…]
Error: unknown referenced object
[…]
Error: polygons overlay tid1 07492e5f-c21a-4a3a-90b5-d14d88e6004b, tid2 9206ec22-44b7-4013-a88e-2312ab418be3
Error: polygons overlay tid1 895f6561-b8b3-4514-8dfd-275d76c78015, tid2 f6fd95b4-283a-48ec-ac30-b78a8c91348e
Error: failed to validate AREA Nutzungsplanung_GR_V5_1_DE.Zonenplan.ZP_Grundnutzung.Geometrie
Error: failed to transfer data from file to db
Error: dangling references
…update failed
Mit Fehlern beendet!

Hatte jemand bereits eine solche Fehlermeldung bzw. wie könnte man den Fehler lösen?

Hallo Michela

Kannst du die Daten mit ilivalidator prüfen und das gesamte Logfile inkl. Daten zur Verfügung stellen?

Auf den ersten Blick: es gibt Referenzen auf Objekten, die es nicht gibt und fehlerhafte Geometrien resp. Überlappungen bei AREA-Bedingungen.

Stefan

… Danke für die rasche Antwort. Die Validierung mit ilivalidator ist Fehlgeschlagen, hier das Logfile dazu: SwissTransfer – Sicherer und kostenloser Versand grosser Dateien

Die Ausgangsdaten können kostenlos auf NUP Originaldateien INTERLIS LV95 | GeoGR Shop heruntergeladen werden (Gemeinde Silvaplana).

Ok, da kommen ein paar Dinge zusammen. Ich weiss leider nicht wie das Nachfolgende alles mit Modelbaker umgesetzt werden kann. Da muss ein Modelbaker-Profi her @romefi ?

Die Fehler bezüglich „duplicate coords“ kommen daher, dass es im XTF unterschiedliche Koordinaten gibt, die gerundet auf Millimeter (so wie es das Modell vorschreibt) den gleichen Koordinatenwerte entsprechen. Also z.B. sowas:

<COORD><C1>2781116.8335999995</C1><C2>1147971.2100999989</C2></COORD>
<COORD><C1>2781116.8337000012</C1><C2>1147971.2102000006</C2></COORD>

Weil gleiche Koordinate, motzt der ilivalidator. Die Area-Prüfung meldet noch zwei weitere Fehler:

Error: polygons overlay tid1 07492e5f-c21a-4a3a-90b5-d14d88e6004b, tid2 9206ec22-44b7-4013-a88e-2312ab418be3
Error: polygons overlay tid1 895f6561-b8b3-4514-8dfd-275d76c78015, tid2 f6fd95b4-283a-48ec-ac30-b78a8c91348e

Das sind Polygone der Grundnutzung, die sich überlappen. Grund dafür sind fehlende Stützpunkt in einer Geometrie:


Archive.zip (33,9 KB)

Das Zip-File beinhaltet png und wordfile.

Man kann nun die Validierung fürs Erste ausschalten (--disableValidation), um die Daten überhaupt importieren zu können. Dann erscheinen beim Import der Daten nach Geopackage aber immer noch folgende Fehler:

Error: unknown referenced object Nutzungsplanung_GR_V5_1_DE.KantonaleTypenTabellen.GGP_GestaltungTypKanton TID 2232 referenced from Nutzungsplanung_GR_V5_1_DE.GenerellerGestaltungsplan.GGP_GestaltungTypGemeinde TID c2e44036-992d-11e7-baa4-0e060a842a8d
Error: unknown referenced object Nutzungsplanung_GR_V5_1_DE.KantonaleTypenTabellen.GGP_GestaltungTypKanton TID 2142 referenced from Nutzungsplanung_GR_V5_1_DE.GenerellerGestaltungsplan.GGP_GestaltungTypGemeinde TID c2e46e12-992d-11e7-baa4-0e060a842a8d
...

Und:

Error: failed to transfer data from file to db
Error:   dangling references

Das hat damit zu tun, dass im XTF Objekte auf andere Objekte verweisen, die nicht in der XTF-Datei vorhanden sind. Es handelt sich dabei um sowas wie Kataloge. Diese befinden sich im Modell-Repository Index of /NUP

Man muss diese Kataloge zuerst importieren. Meine Importbefehle lauten wie folgt:

java -jar ili2gpkg-5.2.2.jar --dbfile silvaplana1.gpkg --nameByTopic --defaultSrsCode 2056 --strokeArcs --models Nutzungsplanung_GR_V5_1_DE --doSchemaImport --disableValidation --createTidCol --importTid --import PLI_PlanungsinhaltTypKanton.xml

java -jar ili2gpkg-5.2.2.jar --dbfile silvaplana1.gpkg --nameByTopic --defaultSrsCode 2056 --strokeArcs --models Nutzungsplanung_GR_V5_1_DE --disableValidation --importTid --import ZP_ZonenTypKanton.xml

java -jar ili2gpkg-5.2.2.jar --dbfile silvaplana1.gpkg --nameByTopic --defaultSrsCode 2056 --strokeArcs --models Nutzungsplanung_GR_V5_1_DE --disableValidation --importTid --import GGP_GestaltungTypKanton.xml

java -jar ili2gpkg-5.2.2.jar --dbfile silvaplana1.gpkg --nameByTopic --defaultSrsCode 2056 --strokeArcs --models Nutzungsplanung_GR_V5_1_DE --disableValidation --importTid --import GEP_ErschliessungTypKanton.xml

java -jar ili2gpkg-5.2.2.jar --dbfile silvaplana1.gpkg --nameByTopic --defaultSrsCode 2056 --strokeArcs --models Nutzungsplanung_GR_V5_1_DE  --disableValidation --importTid --import 3790_2023-04-05.xtf

Der erste Befehl erstellt auch noch gerade die leeren Tabellen (–doSchemaImport). Wichtig sind vor allem auch die Optionen --createTidCol beim Erstellen der Tabellen und --importTid beim Importieren der Daten.

Auch ilivalidator meldet diese Referenzen ins Nirwana. Das muss man ihm aber mitteilen mit --allObjectsAccessible. Weil die Assoziation zwischen Klassen in unterschiedlichen Topics ist, geht ilivalidator standardmässig davon aus, dass die Daten des anderen Topics nicht vorhanden sind. Damit die Fehler mit ilivalidator und --allObjectsAccessible verschwinden, musst du einfach alle Kataloge beim Befehl mitliefern:

java -jar ilivalidator.jar --allObjectsAccessible xml1 xml2 xml3 xml4 meineDaten.xtf

Hallo Michela

Danke @edigonzales für die Analyse. Damit sollten die Fehler erklärbar sein.

Für Model Baker bedeutet das:
Du musst den richtigen XML-Katalog unter Index of /NUP herunterladen und zusammen mit dem XTF von Silvaplana in Model Baker importieren. Wichtig: Zuerst den XML-Katalog und erst danach das XTF importieren. So sind die Katalogeinträge sicher vor den XTF-Daten in der Datenbank und die Objekte im XTF können auf die Katalogeinträge referenzieren. Damit wäre die Fehleremeldung „unknown reference“ und „dankgling references“ behoben.

Damit du ein XTF mit Fehler in Model Baker improtieren kannst, musst du beim Import des XTF statt „Ausführen“ „Ausführen ohne Validierung“ auswählen und dann laufen lassen. So wird die Validierung beim Import ausgeschaltet.

Ich hoffe das funktioniert so, sonst gerne wieder melden.

Lieber Gruss
Romedi