Bei der Entwicklung eines Testdatensatzes ist der Entwickler auf folgendes Problem gestossen. Im Datenmodell ist eine Struktur beschrieben, die ein Attribut mit einer Geometrie enthält:
STRUCTURE Flaechenelement =
Geometrie: MANDATORY SURFACE WITH (STRAIGHTS, ARCS) VERTEX GeometryCHLV95_V2.Coord2
WITHOUT OVERLAPS > 0.002; …
Um mit INTERLIS 2.4 kompatibel zu sein, muss diese Geometrie im Format „HexOGC Binary“ ausgegeben werden, was aktuell nicht möglich zu sein scheint. Insbesondere scheinen dort die Kreisbögen ein Problem zu verursachen.
Ist schon mal jemand auf dieses Problem gestossen und kennt die Ursache oder noch besser die Lösung?
@geoverm Ich würde es mal mit FME Binary (FMEBIN) versuchen. Ich denke nicht, dass es ein INTERLIS 2.4-Problem ist. Ansonsten kannst du mal ein Beispiel-Workspace hier posten, wo das Problem isoliert nachgestellt ist.
Das ili2fme-Handbuch empfiehlt die Nutzung von FMEBIN oder FMEXML für die Geometriecodierung. Selber habe ich schon mit mehreren Einstellungen gearbeitet, allerdings nur in INTERLIS 2.3. Ausserdem muss die gewünschte Geometriecodierung sowohl im Writer als auch im Transformer ausgewählt werden, sonst bleiben die Geometrien leer.
Die Fehlermeldung sieht folgendermassen aus: Log_Control.log (2,8 KB)
Und das INTERLIS-Transferfile mit den Originaldaten: 0449000401_Original.itf (5,0 MB)
Fehlermeldung ist mehr oder weniger klar: ili2fme kann mit der Geometrie, die man ihm zum Frass vorwirft, nicht umgehen. Kenne mich aber in ili2fme zu wenig aus. Kreisbogen gehen mit FME, oder? Dann müsste man schauen, dass der WKB-Typ korrekt ist. Irgendwie ensteht die Geometrie, die geschrieben werden soll.
Alternativ zu den beiden bereits genannten FME-Transformern könnte man auch versuchen mit dem GeometryCoercer den genauen Geometrietyp festzulegen, welcher mit dem Interlis-Typ übereinstimmt.
Mein allgemeiner Lösungsansatz ist jeweils den FeatureCache zu aktivieren und dann Schritt für Schritt die Transformer zu prüfen, bis der Übertäter gefunden ist. Mit dem Preview und der Infoabfrage lassen sich die Geometrien recht gut analysieren.
Eventuell auch probieren, die Geometrien als Gegenvergleich in ein anderes Format (Geopackage?) zu schreiben und zu prüfen, ob dort der Fehler auch auftritt. Dann wäre es nicht ein ili2fme, sondern ein generelle FME-Problem.
Mit den reinen Rohdaten und der Fehlermeldung lässt sich dazu nicht mehr sagen, da müsste man schon den Workbench und das Datenmodell analysieren.
edit: was sagt der GeometryValidator zur Geometrie?
Falls es ein Fehler vom FME-Plugin ist und es nicht zeitnah nicht gefixed werden kann (oder handelt es sich noch um fehlende INTERLIS 2.4-Unterstützung im FME-Plugin?), könnte man das Herstellen des Testdatensatzes auch anders bewältigen:
Herstellen einer leeren Geopackage-Datei mit ili2gpkg („–schemaimport“)
Befüllen der leeren Geopackage-Tabellen mittels FME.
Exportieren aus der Geopackage-Datei in eine XTF mittels ili2gpkg. („–export“)
In diesem Fall bietet es sich an, im ili2fme Repository auf github ein neues Issue zu eröffnen, dort die Problematik nochmals zu schildern und einen minimalen FME-Workspace bereitzustellen, wo das Problem nachvollzogen werden kann.