FME Labor

Räumliche Abfrage

FeatureReader (Transformer)

23.12.2011

Wie der Name dieses Transformers bereits vermuten lässt, werden damit Features gelesen.  Prinzipiell könnte man also einen entsprechenden Reader durch einen FeatureReader ersetzen, der von einem Creator angestoßen wird.

 

Der FeatureReader kann aber natürlich deutlich mehr als ein Reader. So kann man z.B. differenzieren, welche Objekte überhaupt eingelesen werden sollen. Im zweiten Dialogfeld des FeatureReaders kann man anhand eines Attributs einstellen, aus  welchem FeatureType (Tabelle/Layer) die Features gelesen werden sollen ("Query the feature types specified in the attribute below"). Es handelt sich dabei sozusagen um eine „FeatureTypes to Read“-Parametrisierung zur Laufzeit.  Eine weitere Einschränkung der eingelesenen Daten erreicht man durch die Definition einer WHERE-Abfrage, die ebenfalls im Transformer-Dialogfeld definiert werden kann.

 

Was den FeatureReader aber besonders leistungsstark macht, ist die Möglichkeit einer Filterung durch räumliche Abfragen.  So können z.B. nur die Objekte eingelesen werden, die sich innerhalb eines bestimmten Polygons befinden. Im Unterschied zum normalen Reader, der nur die Definition einer Min/Max-Boundingbox erlaubt, kann man mit dem FeatureReader alle Objekte einlesen, die sich innerhalb eines komplexen Polygons befinden.

 

Ein typischer Workflow mit dem FeatureReader könnte z.B. wie folgt aussehen:

 

Ein Unternehmen besitzt die Addressdaten für ein gesamtes Bundesland. Auf Anfrage von Katastralgemeinden sollen die Adresspunkte für die jeweilige Gemeinde bearbeitet werden. Dazu sollen immer nur die Punkte eingelesen werden, die innerhalb der Gemeindegrenzen liegen. Der Name der Gemeinde kann dabei als Published-Parameter bereitgestellt und von einem ParameterFetcher in ein Attribut umgewandelt werden. Ein darauffolgender Tester kann den Datensatz mit den Gemeindegrenzen auf die gewünschte Gemeinde eingrenzen. Anschließend wird man den FeatureReader dazu verwendet, nur die Objekte einzulesen, die das übriggebliebene Polygon (Gemeinde) beinhaltet (contains). Desweiteren kann man die Daten mittels einer WHERE-Abfrage weiter einschränkten,  z.B. indem man nur die Objekte einliest, die zum Verkauf freistehen.

 

Dieses Szenario kann auch ohne den FeatureReader-Transformer umgesetzt werden. Die große Stärke des FeatureReader ist es aber, dass wirklich nur die Objekte eingelesen werden, die benötigt werden, anstelle des gesamten Datenbestandes. Das führt nicht nur zu einer großen  Performance-Steigerung sondern verhindert in dem einen oder anderen Fall sogar den Absturz des gesamten Systems.

REST-Interface

REST-API

10.10.2011

Nicht nur für die Desktop-Version von FME brachte das Jahr 2011 zahlreiche Neuerungen. Zahlreiche Entwickler haben mit großer Zufriedenheit die Einführung der REST-API für den FME Server registriert. Dadurch ist es möglich, das volle Potenzial des FME Servers in selbst entwickelten Applikationen zu nutzen (z.B. Web-GIS-Erweiterungen, Integration ins GIS/CAD…). Die Integration der FME Server Dienste in der Applikation ist dabei so einfach wie nie zuvor.

 

Die Kommunikation zwischen FME Server und der Applikation erfolgt durch eine URL. Dadurch bekommt die Applikation Zugriff auf jede Funktionalität des FME Servers, unabhängig von der Programmierumgebung, in der sie entwickelt wurde.

 

Wird die URL innerhalb der Applikation aufgerufen, so werden die Parameter von dem zugrunde liegenden Workspace abgefragt. Das Ergebnis wird automatisch in Form von HTML, XML oder JSON als Data Stream zurückgegeben. Anschließend kann das Ergebnis in beliebiger Form von der Applikation weiterverarbeitet werden (z.B. Webshop).

 

Um z.B. ein Formular zum Data-Download in die Applikation zu integrieren, muss man lediglich in der neuen REST-Oberfläche (http://fmeserver.at[:8080]/fmerest/) zum entsprechenden Workspace navigieren. Dort hat man dann Zugriff auf alle Informationen und Parameter der FME-Workbench-Datei wie Reader/Writer, FeatureTypes, published parameters und Ressourcen.

 

Durch den direkten Zugriff auf diese Informationen via URL-Abfragen können auf einfache Weise dynamische, wartungsfreundliche und parametrisierbare Applikationen entwickelt werden. Auf die gleiche Weise kann man zudem die volle FME Server Funktionalität mit weit verbreiteten Diensten ArcGIS Server, GoogleMaps, Bing, OpenLayers etc. schnell und sicher kombinieren.

LIDAR-Daten

Punktwolken

23.06.2011

Mit dem Release von FME 2011 wurde die Liste der Geometrietypen um den Geometrietyp Punktwolke (engl. Point Cloud) erweitert. Als Punktwolke bezeichnet man im Allgemeinen eine Ansammlung von Stützpunkten in einem dreidimensionalen Raum. Dieser Zusammenschluss von Punkten wird in FME als ein einziges Feature vom Typ PointCloud interpretiert.

Wie jede Vektor-Geometrie besteht auch eine Punktwolke aus XYZ-Koordinaten und Attributen. Im Falle der Punktwolken kommen noch spezielle Attribute, die sog. Komponenten (components) hinzu. Diese Komponenten können z.B. Informationen zum Befliegungszeitpunkt, Flugroute, Wetterverhältnissen etc. beinhalten.

Man kann eine Punktwolke auch wie ein Rasterbild betrachten, das in sich genommen ein einziges Feature mit einer festgelegten Ausdehnung darstellt, welches aber aus vielen einzelnen Zellen (Pixeln) besteht.

 

Durch die Unterstützung von Point-Cloud-Geometrien eignet sich FME nun auch für die Verarbeitung von LIDAR-Daten. Dies scheiterte zuvor an mangelnder Performance, da jeder gemessene Punkt des LIDAR-Datensatzes als ein einzelnes Feature interpretiert wurde.

Das gängigste PointCloud-Format ist LAS. Es wurde als offenes und standardisiertes Format für die Speicherung von LIDAR-Daten entwickelt. FME stellt einen LAS-Reader- und Writer zur Verfügung, der die Features automatisch als Punkwolken erkennt.

 

Oft werden LIDAR-Daten jedoch als nicht-standardisierte Text-Dateien abgelegt. Für diesen Fall gibt es den sog. XYZ-Reader- und Writer. Ähnlich wie bei CSV-Dateien, können bei diesem Format Einstellungen getroffen werden, welche die korrekte Interpretation der Text-Dateien erlauben, die die LIDAR-Daten beinhalten.

Weitere Formate, die Punktwolken unterstützen sind Oracle, Geodatabase und MrSID. Das Lesen und Schreiben von Punktwolken mit diesen Formaten soll in den kommenden FME-Versionen ermöglicht werden.

Eigens für die Verarbeitung von Punktwolken wurde eine neue Transformer-Kategorie entwickelt. Diese beinhaltet die Transformer PointCloudCoercer, PointCloudCombiner, PointCloudCreator, PointCloudPropertyExtractor, PointCloudSplitter und PointCloudThinner.

Mit diesen speziellen Transformern ist es z.B. möglich, Punktwolken zu bearbeiten ohne deren Geometrie zu ändern, Punktwolken aus anderen Geometrien erzeugen oder Punktwolken in andere Geometrien umzuwandeln.

 

Alle übrigen Transformer können selbstverständlich auf die gleiche Weise auf Punktwolken angewendet werden wie auf jeden anderen Geometrietyp. Die besonderen Eigenschaften der Point Cloud Geometrie werden automatisch erkannt und sinngemäß angewendet.

Inspection Point

FME Inline Inspection

09.05.2011

Funktioniert ein selbstgeschriebenes Programm mal nicht so wie geplant, so startet der clevere Programmierer einen Debugger und schaut sich das erzeugte Ergebnis Codezeile für Codezeile an, bis er den Punkt im Programmcode erreicht, der den Bug verursacht.

 

Was aber tun, wenn ein FME-Workspace mal nicht so funktioniert wie es sollte? Bisher hängte man an kritischen Stellen, Visualizer-Transformer an und schickte das gesamte Ergebnis in den FMEViewer. Dort konnte man die Zwischenergebnisse als eigene Layer, analysieren und so die Stelle im Workspace identifizieren, die für den Fehler verantwortlich war. Diese Art des Debugging zeigte immer den gesamten Datensatz an. Gab es im Workspace eine Stelle, die einen Abbruch verursachte, so wurde der FMEViewer erst gar nicht gestartet. Hat man dann endlich doch den Fehler  gefunden, blieb immer noch die Frage – was tun mit all den nicht mehr benötigten Visualizern?

 

Wie jede gute Programmierumgebung, bietet nun auch FME 2011 einen Debugger an – die sog. „Inline Inspection“. Mit Rechtsklick auf eine Verbindung kann man überall im Workspace einen „Inspection Point“ einfügen. Startet man anschließend FMEWorkbench mit „Run translation with inspection“, so wird das Programm an dieser Stelle gestoppt und es öffnet sich ein spezieller Viewer -  der „Feature Inspector“ und zeigt das erste Feature an, welches diese Stelle erreicht.

 

Im Feature Inspector hat man dann die Wahl dieses Feature zum nächsten Inspection Point zu schicken, das nächste Feature an diesem Inspection Point anzuzeigen, den gesamten Datensatz ohne weitere Inspektion durchlaufen zu lassen oder die Übersetzung abzubrechen.

 

Desweiteren ist es möglich Bedingungen für einzelne Inspection Points zu definieren. So sollen z.B. nur die Features im Feature Inspector angezeigt werden, die eine ID größer als 100 haben oder deren ID durch 100 teilbar ist (jedes 100’ste Feature als Stichprobenkontrolle).

 

Im eigenen Menüpunkt „Inspection“ ist es schließlich möglich alle Inspection Points auf einmal zu deaktivieren oder zu löschen.  

Templates

FME Templates

15.02.2011

Über die Jahre hat sich FME zu einem leistungsstarken und effizienten Werkzeug entwickelt. Jeder neue Transformer steigerte zwar den Funktionsumfang der Software, verunsicherte jedoch, aufgrund der immer größeren Komplexität, Einsteiger und Gelegenheitsnutzer.

 

Um den Zugang zu FME zu erleichtern, ist es nun möglich neue Workbenches auf vorhandenen Vorlagen, sog. FME-Templates aufzubauen.

 

Mit der Installation von FME 2011 werden auch zahlreiche FME-Templates mit installiert und nach Themen geordnet im Anzeigefenster des „Create New Workspace“-Dialogs aufgeführt. Die Themen beziehen sich auf Koordinatensysteme, FME Server, Formate und Transformer und beinhalten vorgefertigte Workbenches zu den gängigsten Aufgabenstellungen in FME. Diese müssen dann nur noch an die Nutzerspezifischen Parameter angepasst werden.

 

Durch das Benutzen von FME Templates können Arbeitsabläufe schneller und effizienter gestaltet werden, da immer wiederkehrende  Prozesse nicht jedesmal vom Neuen aufgebaut werden müssen. Zudem können Templates anderen Kollegen zur Verfügung gestellt werden, die mit ähnlichen Aufgabenstellungen arbeiten.

 

Eine weitere Ressource für etwas anspruchsvollere Templates ist der FMEpedia-Community-Server, mit dem sich FME bei jedem Start automatisch verbindet.  Hier findet man u.a. Templates mit vordefinierten PythonScript- und TCL-Aufrufen sowie zahlreiche Templates für PointCloud- und Datenbankszenarios. Dadurch kommen auch erfahrenere FME-Nutzer auf ihre Kosten, die durch das Benutzen dieser Templates neue Wege zur Entwicklung von Workbenches lernen können. Diejenigen schließlich, die sich als FME-Power-Nutzer sehen, können hier ihre eigenen Templates hochladen und diese mit der weltweiten FME-Community teilen.

Styler Transformer

Styler (Transformer)

12.01.2011

Mit FME 2011 können die visuellen Eigenschaften von Geometrie-Objekten durch neue  Transformer wesentlich leichter gesteuert werden. Diese wurden bisher mithilfe formatspezifischer Attribute bearbeitet.

 

FME-Nutzer kennen bereits den PDFStyler und KMLStyler, mit denen man auf einfache Weise visuelle Eigenschaften wie Strichstärke, Farbe oder Symbole von Features einstellen kann. Hierfür wird kein tieferes Verständnis der internen Definition dieser Formate vorausgesetzt.

 

Die Gruppe der Styler wird nun um die Transformer DWGStyler, DGNStyler und MapInfoStyler ergänzt. Die direkte Bearbeitung von z.B. Attributen wie autocad_lineweight (Strichstärke einer Linie in AutcoCAD) ist damit nicht mehr notwendig. An deren Stelle tritt die komfortable Oberfläche der neuen Transformer, in der diese Einstellungen definiert werden.

Top