(H)Interlis(tig)

Für FME gibt es ein gutes Plugin, um Interlis-Dateien zu lesen und zu schreiben. Beim Schreiben von Daten in komplexe Interlis-Modelle muss man aber häufig einige Knacknüsse lösen. Obwohl die meisten Punkte in der Dokumentation erwähnt sind, dauert es eine Weile bis ein FME-Workspace richtig funktioniert.

„walnut heart“ von Martin Fisch (flickr.com)

Hier einige kürzlich gelöste Knacknüsse:

  • Inkrement: Um eine Interlis-Datei mit einem UPDATE zu erstellen, gibt es das Format-Attribut xtf_operation. Dieses Attribut mit Werten zu füllen, reicht aber nicht, um ein Inkrement zu definieren. Dazu muss man bei den XTF_BASKET-Features den optionalen Attributen xtf_startstate und xtf_endstate Werte zuweisen.
  • z-Werte: Das Plugin verwendet standardmässig OGC WKB zum Kodieren der Geometrie. Z-Werte werden damit erst in Version 1.2 unterstützt; das Plugin kann momentan aber nur mit Version 1.1 umgehen. Deshalb stellt man am besten den Parameter Geometry Encoding des Writers auf FMEHEXBIN und wählt dieselbe Kodierung beim GeometryExtractor.
  • Strukturattribute: „INTERLIS structure attributes […] are mapped to FME lists.“ heisst es in der Dokumentation. Was bedeutet das konkret? Mein Objekt hat beispielsweise das Strukturattribut Validity:
    <Validity>
    <MyClass.ObjectVersionInfo>
    <ObjectValidFrom>2009-04-17</ObjectValidFrom>
    <ObjectValidTo>2010-10-27</ObjectValidTo>
    </MyClass.ObjectVersionInfo>
    </Validity>

    Um diese Struktur zu erstellen, benötige ich zuerst die drei Attribute ObjectValidFrom, ObjectValidTo und xtf_class (mit dem Wert MyClass.ObjectVersionInfo). Mit dem Transformer ListBuilder packt man diese drei Attribute in eine Liste zusammen, welcher man den Namen Validity gibt. Den Rest erledigt das Interlis-Plugin.

Eine Aufgabe konnte ich mit dem Interlis-Plugin bisher nicht lösen: Das Schreiben von XML-Attributen, beispielsweise <Reference REF="GUID:63803bd8-1082-a745-b465-93393715fbe8" />. Die Elemente, welche das Interlis-Plugin erzeugt (<Reference>GUID:63803bd8-1082-a745-b465-93393715fbe8</Reference>) wandle ich nun separat in die gewünschten Attribute um. Hinweise, ob und wie sich auch dies mit dem Interlis-Plugin lösen lässt, sind willkommen.

Jürg Mannes

Jürg Mannes

Jürg Mannes (MSc) hat an der Universität Zürich Geographie studiert. Er arbeitet seit 2005 bei Ernst Basler + Partner, zuerst in der Datenanalyse und seit mehreren Jahren als Projektleiter.

In seiner Funktion leitet er die Entwicklung von anspruchsvollen Applikationen für Kunden der öffentlichen Hand und aus der Privatwirtschaft. Daneben erarbeitet Jürg Mannes auch Software- und andere Konzepte.

Jürg Mannes ist zertifizierter Project Management Professional (PMI), HERMES Swiss Project Team Professional (HSPTP) und Professional Requirements Engineer nach dem Standard des International Requirements Engineering Board (IREB).

Mail: juerg.mannes@ebp.ch

Jürg Mannes auf:

Das könnte dich auch interessieren...

2 Antworten

  1. DR sagt:

    The Reference bug is apparently fixed in ili2fme-5.4.2, released today.

  2. Jürg Mannes sagt:

    Thanks for pointing that out. I will try the new version in the near future.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.