FME-Labor

Engineauslastung als Diagramm

FME Server 2017 - Teil 4

Updates

31.07.2017

Connections

Connections bieten eine sichere Möglichkeit Datenbank- und Webverbindungen zentral am FMEServer abzulegen und permanent vorzuhalten. Ändern sich diese, so müssen sie nur an einer einzigen Stelle geändert werden und nicht im jeden einzelnen Workspace in dem sie benutzt werden. Anstelle der Zugangsdaten wird im Workspace nur eine Verbindungs-Referenz angegeben. Gelangt jemand in den Besitz des Workspaces, so erhält er dadurch keine Einsicht in die Zugangsdaten zu der Datenbank. HTTP-Authentifizierung für Web-Verbindungen ist nun mit den Methoden Basic, Digest und NTLM möglich.

 

Notifications

Bei den Notifications wurde v.a. der Directory Watch Publisher verbessert. Lokale Pfadangaben und UNC-Pfade werden jetzt auf die gleiche Weise verarbeitet und aufgerufene Topics können direkt in der FMEServer-Oberfläche beobachtet werden. Der SMTP-Email Publisher wurde mit einer neuen Technologie implementiert wodurch er stabiler läuft und gleichzeitig weniger Ressourcen verbraucht. Der Subscription-Type „Push“ wurde in „Workspace“ umbenannt.

 

FMEServer-Transformer

Der Transformer FMEServerJobSumitter wurde grundlegend überarbeitet. Der Dialog-Assistent wurde durch einen einfachen Dialog ersetzt. Dieser ist jetzt in der Lage mittels Job-Routing vorgegebene Engines anzusteuer und die Published-Parameter des Kind-Workspaces sind übersichtlicher gestaltet. Von dem Transformer angestoßene Jobs laufen jetzt gänzlich innerhalb des FMEServer-Systems. Die Einstellung „Wait for job to complete: Yes“ bewirkt nicht mehr, dass eine unregistrierte Sub-Engine gestartet wird. Jobs werden auf registrierte Engines verteilt bzw. in die Queue verschoben. Kindprozesse werden einfach wie normale Jobs samt dazugehörigen Log-Dateien über die Jobs-Benutzeroberfläche dokumentiert.

Hinzufügen eines AD-Users

FME Server 2017 - Teil 3

Verwaltung

13.06.2017

Job Routing

Die Zuweisung von  Jobs zu bestimmten Engines das sog. „Job Routing“ kann 2017 über die Verwendung der REST-Api erfolgen. Dadurch müssen prozessbezogene Optimierungen nicht mehr über das Editieren von Config-Files durchgeführt werden und stehen damit auch Cloud-Benutzern zur Verfügung. Job-Directives können direkt beim Start des Workspaces mitgegeben werden.

 

Ressources

Dies gilt zudem auch für die Erstellung neuer Ressource-Ordner. Der Ablageort kann dabei in Form eines UNC-Pfades übergeben werden. Es ist aber auch möglich auf cloudbasierte Datenquellen, sog. Network Connections zuzugreifen (z.B. Dropbox, GoogleDrive etc.) Connection can be a network connection (Dropbox…) or UNC-path. In FME Desktop können Quelldaten direkt von einem FMEServer-Ressource-Ordner bezogen werden. Der Log-Ressource-Ordner wurde um Tomcat- und Datenbank-Logs erweitert.


Active Directory

Die Userverwaltung über ActiveDirectory ist jetzt noch einfacher. FMEServer Security und Active Directory können jetzt gleichzeitig verwendet werden. Es ist möglich einzelnen AD-Nutzer oder ganze AD-Gruppen in die Userverwaltung zu übernehmen. Diese werden wie normale FMEServer-User behandelt, die Authentifizierung findet aber immer noch über ActiveDirectory statt. Beim BackUp des FMEServers werden übrigens auch die AD-User übernommen und am neuen FMEServer eingespielt.

Engineauslastung als Diagramm

FME Server 2017 - Teil 2

Neue Funktionen

08.05.2017

Prozesskontrolle

Unter allen Verbesserungsvorschlägen der User-Community gewann die Möglichkeit einer automatischen Ablaufzeit für FMEServer-Jobs die meisten Stimmen. Dadurch kann verhindert werden, dass ein Prozess den gesamten FMEServer blockiert. Im Advanced Abschnitt des Workspaces-Dialog kann nun unter „Running Job expire Time“ eingegeben werden, nach welcher Zeit der Job automatisch beendet werden soll (z.B. wenn der Prozess keine Rückmeldung mehr gibt oder wenn eine zu große Datenmenge hochgeladen wurde). Weitere Einstellungsmöglichkeiten für die Ablaufzeit befinden sich im Menüpunkt Schedules, Subscriptions sowie im Transformerdialog vom FMEServerJobSubmitter und können für laufende sowie für wartende Jobs eingestellt werden.

 

Projekte

Ein völlig neues Feature sind die Projects. Dabei handelt es sich um portable FMEServer-Lösungen. Zusammenhängende Lösungen können in einem Project abgelegt und einfach auf einen anderen FMEServer übertragen werden. Zu einer Lösung zählen u.a. die Workspaces, Connections, User, Userbrechtigungen (Roles), Ressource-Daten, Notifications, Triggers etc. Projekte werden also von einem FMEServer heruntergeladen (exportiert) und auf einem anderen Server eingespielt (importiert) und können dort sofort mit vollem Funktionsumfang benutzt werden. Die heruntergeladenen Projekte können archiviert und im Sinne eines Lösungsbasierten Back-Ups vorgehalten werden.

 

Owner

Eine Neuerung im Sicherheitsmodul ist die Möglichkeit jeder Komponente einen Besitzer zuzuordnen. Alles was ein User erstellen kann wird ihm automatisch zugewiesen. Er kann diese Komponenten anschließend mit einzelnen Usern oder ganzen Rollen teilen. Jobs können zudem nach Besitzern gefiltert werden und der Besitzer eines Jobs ist auch in der Lage diesen manuell zu beenden.

 

Dashboards

Die Auswertung der Engine-Auslastung erleichtert 2017 die neue Dashboard-Statistik für wartende Jobs (Queue) „Daily average qued time“.

FME Server 2017 Benutzeroberfläche

FME Server 2017 - Teil 1

Benutzeroberfläche

20.03.2017

Mit dem Software-Release 2017 bringt Safe Software nach eigenen Angaben die beste Version des FMEServers heraus, die es je gab. Das ist nicht zuletzt den Usern zu verdanken, die über das User-Portal die Möglichkeit hatten ihre eigenen Verbesserungsschläge vorzubringen und zu bewerten.

 

Am Augenscheinlichsten spiegeln sich die zahlreichen Verbesserungen in der komplett neu konzipierten Weboberfläche. Die 2016er Oberfläche glänzte mit viel freiem Raum und einem verspielten Design. User beklagten dabei jedoch v.a. die fehlende Übersicht und die wenig intuitive Navigation. Funktionen versteckten sich in zahlreichen Untermenüs, die erst über viele Clicks zu erreichen waren.

 

2017 sind nun alle Funktionen übersichtlich auf der linken Seite angeordnet und über einen einzigen Click erreichbar. In Abhängigkeit von dem Berechtigungslevel des Users befinden sich so mal mehr mal weniger Funktionsbutton auf der Hauptseite. Um die Übersichtlichkeit zu verbessern können z.B. User mit mobilen Geräten Funktionsnamen durch Icons ersetzen. Die Menüführung ist elegant und alles lässt sich schnell und einfach durch einen einzigen Click erreichen (2016 Doppelklick-Regel im Ressource-Menü).

 

Die schnelle Reaktionszeit des Web-Interface ist auf das Angular Framework zurückzuführen, welches zum ersten Mal für die Entwicklung der Anwendung benutzt wurde. Alleine die Zeit vom Einloggen, über das Ausführen des Workspace bis zur Analyse der Logfiles verkürzt sich durch die neue Oberfläche auf die Hälfte.

 

Zuletzt durchgeführte Jobs werden zusammen mit anderen kürzlich verwendeten Komponenten gut sichtbar auf dem Dashboard der Hauptseite präsentiert. Häufig benutzte Workspaces können als Favouriten gekennzeichnet und somit noch schneller aufgerufen werden.

HTML Workspace

HTML in FME (Transformer und Writer)

23.12.2016

HTML gehört wohl zu den eigentümlichsten Datenformaten, die mit FME bearbeitet werden können. Es ist kein räumliches Format, verfügt aber auch nicht über die typischen tabellarischen Eigenschaften, wie andere nicht räumliche Daten (z.B. nicht räumliche Datenbanken oder Excel-Sheets). Es ähnelt zwar XML, dient aber nicht zur Datenhaltung sondern zur Datenpräsentation. Es verfügt über keine fortlaufende Struktur, weshalb das Lesen dieser Daten, den User vor bestimmte Herausforderungen stellt.

 

Und dennoch ist HTML ein wesentlicher Bestandteil eines unternehmensweit eingesetzten Informationssystems. Anders als bei anderen Datenarten, geht es hier weniger um geradlinige Transformation von Daten, als darum Ergebnisse daraus dynamisch, interaktiv und in einer ansprechenden Form zu präsentieren.

 

Die neuen HTML-Funktionen in FME sollen es ermöglichen, per Click auf einen Button in einer HTML-Anwendung, einen Prozess zu starten, der das Einlesen und Prozessieren von Daten beinhaltet, daraus statistische Berechnungen ermittelt und diese anschließend in Form von Diagrammen, Reports, Tabellen und Karten in die HTML-Anwendung zurückliefert. Die Reports können zudem Download-Links zu den Quelldaten beinhalten.

 

Zu diesem Zweck hat FME zwei neue Transformer in seine Galerie aufgenommen: den HTMLReportGenerator und HTMLLayouter. Zuvor waren HTML-Strukturen nur möglich, in dem man sie manuell, analog zu einem Texteditor, konstruierte. Zudem existierte bis dato kein dedizierter HTML-Writer.

 

Der HTMLReportGenarator erstellt HTML-Seiten aus ankommenden Features. Damit ist es einerseits möglich einfache HTML-Webseiten zu erstellen (Header, Text, Bilder etc.), aber auch Reports in Form von Diagrammen oder Tabellen. Mit diesem Transformer ist es sogar möglich räumliche Features in Form einer interaktiven Karte bereitzustellen und diese auf einem Webservice wie GoogleMaps oder ESRI Leaflet zu präsentieren. Für jeden Inhaltsblock werden unterschiedliche Parameter zur Verfügung gestellt, wie z.B. Diagrammart, Webservice, Text, Farbe, Ausrichtung etc. Der Transformer selbst, kann im Group-By-Modus ausgeführt werden, so dass ein eigener Report pro Featuregruppe erstellt werden kann.

 

Der HTMLLayouter vereinigt die verschiedenen Report-Gruppen zu einem einzigen HTML-Feature, wobei die einzelnen Gruppen vertikal oder tabellarisch angeordnet werden können. Dieses Feature wird dann letztendlich in den neuen HTML-Writer geschickt.

 

Damit ist es z.B. möglich mit dem StatisticsCalculator statistische Berechnungen durchzuführen, und diese anschließend in einem Tortendiagramm auf einer Webseite zu präsentieren. Oder man kann mit dem PointOnAreaOverlayer alle Addresspunkte ermitteln, die in einem bestimmten Gebiet liegen und diese als Tabelle auf eine HTML-Seite rausschreiben. Räumliche Features können mit einem GeometryValidator überprüft werden und das Ergebnis kann als  HTML-Report, mit einer genauen Auswertung wieviel Features, die Prüfung nicht bestanden haben und warum, präsentiert werden.

 

Zusammen mit der immensen Fülle an anderen FME-Werkzeugen, bieten die neuen HTML-Funktionen ganz neue Möglichkeiten, Datenprozesse dynamisch, interaktiv und visuell ansprechend zu präsentieren. Vor allem in Verbindung mit dem FMEServer und dessen Streaming-Diensten kann die webbasierte Dynamik vollends ausgeschöpft werden.

Emailer

Emailer

21.09.2016

Auf diesen Transformer haben die FME-Nutzer lange warten müssen. Wollte man früher aus dem Workspace-Prozess heraus ein E-Mail verschicken, so ging das nur indem man einen komplizierten Weg über ein Python-Skript ging, den man mittels des PythonCaller-Transformers an der entsprechenden Stelle im Workspace platzierte. Mit FME 2016 hat man endlich mit dem Emailer den Transformer, der E-Mails ohne Zuhilfenahme von Python aus FME heraus verschickt. Alles was man dazu braucht ist ein SMTP-fähiger Server über den die E-Mails versendet werden (z.B. smtp.gmail.com). Der Transformer verschickt dann für jedes Feature, welches durch ihn durchläuft ein neues E-Mail an den eingestellten Adressaten mit dem angegebenen Inhalt und eventuellem Anhang.

 

So kann man z.B. in einen automatischen Beladungsprozess Abfragen einbauen, die die Richtigkeit der geschriebenen Daten gewährleisten. Entspricht ein Feature mal nicht den geforderten Richtlinien, so wandert es direkt von dem Filter-Transformer (z.B. Tester, GeometryFilter etc.) an den Emailer. Diesem wird die E-Mail-Adresse des für den Datensatz zuständigen Mitarbeiters übergeben, die sich z.B. in einem Attribut des eingehenden Features befindet und der Mitarbeiter bekommt eine Benachrichtigung, dass ein Objekt in seinem Datensatz nicht in die Datenbank geschrieben werden konnte. Zusätzlich bekommt er als weitere Information die genaue Fehlermeldung, die zuvor noch in einem AttributeManager generiert und ebenfalls an den Emailer übergeben wurde.

 

Im Zusammenhang mit dem FeatureWriter kann das Feature vor dem E-Mail-Versand, aus dem FME-Prozess heraus, in eine Datei (z.B. GML, Shape, FFS) herausgeschrieben und als Anhang mitversendet werden.

 

Anstelle einer Datei reicht dem zuständigen Mitarbeiter aber unter Umständen auch nur das Wissen über die Lokation des jeweiligen Features um herauszufinden, warum dieses Feature das im E-Mail übermittelte Kriterium nicht erfüllt. Eine sehr einfache Möglichkeit genaue Lokationen abzufragen bietet der Internet-Service what3words. Dieser Service erstellt für die gesamte Welt anhand eines 3m x 3m Rasters eindeutige IDs, die sich aus einer Kombination aus 3 Wörtern zusammensetzen. Dies ist insofern sinnvoll, als dass nicht jede Stelle auf der Welt mit einer Adresse versehen ist und eine Kombination aus drei Wörtern sicherlich einprägsamer ist als z.B. lange GPS-Koordinaten. So lautet z.B. die what3words-Adresse von axmann „frühes.bejahen.spitze“ (für alle die schon mal Probleme hatten uns zu finden).

 

Speziell für diesen Service wurden 2 CustomTransformer entwickelt, die einfach über den FMEStore in die Workbench heruntergeladen werden können. Der What3WordsEncoder übersetzt Koordinaten in eine w3w-Sequenz. Der What3WordsDecoder wandelt w3w-Sequenzen in Punkt-Features um. Alles was man dazu brauch ist eine w3w-API, die nach einer Registrierung bei what3words generiert werden kann.

 

Um zu unserem ursprünglichen Szenario zurückzukehren, kann man sich also vorstellen dass unser Fachkollege ein E-Mail mit der Fehlermeldung und der w3w-Sequenz erhält um so schnell herauszufinden, wo sich das fehlerhafte Feature genau befindet.

Tunnels und mehr

Tunnels und mehr

01.06.2016

Es sind nicht immer die großen Dinge, die unser Herz höher schlagen lassen. Oft sind es Kleinigkeiten, die unser Leben vereinfachen. So waren es bei der diesjährigen WorldTour auch nicht die neuen Formate wie die NonSQL-Datenbanken MongoDB oder GeoCouch und auch nicht neue Transformer wie der DropboxConnector oder TempPathnameCreator, die ein Raunen im Publikum erzeugten.

 

Größter Beliebtheit erfreuten sich Features, die es ermöglichen Verbindungen zu bündeln (Junctions), verschwinden zu lassen (Tunnels und hidden Connections) sowie  Ein- und Ausgänge beliebig anzuordnen.

 

Bei komplexen Workspaces kommt es oft vor, dass Daten und Zwischenschritte, die im Zuge der Prozessierung in einzelene Teilprozesse verlagert, gesplittet oder parallelisiert wurden, zu einem späteren Zeitpunkt im Workspace wieder zusammenkommen müssen. Um lange Verbindungen, die kreuz und quer über den gesamten Workspace gehen zu vermeiden, bediente man sich bisher des Samplers, der bei Standardeinstellung keine Aufgabe erfüllt, als dass er alle ankommenden Datenströme wieder in einem einzigen Output vereinigt. In FME 2016.1 gibt es jetzt eigens dafür die „Junctions“, also Krezungen oder Schnittpunkte die ankommende Datenströme zu einem vereinigen. Das Ergebnis ist also ein sauberer und übersichtlicher Workspace ohne überflüssige Transformer.

 

Egal wie sehr man sich auch bemüht überkreuzende Verbindungen zu vermeiden, stößt man bei großen Prozessierungen dann doch immer irgendwann an die Grenzen des Möglichen und landet am Ende im gefürchteten Spinnennetz. Besonders ärgerlich ist es, wenn man z.B. an mehreren Stellen im Workpace Prüfungen durchführt und alle fehlerhaften Daten in einen bestimmten Abschnitt im Workspace schickt. Hier ist es nicht unbedingt notwendig auf den ersten Blick sehen zu können wo genau die Daten herkommen, insbesondere wenn sie den Rest des FME-Models unleserlich machen. Daher ist es jetzt möglich mit einem Rechtsklick auf die Verbindung und Benutzung der „Hide“-Option eine Verbindung verschwinden zu lassen und so gewährleisten, dass das worauf es ankommt auch lesbar bleibt. Man kann sogar schon bei der Entwicklung einen „Tunnel“ erstellen (versteckte Verbindung, die über Junctions geht) und sein Modell von Anfang an richtig planen.

 

Viele Ästhetiker bringen überkreuzte Verbindungen an benachbarten Transformer an den Rand der Verzweiflung. Z.B wenn man den Failed-Port eines Testers mit dem Clippee-Port eines Clippers und Passed mit Clipper verbinden muss, hat man keine Möglichkeit mehr eine Überschneidung zu verhindern. In FME 2016.1 reicht jetzt aber ein Rechtsclick auf den gewünschten Port und die Benutzung der „Move Up“ und „Move Down“ Funktion und es kann keiner mehr sagen, dass es nicht möglich gewesen ist sauber strukturierten und gut lesbaren Workspace zu erstellen.

Attribute Management

Attribute Management

16.03.2016

Die Hauptaufgabe, die mit FME durchgeführt wird ist (abgesehen von der Formatkonvertierung) das Managen von Attributen. Es gibt kaum einen Workspace, in dem nicht in irgendeiner Weise Attribute manipuliert, verändert oder harmonisiert werden.

Attribute werden hinzugefügt, gelöscht, umbenannt, verändert, beschnitten, kopiert, konkateniert, berechnet und vieles,  vieles mehr. Für all die vielen Aufgaben, die es mit Attributen zum Durchführen gab, gab es in FME mindestens genauso viele Transformer und es war schwer den Überblick zu behalten, welcher Transformer für welche Aufgabe benutzt werden sollte.

Mit FME 2016 kommt nun ein weiter neuer Transformer, der jedoch all die anderen Transformer für Attributbearbeitung überflüssig macht. „Der eine sie alle zu beherrschen…“ – der AttributeManager.

Im Einzelnen kann der AttributeManager Attribute erstellen, umbenennen, kopieren, löschen, Werte setzen und reorganisieren. In diesen Eigenschaften ersetzt er also den AttributeCreator, AttributeRenamer, AttributeCopier, AttributeRemover, Attributekeeper, ListRenamer, StringConcatenator, ExpressionEvaluator, AreaCalculator, AttributeRounder etc, etc.

Der Parameterdialog des AttributeManagers beinhaltet 2 Spalten zum AttributeMapping (Input Attribute und Output Attribute), einer Spalte für Definition der Attributwerte und einer weiteren Spalte zur Festlegung der Aktion, die mit dem Attribut durchgeführt werden soll (wie Werte setzen, umbenennen oder löschen).

Eine wichtige Funktionalität ist, dass alle Attribute im Schema mit denen der Transformer verbunden ist sowohl als Eingang als auch Zielattribute zur Verfügung stehen, weshalb sie nicht mehr manuell definiert werden müssen.

Wird die zweite und dritte Spalte des Parameterdialogfelds befüllt, so wird die Aktion automatisch auf „Rename“ bzw. „Set Value“ gesetzt. Der neue Wert kann, wie bereits beim AttributeCreator ein fester Wert sein, von einem anderen Attribut stammen (demanch eine Attribute-Copy-Funktion), aus einem Parameter herrühren oder mittels des Arithmetic- bzw. String-Editors vollkommen neu definiert werden bzw. einfach auf NULL gesetzt werden. Die Definition unterschiedlicher Werte abhängig von vordefinierten Bedingungen ist durch die Benutzung der „Conditional Value“-Funktion ebenfalls möglich.

Schließlich kann ich durch Benutzung der Pfeile die Reihenfolge der Attribute im Schema neu festgelegt werden und auf neu erstellte Attribute kann sogar im gleichen Dialogfeld bereits zugegriffen werden um deren Werte z.B. in weiteren Attributen zu verwenden.

Während bisher in FME zwischen der Bearbeitung von Attributen und Listen unterschieden wurde und für die Bearbeitung von Listen spezielle Transformer existierten, können diese nun zusammen mit anderen Attributen mit dem AttribueManager bearbeietet werden. So können ListenAttribute z.B. umbenannt werden. Für das bearbeitetn einzelner Listenelemente ist der Transformer jedoch nicht grundsätzlich konzipiert. Wie beim AttributeManager kann man hier auch die Werte von benachbarten (vorangehenden und nachfolgenden) Features erfassen und beim aktuellen Feature verwenden und Harmonisierungs-Operationen für fehlende, leere Attribute sowie NULL-Werte durchführen.

Wie man sieht ist der Transformer sehr einfach in der Bedienung und weitgehend selbsterklärend, so dass er kaum weiterer Beschreibung bedarf. Trotzdem oder vielleicht genau deswegen wird er zukünftig zum meistverwendeteten Transformer in FME werden.


FeatureWriter

FeatureWriter

29.02.2016

Seit den ersten Anfängen ist FME als eine ETL-Software bekannt, die eine Datenstruktur von einem Format (Reader) zu einem anderen (Writer) überführt. Nahezu jeder Workspace, der seit dem erstellt wurde, wurde mit einem Reader initiiert und mit einem Writer beendet.

Mit FME 2016 bannt sich eine Revolution an, die dieses Konzept zu beenden scheint. Die starre ETL Struktur erlaubte keine Bearbeitung der Daten nachdem diese an den Writer gesendet wurden und es konnten auch keine vorbereitenden Schritte eingeleitet werden, bevor die Daten mit dem Reader gelesen wurden. Zumindest beim zweiten Punkt wurde 2011 mit dem FeatureReader abhilfe geschaffen, der Daten auch zur Laufzeit des FME Prozesses lesen konnte.

Mit der Einführung des FeatureWriters in FME 2016 kann der klassische ETL-Prozess nun endgültig aufgebrochen werden, indem Daten auch nach ihrem Schreiben weiter bearbeitet werden können.

Der FeatureWriter kann auswählen in welches Format geschrieben wird und besitzt alle Parameter des ausgewählten Formats. Der große Vorteil gegenüber einem konventionellen Writer ist natürlich die Möglichkeit der Weiterbearbeitung im gleichen Schritt, was zuvor nur durch Benutzung eines Shutdown-Skripts möglich war.

 

Der Parameterdialog entspricht weitgehend, dem konventioneller Writer mit der Definition des Zielpfads und der Konfiguration der Formatparameter für das ebenfalls hier ausgewählte Zielformat. Der mittlere Teil des Dialogs gliedert sich in einen linken und rechten Bereich. Im linken Fenster sind die definierten FeatureTypes aufgelistet, die zum Schreiben ausgewählt werden können. Die Eingangsports des FeatureWriters entsprechen den Namen der FeatureTypes, die mit dem Transformer verbunden wurden.

Der rechte Bereich entspricht dem FautureType-Dialog mit den bekannten Tabs (General, User Attributes, Format Attributes und Format Parameters). Wie bei gewöhnlichen Writern können hier auch alle dynamischen Einstellungen und FanOuts definiert werden.

Durch die Auswahl von „Automatic attribute definition“ kann das Attributschema automatisch, abhängig von der angebundenen Quelle generiert werden. Im unteren Bereich befinden sich schließlich spezielle Transrformer-Attribute, die die Informationen über den Schreibvorgang beinhalten, wie der Name des geschriebenen Datensatzes, den FeatureTypes und der Anzahl der geschriebenen Features.

SQL Editor

SQL Editor

17.01.2016

Eine der vielen neuen Erweiterungen in FME 2016 ist der verbesserte Dialog im SQL-Editor. Der SQL-Editor wird immer automatisch geöffnet, sobald FME die Eingabe von SQL-Anweisungen erlaubt, sei es in den klassischen SQL-Transformern wie SQLCreator und SQLExecutor aber auch an zahlreichen anderen Stellen wie z.B. dem „SQL statement before/after Translation“-Parameter.

Der Run-Button

Das erste auffällige Merkmal ist der „Run“-Button im SQL-Editor. Diese Schaltfläche unterscheidet den SQL-Editor von allen anderen Edtioren in FME. Denn z.B. im Gegensatz zum Text- bzw. Arithmetic Editor wird das Statement nicht als Teil des FME-Prozesses ausgeführt, sondern erlaubt ein sofortiges Ausführen der Anweisungen unabhängig vom FME-Workflow. Ursprünglich konzipiert um die definierten SQL-Anweisungen zu testen und sicherzugehen, dass die definierten Anweisungen nicht zum Absturz des FME-Prozesses führen, indem z.B. auf nicht existente Tabellen zugegriffen wird oder aus Mangel an Berechtigungen.

Der Run-Button erlaubt aber auch Vorprozessierungen an der Datenbank, vor dem eigentlichen FME-Prozess, wie z.B. das Löschen der Datensätze vor der erneuten Befüllung der Tabelle. Mit anderen Worten jede mit dem Run-Button abgesetzte Anweisung wird umgehend ausgeführt und committed. Selbstverständlich ist dies eher für einmalige Aktionen gedacht und nicht dafür vorgesehen eine Tabelle vor jeder Prozessierung zu Entleeren, was natürlich direkt in den DB-Parametern angegeben werden sollte. Der Run-Button funktioniert bei allen gängigen DB-Formaten.

Rechtsklick

Neben dem Run-Button konnte mit der Einführung von zahlreichen Shortcuts die Effinienz bei der Arbeit mit SQL-Anweisungen gesteigert werden. So werden z.B. im SQL-Editor alle Tabellen der ausgewählten Datenbank dargestellt. Durch Rechtsklick auf eine Tabelle wird ein Kontextmenü geöffnet, bei dem man angeben kann ob eine Anweisung als add-, create-, drop-, duplicate-, truncate-, cross join- oder select-Anweisung durchgeführt werden soll. Ferner ist auch die Auswahl von mehreren Tabellen gleichzeitig möglich, auf die die Anweisung angewendet werden soll.  Das Delimeter-Zeichen wird dabei automatisch in die Anweisung integriert.  Zusätzlich können auch Spalten direkt ausgewählt bzw. in die eigene SQL-Anweisung direkt eingefügt werden, falls nicht vordefinierte SQL-Statements benutzt werden.

Weitere Verbesserungen

In früheren Version hat die Inspect-Funktionalität zum direkten Laden eines FeatureTypes aus dem Workspace in den Inspector bei DB-Formaten nicht  funktioniert. Mit FME 2016 wurde dieses Manko endlich behoben. Des Weiteren wurde die Inspect-Funktion auch in den SQL-Editor integriert.

Schließlich als letzte Erweiterung ist das Einfügen der „Named“-DB-Verbindungen in den Navigator als eigener Abschnitt „Database Connections“ zu erwähnen. Dadurch können Datenbank-Verbindungen als eigene Objektgruppen im FME-Modell behandelt werden.


FMEServer Notification Service

Nachrichten verschicken mit FMEServer

28.12.2015

Eine der häufigsten Anfragen bezüglich der FMEServer-Funktionalität betrifft das Verschicken von Nachrichten mittels der POST-Methode. Aus diesem Grund wird hier eine kurze Anleitung dazu beschrieben.

Durch den Notification Service ist der FMEServer in der Lage ein E-Mail abzusenden um z.B. mitzuteilen ob ein FME-Prozess erfolgreich war oder nicht.

Im nachfolgendem Beispiel wird ein Inhalt auf einen Web-Service mittels HTTP POST gepostet.

Die einzelnen Schirtte sind:

  • Erstellen eines Topic auf dem FME Server
  • Hinzufügen einer Subscription zu diesem Topic
  • Erstellen eines Workspaces, der auf den erstellten Topic zugreift

1. Erstellen eines Topic

Zunächst muss der Topic erstellt warden, der benachrichtigt wird, sobald unser Workspace ausgeführt wurde und ob der Durchlauf erfolgreich war oder nicht. Zunächst loggt man sich in die Web-Oberfläche des FMEServer. Dort geht man zu der “Manage Notifications”-Seite und wählt den Topic-Tab. Es werden 2 neue Topics erstellt: MySuccessTopic und MyFailureTopic.



2. Erstellen einer Subscription

Im nächsten Schritt wird die Subscription erstellt. Dies ist die eigentliche Anweisung, die durchgeführt wird, sobald ein Topic benachrichtigt wird. Dies wird ebenfalls auf der “Manage Notifications”-Seite im Tab “Subscriptions” durchgeführt indem man dort einfach auf „New“ klickt.  

  • Wähle den Protokoll-Typ: Push.
  • Vergebe einen Namen für die Subscription: z.B. WebService
  • Im Feld “Target” muss die URL für den Web-Service angegeben werden: z.B. http://posttestserver.com/post.php
  • Als Format für den Inhalt kann z.B. JSON ausgewählt werden
  • Diese Subscription muss den neuen Topics MySuccessTopic und MyFailureTopic zugewiesen warden.

 



3. Erstellen und Publizieren des Workspaces zum Benachrichtigen der Topics

Es gibt unterschiedliche Möglichkeiten, wie ein workspace einen Topic auf dem FMEServer benachrichtigen kann:

Option 1 – Auswählen der Topics beim Publizieren des Workspaces

Beim Publizieren des Workspaces und der Zuweisung zu den benötigten Services, kann man auch zusätzlich Topics für den Durchlauf-Status Publish (Success) und  Publish (Failure) auswählen. Diese Topics können für beliebige Services ausgewählt warden, wie Job Submitter, Data Download, Data Streaming und Notification Services.

In Beispiel-Workspace gibt es den Parameter für die POST Nachricht und einen TEXTLINE Writer zu welchem die Nachricht gesendet wird.

Beim Zuweisen der Services zu einem publizierten Workspace gibt es zu jedem Service die Schaltfläche “Edit”. Dort kann man die zuvor erstellten Topics für Job Success und Job Failure auswählen. Desweiteren muss dort der TEXTLINE-Writer als Notification-Writer ausgewählt werden. Alle Daten, die zu diesem Writer gesendet werden, werden an einen der beiden Topics weitergeleitet und dann als Textkörper der POST-Nachricht versendet.

Wichtig: die Topics müssen für jeden Service, der für den Workspace freigeschaltet wurde zugewiesen warden.

 Option 2 - FMEServerNotifier Transformer

Eine andere Möglichkeit die Topics zu benachrichtigen, ist durch die Benutzung des  FMEServerNotifierTransformers. Dieser Transformer kann in jedem beliebigen Workspace benutzt werden. Der Transformer muss nur mit den eigenen FME Server-Parametern wie Host, Verbindungsparameter, und den zugehörigen Topics konfiguriert werden. Das erste Feature, das den Transformer erreicht, triggert den Topic. In dem Transformer wird zudem das Attribut definiert, in dem sich der Inhalt der Nachricht befindet. Dieser Inhalt wird als Teil der POST-Nachricht über den URL an den Web-Service übermittelt. Der Nachteil bei der Benutzung des FMENotifier-Transformers ist, dass der Topic benachrichtigt wird, bevor der Workspace durchgelaufen ist und es gibt keine Möglichkeit herauszufinden ob der Durchlauf erfolgreich war oder nicht.

4. Ergebniskontrolle

Falls zu Testzwecken der Webservice http://posttestserver.com/data/ benutzt wurde, kann dort anhand der Datum- und Zeitangabe die eigene POST-Nachricht gefunden werden und so festgellt werden, ob der Benachrichtigungsdienst des eigenen FMEServers funktioniert.

FME Transformer Updates

17.11.2015

Eine lang erwartete Funktionalität wird mit FME 2016 realisiert: Transformer Updates. Der Vollständigkeit halber wollen wir vorerst erklären, was eine Transformer-Version ist und warum (oder auch nicht) diese wichtig ist.

 

Warum ist das Updaten von Transformern generell erforderlich?

Neu eingeführte Transformer (z.B. der FeatureReader in FME 2016) starten daher immer als Version 0. Sobald dieser Transformer in einem Workspace eingesetzt wird, erhält er auch hier die Version 0. Sobald Safe Software diesen Transformer weiterentwickelt, wird eine neue, ansteigende Versions-Nummer vergeben (1,2, etc.). Aber der in einem Workspace bereits eingesetzte Transformer bleibt Version 0.

Ein in einer früheren FME-Version eingesetzter Workspace-Transformer kann irgendwann einmal nicht mehr synchron mit der Kern-Definition der aktuellen FME-Version sein.

 

Warum werden die Transformer nicht automatisch upgedatet?

Da das Updaten von Transformern auch unterschiedliche Resultate produzieren könnte, wird von einem automatischen Update der Transformer abgesehen. Ein Workspace sollte immer die gleichen Resultate ergeben, egal auf welche FME-Version upgegradet wird.

Aber natürlich, nach einigen FME-Updates hinkt die eingesetzt Transformer-Version der Core-Version hinten nach. Wichtig ist hier zu wissen, dass das kein Problem sein muss.

 

Wann kann ich auf ein Transformer-Update verzichten?

Transformer Updates beinhalten im Normalfall keine Bugfixes und so weiter, da Transformer ja eigentlich nur der Zugang zu den „Factories“ und „ Functions“, der Grundfunktionalität von FME, sind. Wenn es hier zu Updates oder Bugfixes kommt, greift der eingesetzte Transformer automatisch auf die aktuelle Funktionalität zurück, ungeachtet der Transformer-Version.


Man könnte es auch mit folgender Situation vergleichen: Wenn ein Schlagloch in der Straße repariert wird (Bugfix), ist es nicht erforderlich, ein neues Auto zu kaufen (Transformer-Update).

 

Grundsätzlich wird alo bei kleineren Reparaturen in der Grundfunktionalität keine neue Transformer Version erstellt – da der „alte“ Transformer automatisch die „reparierte“ Grundfunktionalität verwendet.

 

Um beim Auto-Beispiel zu bleiben: Sie brauchen keine neues Auto, um in den Genuss des  reparierten Schlaglochs zu kommen.

 

Eine neues Tranformer-Version wird dann erstellt, wenn auch neue Funktionalität verfügbar ist. Zum Beispiel kommt viellecht ein neuer Parameter dazu, der das Verhalten des Transformers beeinflussen kann. Um diese Möglichkeit nützen zu können, ist das Upgraden des Tranformers erforderlich.

 

Wird zum Beispiel in Ihrer Straße eine Ladestation für Elektroautos eingeführt, können Sie ein Elektroauto kaufen, um diese Ladestation zu nützen. Anderseits müssen Sie das nicht, Sie können auch weiterhin mit Ihrem alten Benziner fahren.

 

Also lassen Sie nicht nicht beunruhigen, wenn nach der Installation einer neuen FME-Version beim Starten eines vorhandenen Workspaces die Meldung kommt, dass manche Transformer out of date sind. Solange Ihr Workspace das tut, was Sie von ihm erwarten, besteht kein Grund, die Transformer upzudaten.

 

Wann sollten meine Transformer upgedatet werden?

Natürlich kann es Situationen geben, wo „up-to-date“-Transformer wichtig sind.

Zuallererst natürlich dann, wenn die neu implementierte Funktionalität eines Transformers einen Mehrwert für Sie darstellt. Zum Beispiel hat der SamplerTransformer in FME 2016 eine Option für zufälliges Sampeln, bisher war nur das Sampeln in strikter Ordnung möglich. Falls diese neue Möglichkeit Ihren Workspace optimiert, dann ist ein Update auf die neueste Transformer-Version natürlich sinnvoll.

 

Die Vorgehensweise

Bei Öffnen eines Workspace mit einer neuen FME-Version sehen Sie nun im Navigator-Fenster eine Sektion mit einer Liste von „Upgradefähigen“ Transformern.

Sehr praktisch ist, dass Sie sehen können, welche die verwendete und welche die aktuelle Version des Transformers ist, sowie auch die jeweilige Anzahl des Tranformers im Workspace.

Um den Transformer upzugraden, rechts-klicken Sie einfach auf den Transformer und wählen „Upgrade Transformer“. 

 

Danach können Sie etwaige neue Parameter des Transformers bearbeiten. Manchmal besteht die Änderung auch nur in erweiterten Auswahllisten.

 

Natürlich werden alle Änderungen im History-Fenster aufgezeichnet und können gegebenenfalls rückgängig gemacht werden.



ArcGIS Data Interoperability

ArcGIS Data Interoperability

28.09.2015

Kaum ein anderes GI-System hat sich so etabliert wie ESRI ArcGIS. Mit 43% Marktanteil führt an der Software aus Redlands kaum ein Weg vorbei. Und dennoch kann man damit nicht mehr als eine Handvoll Formate lesen und weiterverarbeiten.

Mit der ArcGIS Data Ineroperability Extension ist es möglich aus ArcGIS auf die Konvertierungs- und Transformations Engine von FME zuzugreifen. Damit erhält man Zugang zu unterschiedlichen Datenquellen, die in ArcGIS direkt weiterverarbeitet werden können. Natürlich kann man damit auch einfache Formatkonvertierungen durchführen und allen voran erhält dadurch Zugang zu den enormen ETL-Funktionalität, mit der sich FME auszeichnet.

Die Data Interoperability Extension eröffnet dem ArcGIS-Nutzer folgende Möglichkeiten:

 

Integration verschiedener Formate

Geodaten unterschiedlicher Art, seien es andere GI-Systeme, CAD-Daten, Webservices, Tabellen können einfach in ArcGIS eingefügt werden und dort einheitlich mit ArcGIS-Werkzeugen verarbeitet werden. Man kann die gesamten Datensätze einlesen oder nur die Layer und Tabellen auswählen, die man wirklich benötigt.

 

Erstellen von Daten für andere GI-Systeme

Daten, die mit ArcGIS erstellt wurden können dank der Erweiterung auf unterschiedliche Weise weiterverbreitet werden. So ist es z.B. möglich aus ESRI-Daten ein Geo-PDF zu erstellen oder mit einer KML-Konvertierung die Daten in GoogleEarth dartellen.

 

Migration von unterschiedlichen Datensystemen

Viele ArcGIS-Nutzer verwenden die Data Interoperability um von einem GI-System in ein anderes zu migrieren. Die Extension unterstützt unterschiedliche Datenbankformate und die Spatial ETL Engine erlaubt einem den Zugriff auf alle Tabellen und Attribute, die von der Migration betroffen sind.

 

Validierung von Daten

Daten, die mit ArcGIS verarbeitet werden sollen, können mit der in FME vorhandenen Funktionalität zunächst nach ihrer Gültigkeit und Konformität überprüft werden.

 

Datenabgleich

Mittels ChangeDetection ist es dank der Erweiterung möglich, Veränderungen bei aktualisierten Daten zu lokalisieren.

 

Automatisierung von Prozessen

Letztendlich ist es möglich die ETL-Funktionen, die die Erweiterung bietet mit ArcGIS-Funktionen im ModelBuilder zu intergrieren. Dies erfolgt über die, aus FME bekannten, Pulished Parameter. Diese Workflows können anschließend auf ArcGIS Server publiziert und in dessen Umgebung ausgeführt werden.

Neue Transformer in FME 2015

21.05.2015

Mit FME 2015 wird die Transformer-Galerie von FME wieder um weitere Werkzeuge bereichert. Zwei, die aufgrund ihrer einfachen Arbeitsweise erwähnt werden sollten, sind der PDFPageFormatter und der ChartGenerator.

Mit dem PDFPageFormatter ist es möglich, Features in einem PDF-Dokument auszugeben. Ein intuitives, grafisches Interface erlaubt dabei eine pixelgenaue Positionierung und Skalierung der Objekte innerhalb des Dokumentes.

Ein einzelner PDFPageFormatter ist für die Ausprägung einer Seite innerhalb des PDF-Dokuments verantwortlich. Mehrere PDFPageFormatter innerhalb eines Workspaces beziehen sich auf unterschiedliche Seiten innerhalb des gleichen PDF-Dokuments.

Das Anschließen eines Outouts an den Input-Port des Transformers erzeugt dynamisch einen neuen Eingang am PDFPageFormatter. Jeder Eingang erzeugt innerhalb des Transformers ein Element (Box), das beliebig oft innerhalb des Dokuments positioniert werden kann. Die Box trägt dabei den Namen des entsprechenden Input-Ports. Die zugehörigen Features werden innerhalb der entsprechenden Box mittig platziert und proportional skaliert. Im Falle, dass mehr als ein Feature den Transformer durch den gleich Input-Port passieren, wird die Skalierung und Zentrierung anhand der Bounding Box der Eingangsfeatures berechnet.

Die Reihenfolge, mit der die Features in das Dokument geschrieben werden, entspricht der Reihenfolge, in der sie den Transformer passieren.

 

Der ChartGenerator kann anhand von Werten aus ausgewählten Attributen fünf verschiedene Arten vopn Diagrammen erzeugen. Ein interaktives Interface erlaubt dem Benutzer die Vorschau der ausgewählten Features, während das Diagramm gestaltet wird.

Für ein Diagramm können Daten aus unterschiedlichen Quellen verwendet werden. Es gibt zahlreiche Einstellungsmöglichkeiten für die Gestaltung und Beschreibung der Diagramme, wobei sich diese in den einzelnen Diagrammarten (Punkte, Linien, Balken, Kreis, Histrogramm) voneinander unterscheiden.

Tooltip mit der Version des Transformers

Transformer-Versionen

05.08.2014

Mit jedem neuen Release von FME stellt sich für viele die Frage welche Auswirkungen die neue Version auf bestehende Workspaces hat. Insbesondere neue Transformer-Versionen sind hier von Bedeutung. Um die Kompatibiltät eines bestehenden Workspaces mit der neuen FME-Version zu testen, muss man in erster Linie herausfinden welche Transformer sich im neuen Release geändert haben.

 

Öffnet man einen älteren Workspace (z.B. FME 2012) in einer neueren Version von FME (z.B. FME 2014), passiert erst einmal rein gar nichts. Die neuen Transformer werden nicht automatisch aktualisiert. Dies stellt sicher, dass ein älterer Workspace auch in der neuen Version von FME noch genau so funktioniert wie bisher. Damit ist also eine Backwards-Kompatibilität sichergestellt.

Nachdem man aber die neuen Funktionen eines Transformers kennengelernt und deren Vorzüge erkannt hat, wünscht man sich vielleicht eine generelle Überarbeitung des Workspaces. Dazu muss man als erstes wissen, welche Transformer von einem Update betroffen sind und zweitens hat es irgendwelche Auswirkungen wenn ich die ältere Version beibehalte.

 

Jedesmal wenn ein Transformer überarbeitet wurde, wird seine Versionsnummer angehoben. Bei den Transformer-Einstellungen im Menüpunkt Tools kann man einstellen, dass die Version des Transformers in dessen Tooltip sichtbar wird.

 

Für FME 2015 ist eine Highlighting-Funktion für aktualisierte Transformer geplant. Dabei soll im Navigator ein neuer Transformer-Ordner „Updated Transfomer“ auftauchen, der alle aktualisierten Transformer im Workspace beinhaltet.

 

Ein älterer Transformer hat zunächst mal keinerlei negativen Auswirkungen. Solange der Workspace läuft wie gewünscht, besteht sicherlich kein Handlungsbedarf. Da die Funktionalität der Transformer sehr nah am FME-Engine-Core programmiert ist, werden eventuelle Bugs auch dort beseitigt, womit auch bei älteren Transformer-Versionen eventuelle Bugs behoben werden.

 

Multiple Sheets, Datenbereiche, Datenvorschau und Schema-Anpassung am Excel-Reader.

FileCopy-Writer

13.06.2014

Zwar arbeitet FME als Feature Manipulation Engine auf der Ebene der Features, es ist aber auch möglich in bestimmten Fällen gesamte Dateien in den Workflow von FME einzubeziehen. Hierfür dient insbesondere der FileCopy-Writer, der im Zusammenspiel mit dem Path-Reader, sogar gänzlich die Feature-Ebene umgehen kann. Zudem ist er auch im Zusammenhang mit dem FMEServer Dowload-Service sehr nützlich.

 

Im Gegensatz zu anderen Writern, stellt der FileCopy-Writer kein Format im eigentlichen Sinne dar, sondern führt für alle ankommenden Objekte Copy- bzw. Move-Befehle auf dem Dateisystem aus. Der Writer beinhaltet die formatspezifischen Attribute filecopy_source_dataset, filecopy_dest_dataset und filecopy_des_filename, die die Quell- und Zieldatei definieren. Durch das Setzen der Attribute für den Quell- und Zieldatensatz, können auf einfache Weise Dateien, von einem Ort zum anderen kopiert werden.

 

Damit können z.B. Metadaten der prozessierten Datensätze in den Workflow integriert werden, indem man die bestehenden Metadaten mittels FileCopy zum entsprechenden Zielort kopiert.

 

Eine andere Möglichkeit wäre den FileCopy-Writer zu nutzen um das Ergebnis eines anderen Writers zu kopieren. Z.B. kann man sich das Ergebnis eines FME-Prozesses auf seinem lokalen Rechner speichern und gleichzeitig, automatisch auf einem zentralen Datenspeicher archivieren.

 

Besonders interessant wird es aber, wenn man FileCopy zusammen mit dem FMEServer benutzt.

 

In vielen FMEServer-Prozessen hat der Nutzer die Möglichkeit unterschiedliche Parameter (wie z.B. Format, Koordinatensystem, Layer…) anzugeben. Will man jedoch bereits prozessierte Datensätze an den Nutzer übergeben, werden an dieser Stelle keine Parameter gesetzt. Stattdessen übergibt der FileCopy-Writer die bestehenden Datensätze direkt an den DataDownload-Service, der diese Datensätze im Zip-Format zum Download zur Verfügung stellt.

 

Um dies zu erreichen erstellt man einen Workspace mit einem Directory-and-Pathnames-Reader. Dieser liest den Quellordner aus und liefert als Ergebnis eine Liste der Elemente im untersuchten Ordner. Befinden sich darin mehrere Datensätze und will man dem Nutzer die Möglichkeit geben nur bestimmte davon herunterzuladen, so kann man das über Published Parameters erreichen. Der Nutzer hat die Möglichkeit diese über die FMEServer-Weboberfläche auszuwählen. Anschließend werden sie durch einen Tester abgefragt, so dass nur die ausgewählten Datensätze an den FileCopy-Writer übergeben werden.

 

 

Multiple Sheets, Datenbereiche, Datenvorschau und Schema-Anpassung am Excel-Reader.

Amazon S3

10.04.2014

Seit dem sich das Cloud Computing immer größerer Beliebtheit erfreut, stehen immer mehr Nutzer vor der Anforderung Geodaten in der „Cloud“ zu speichern zu müssen. Für FME ergeben sich daraus in erster Linie 2 Szenarios:

 

  • GIS-Daten sollen aus der Cloud heruntergeladen und bearbeitet werden können
  • GIS-Daten sollen nach einer Bearbeitung in ein Cloud-Service hochgeladen werden

 

Amazon S3

Amazon Simple Storage Service (S3) ist ein Cloud Storage Service, welches die Speicherung einer unlimitierten Anzahl von Dateien erlaubt. Die Größe einer Datei, kann dabei bis zu 5GB betragen. Folgende Feautures stellt der Amazon S3-Service zur Verfügung:

 

  • Speicherung einer unlimitierten Anzahl von Objekten von einer Größe bis zu 5GB/Objekt
  • 100 Buckets pro User. Ein Bucket entspricht einem Ordner. Der Name des Buckets muß im gesamten S3-Service eindeutig sein.
  • Jedes Objekt wird in einem Bucket gespeichert und über einem user-Key identifiziert. Die Anzahl von Objekten in einem Bucket ist unbegrenzt.
  • Objekte können über einen speziellen AWS-User veröffentlicht werden und so anderen Nutzern zur Verfügung gestellt werden. Dies kann für einzelne Objekte als auch für ganze Buckets umgesetzt werden.
  • S3 unterstützt nicht die gewohnte Datei-Ordner-Struktur. Innerhalb eines Buckets befinden sich die Objekte in einer flachen Struktur und können nicht in Unterbuckets gespeichert werden.
  • Zu jedem Objekt können Metadaten erstellt werden.
  •  Buckets können versioniert werden. Auf diese Weise wird nach der Änderung eines Objekts auch dessen alte Version beibehalten.

 

Amazon S3 mit FME 2014

Für die Unterstützung von Amazon S3 wurden in FME 2014 zwei neue Transformer eingeführt:  S3Uploader und S3Downloader. Um diese Transformer nutzen zu können, sind die Anmeldedaten (Access Key und Secret) für den S3-Account notwendig. Beim Hochladen kann eine Datei in der Filestruktur ausgewählt werden, bzw. es kann auch direkt aus einem FME-Prozess heraus hochgeladen werden. Daten können in einer Datei oder in ein Attribut hinein heruntergeladen werden.


Amazon S3 mit FMEServer 2014

Der FMEServer 2014 stellt den „Amazon Simple Storage Service Subscriber“ zur Verfügung. Damit ist es möglich mittels einer Notification einen Upload auf einen S3-Dienst zu veranlassen. Wie im Falle der Transformer, so sind auch hier die Anmeldedaten für den S3-Dienst und die Angabe des Buckets und Keys notwendig. Die Datei, welche hochgeladen werden soll, kann aus den Shared Ressources oder dynamisch über den Notification-Inhalt ausgewählt werden.

 

Amazon S3 mit FME 2013 und älter

Bei älteren Versionen von FME muss die S3-Struktur auf dem lokalen Rechner gemountet werden, um den S3-Service nutzen zu können. Das kann mit diversen Produkten von Drittanbietern umgesetzt werden. Diese Software-Produkte benutzen zahlreiche Optionen wie z.B. Proxy, Min/Max der Upload-Rate und Min/Max-Anzahl der gleichzeitigen Verbindungen.

 

Die Softwareprodukte TnTDrive oder Gladinet wurden in diesem Zusammenhang bereits erfolgreich mit FME getestet. Nachdem die S3-Struktur gemountet wurde, steht sie, ähnlich wie ein gemapptes Netzlaufwerk dem lokalen Rechner zur Verfügung. Diese Laufwerke können anschließen als Quell- bzw. Zielressourcen für die zu bearbeitenden Datensätze benutzt werden. Der einzige merkbare Unterschied ist die längere Durchlaufzeit, da die Daten vom S3-Service herunter- bzw. darauf hochgeladen werden müssen.

Multiple Sheets, Datenbereiche, Datenvorschau und Schema-Anpassung am Excel-Reader.

FME non-spatial

23.12.2013

Warum FME für Excel nutzen?


Aufgrund seiner Benutzerfreundlichkeit und Flexibilität gehört Excel immer noch zu den beliebtesten Formaten um schnell und einfach Datenstrukturen aufzubauen und wichtige Informationen zu sichern. Excel ist sozusagen die Shape-Datei für nicht-räumliche Daten. Oft werden Excel-Tabellen online zur Verfügung gestellt und eignen sich sehr gut zur Präsentation von Ergebnissen.

 

Große Excel-Datensätze können aber die Software schnell an die Grenzen ihrer Leistungsfähigkeit bringen. Oft müssen Daten erstmal restrukturiert, gefiltert und verkleinert werden, bevor eine eingehende Analyse möglich ist. Es kann aber auch sein, dass die Excel-Daten räumliche Informationen, wie X/Y-Koordinaten beinhalten, mit denen die Objekte verortet werden könnten. Vielleicht können sie aber auch über Attribut-Paare mit räumlichen Objekten verbunden werden, wodurch sich die Möglichkeit bietet, mit ihnen räumlichen Operationen durchzuführen.

 

Vielleicht will man aber auch mehrere Tabellen miteinander verbinden. Und das wichtigste – vielleicht will man all das zukünftig immer wieder mit seinen Daten tun!

 

Lesen und Schreiben von Spreadsheets


Der Excel-Reader- und Writer wurde in der aktuellsten FME-Version grundlegend überarbeitet. So kann der Reader jetzt mehrere Excel-Quellen simultan verarbeiten und sogar bestimmte Bereiche einzeln einlesen. Zusätzlich kann das Schema des Readers, mittels der Attributvorschau speziell angepasst werden. Dabei ist es sogar möglich Attribute mit Koordinaten zu kennzeichnen, mit dem entsprechenden Koordinatensystem zu versehen und gleich als räumliche Objekte einzulesen!

 

Auch der Excel-Writer unterstützt das Schreiben von Multi-Tabellen. Ein Feature-Type-Fanout schreibt die Daten automatisch in die entsprechenden Excel-Sheets. Es können Wertebereiche definiert und Spalten einzeln formatiert werden.

 

Sollen die Tabellen auch noch bestimmten visuellen Richtlinien entsprechen, so fügt man einfach ein Excel-Template zum Writer hinzu. Damit können Tabellen formatiert, Diagramme erstellt und Datensätze herausgehoben werden.

 

Verortung, Manipulierung und Abfragen


Zu den wichtigsten Funktionalitäten gehört sicherlich die Verortung von Datensätzen aus Koordinaten-Informationen bzw. durch Geokodierung oder durch das Joinen aus anderen Datensätzen. Damit erhält man räumliche Datensätze, die wiederum allen GIS-Funktionalitäten unterzogen werden können.

 

Weiterhin können Excel-Daten mit anderen Datenquellen gemergt werden. Mit dem InlineQuerier ist sogar eine Abfrage der Excel-Datensätze via SQL möglich.

 

Der Transformer AttributePivoter erzeugt unterschiedliche Zusammenfassungen und statistische Analysen der Excel-Daten.

 

Natürlich können Excel-Tabellen, wie Daten aus anderen Formaten beliebig bearbeitet werden. Daten können umstrukturiert, Attribute hinzugefügt, Objekte getestet, gefiltert, gruppiert, gesplittet werden und natürlich noch vieles mehr. Große Tabellen können bereinigt werden. Zudem eignet sich Excel auch perfekt dazu um die Ergebnisse von FME-Prozessen zu protokollieren.

 

Automatisierung


Der größte Vorteil bei der Bearbeitung von Excel-Tabellen mit FME ist wahrscheinlich die Permanenz eines FME-Workspaces. Wurde einmal ein Model zum prozessieren von Excel-Daten definiert, kann dieser immer wieder verwendet werden.

 

In der Verbindung mit dem FMEServer und dessen Scheduling-Funktionalität, kann der Prozess vollständig automatisiert werden.

Set to Conditional Value

Filtern und Mappen

02.08.2013

Filtern und Mappen gehören zu den wichtigsten Prozessen in FME. Dies beweist auch die Liste der am häufigsten verwendeten Transformer, deren einsame Spitze der Tester bildet. Filtern wird primär zur Aufspaltung der Datenströme in unterschiedliche Prozessketten verwendet, während beim Mapping eine neue Zuweisung von Werten anhand vorformulierter Bedingungen erfolgt. In FME 2013 SP 1 gibt es hier wichtige Neuerungen. Ein Grund sich mal, die dafür vorgesehenen Transformer und deren Funktionsweise etwas genauer anzuschauen.

 

Tester

Der Klassiker unter den Transformern und der Sieger der „Beliebtesten Transformer aller Zeiten“.  Mit dem Tester wird eine Bedingung formuliert, die auf jedes Feature angewendet wird, welches den Tester passiert. Es ist sogar möglich mehrere Bedingungen zu formulieren und diese über die logischen Operatoren UND und ODER zu verknüpfen. Ein Feature verlässt den Transformer durch den PASSED-Port, wenn die Bedingung erfüllt ist und durch den FAILED-Port, wenn die Bedingung für das Feature nicht zutrifft. Zusätzlich gibt es noch die Möglichkeit des „Composite Tests“, bei dem man die einzelnen Bedingungen beliebig miteinander kombinieren kann. So ist z.B. die Kombination (Test 1 ODER Test2) UND (Test 3 ODER Test4) möglich.  

 

Testfilter

Der Testfilter hat die gleiche Funktionalität wie der Tester, ist aber zusätzlich in der Lage mehrere Tests hintereinander auszuführen. Er beinhaltet sozusagen mehrere Tester in einem Transformer. Dabei werden die einzelnen Tests von oben nach unten abgearbeitet. Erfüllt ein Feature die Bedingungen des ersten Tests, wird es durch den entsprechenden Port weitergeleitet und steht für die weiteren Tests nicht mehr zur Verfügung. Die übrigen Features werden dem nächsten Test unterzogen, bis alle Tests durchgelaufen sind. Features, die nach dem letzten Test noch immer keine der definierten Bedingungen erfüllen, werden durch den UNFILTERED-Port geschickt.

 

AttributeFilter & AttributRangeFilter

Der AttributFilter filtert die Features anhand vordefinierter Werte eines einzelnen Attributs. Zunächst muss also das zu untersuchende Attribut ausgewählt werden. Anschließend definiert man die möglichen Werte dieses Attributs, bzw. importiert alle vorkommenden Werte aus dem jeweiligen Datensatz. Jeder Wert erhält dabei einen eigenen Ausgangs-Port.

Der AttributeRangeFilter erlaubt die Definition von möglichen Wertbereichen für das jeweilige Attribut. Aus diesem Grund eignet sich dieser Transformer in erster Linie für die Filterung von Attributen mit numerischen Werten.

 

Mapping

Einmal gefilterte Features, werden anschließend, in Abhängigkeit ihres Testergebnisses, weiteren Prozessierungen unterzogen. Oft handelt es sich dabei um Mapping-Prozesse, wobei hierfür weitere Transformer benutzt werden. Unter Mapping versteht man die Zuweisung eines neuen Attributwertes in Abhängigkeit eines anderen (oder des gleichen) Attributs (z.B. wenn Attribut1 = 1 dann Attribut2 = „aktiv“). Solche Mapping-Prozesse können aber innerhalb eines Transformers durchgeführt werden. Hierfür gibt es die Mapper-Transformer wie AttributeValueMapper, AttributeRangeMapper bzw. SchemaMapper). In den beiden ersten wird das zu analysierende Attribut und Ausgabeattribut angegeben. Anschließend definiert man die Werte, bzw. Wertbereiche und weist denen einen neuen Wert zu. Der SchemaMapper greift hierfür auf eine externe Datei  zu (z.B. Excel oder CSV). Dadurch ist es möglich die Mapping-Vorschriften jederzeit zu ändern, ohne dabei in den FME-Prozess eingreifen zu müssen.  

 

Conditional-Mapping

Wer sein FME 2013 bereits auf SP1 aktualisiert hat, dem steht mit dem „Conditional Value“ eine weitere Möglichkeit zur Verfügung, seine Filter- und Mapping-Prozesse noch effektiver zu gestalten.  Damit ist es nun möglich auch im AttributeCreator-Transformer auf Mapping-Funktionen zuzugreifen. Beim Erstellen eines neuen Attributs, definiert man einfach die Bedingungen, nach denen die Wertvergabe für das Attribut erfolgen soll. Ganz so, wie es bereits im AttributeValueMapper der Fall ist. Die Definition der Bedingungen entspricht der IF – ELSE IF Klausel. Bei der Definition jeder Bedingung öffnet sich, wie im Testfilter, ein neues Dialogfenster und der AttributeCreator zeigt anschließend die Anzahl der möglichen Werte (… possible Values) im Attribute-Value-Feld des neuen Attributs an. Des Weiteren verfügt der AttributeCreator über ein Duplicate-Button, um einfach bestehende Tests zu duplizieren und so ein wenig Zeit bei der Definition der Bedingungen einzusparen.

 

Übrigens: Diese neue Funktionalität beschränkt sich nicht nur auf den AttributeCreator, sondern umfasst alle Transformer, die einen „Set to Attribute Value“-Parameter haben.

Kartographische Schriftsetzung

MapTextLabeller-PlugIn

01.06.2013

Für alle, die FME nicht nur als eine Arbeitsmaschine zum Transformieren ihrer Datenstrukturen nutzen wollen, sondern auch einen Wert auf eine kartographisch korrekte und visuell ansprechende Darstellung ihrer Daten legen, gibt es jetzt den Transformer MapTextLabeller, als kostenpflichtiges Extra-PlugIn.

 

Dabei handelt es sich um eine Technologie, welche von der Firma MapText entwickelt wurde und bereits seit Längerem in den führenden GIS- und CAD-Produkten als PlugIn zum Einsatz kommt. Aus diesem Grund ist MapText für viele Nutzer von AutoCAD, ArcGIS, Geomedia und Intergraph bereits ein Begriff.

 

Jeder, der aus seinen Geodaten eine druckbare Karte herstellen muss, weiß um die Herausforderungen, die eine optimierte Schriftsetzung mit sich bringt. Insbesondere bei komplexen Karten, mit vielen Layern und sich überlappenden Objekten mit unterschiedlichen Geometrietypen, Größen und Orientierungen, ist die Schriftplatzierung sehr schwierig.

Der MapTextLabeler sorgt hierbei für eine Bereinigung von Konflikten und generiert einen, nach kartographischen Regeln, optimierten Output. Zusammen mit der leistungsstarken FME-Engine, können so,  innerhalb von wenigen Minuten, Tausende von Beschriftungen intelligent platziert werden.

 

Die Bedienung des MapTextLaberers mag für einige Nutzer vielleicht verwirrend erscheinen, da ein frisch eingefügter Transformer noch über keine In- und Output-Ports verfügt und man über mehrere FME-fremde Dialoge navigieren muss. Erfahrene FME-User kennen ähnliches jedoch bereits vom InlineQuerier-Transformer, der zunächst ebenfalls ohne Ein- und Ausgänge auskommt.

 

Im ersten Dialogfenster wird das Zielformat ausgewählt. Das ist wichtig, da die verschiedenen GIS- und CAD-Systeme ihre Schriften unterschiedlich definieren.  So ist z.B. die interne Definition von dem, wo ein Zeichen anfängt und wo aufhört, von System zu System unterschiedlich. Zur Auswahl stehen dabei AutoCAD, MicroStation, ArcGIS, MapInfo, GeoMedia und FME Generic. Falls das gewünschte System hier nicht aufgeführt, besteht dennoch die Möglichkeit, dass das gewünschte Zielformat, die gleiche Platzierungsmethode benutzt, wie eines der aufgeführten Systeme.

 

Im Gegensatz zu der üblichen FME-Methode, alle Objekte in Karteneinheiten zu bemessen, benutzt der MapTextLabeler Punkt (wie z.B. MS Word) als Größeneinheit für Schriften. Daher muss man beim Parameter “Ground Units Per Font Point” angeben, aus wie vielen Karteneinheiten ein typographischer Punkt besteht.

 

Der untere Bereich des Dialogfensters definiert die Ein- und Ausgänge des Transformers. Dabei werden in der Spalte „Layer“ die Eingänge und in der Spalte „Attribut“ die Ausgänge definiert.

 

Die Kernfunktionalität des MapTextLabelers verbirgt sich allerdings hinter dem Configue-Button. Dieser führt direkt zum MapText-Manager. Hier sind alle ausgewählten Layer und Attribute bereits aufgelistet.

 

Die Terminologie ist jedoch eine andere als im FME. So steht FeatureType hier für den Geometrietyp. Dieser muss als erstes gewählt werden. Im nächsten Dialogfenster werden die Style-Eigenschaften, wie Texttyp, Farbe, Größe etc.  ausgewählt.  Im letzten Dialogfenster gelangt man schließlich zu den eigentlichen Beschriftungsregeln (Rules), wo das „Finetuning“ für die Schriftsetzung eingestellt wird. Dabei gibt es für jeden Geometrietyp, einen eigenen Dialog.

 

So kann man bei Punktobjekten z.B. die Orientierung angeben sowie eine dynamische Größenanpassung, Hinzufügen von Pfeilen oder die Überlappung mit Objekten und anderen Labels erlauben. Bei Linien ist es zusätzlich möglich, die Labels an den Linienverlauf anzupassen, den Offset zu bestimmen, Namen zu wiederholen, Wörter zu trennen, Überhänge bestimmen oder die Labels als Symbole (z.B. für Autobahnen) darzustellen. Bei Flächen kommen noch weitere Optionen hinzu, wie z.B. die Angabe eines Winkels für eine perspektivische Darstellung der Schrift, sowie. die Platzierung entlang von Flächengrenzen oder außerhalb der Flächen.

 

Für jeden Layer, kann eine beliebige Anzahl unterschiedlicher Beschriftungsregeln definiert werden. Danach steht der Beschriftung nichts mehr im Wege und man kann sich entspannt zurücklehnen und voller Vorfreude, seine Karte mit kartographisch korrekten und ästhetisch ausgewogenen Beschriftungen, erwarten.

FME Community Answers

FME Community Answers

21.12.2012

Seit mehr als 15 Jahren finden FME-User in der FME-Community Hilfe und Lösungsvorschläge zu ihren Aufgabenstellungen. Noch in der Pre-Workbench-Ära, am 27. Mai 1998 startete die erste FME-Mailing-Liste fme@makelist.com. In den nächsten zehn Jahren durchlief die Gruppe zahlreiche Veränderungen über egroups und Yahoo, bevor 2008 der FMETalk auf Google seinen Anfang nahm. Dieser sollte in den kommenden fünf Jahren mehr als 2.700 aktive User anlocken, die bisher über 27.000 Fragen und Antworten gepostet haben.

 

Diese Erfolgsgeschichte neigte sich 2012 ihrem Ende entgegen. Gleichzeitig wurde eine neue Plattform ins Leben gerufen, die moderner, einfacher zu bedienen und v.a. mit den bestehenden FME-Services vernetzt ist: die FME Community Answers. Hier trifft sich die FME-Community aus der ganzen Welt um ihr FME-Wissen auszutauschen. Fragen rund um FME werden hier schnell von einem FME-Experten beantwortet.

 

Alles was man hierfür braucht ist ein eigener Account. Dieser kann innerhalb einer Minute erstellt werden und bedarf hier keiner weiteren Erläuterung. Sobald man eingeloggt ist, kann man seine Frage stellen und erhält im Normalfall innerhalb kürzester Zeit die eine oder andere Antwort. Sobald eine Antwort zu der gestellten Frage vorliegt, kann man sich per E-Mail darüber informieren lassen. Der Fragesteller hat anschließend die Möglichkeit, die beste Antwort auszuzeichnen.

 

Selbstverständlich kann man hier auch selbst Fragen beantworten und auf diese Weise sein Wissen mit anderen Nutzern teilen. Eine aktive Beteiligung in der Community bleibt zudem nicht unbelohnt. Die Nutzer mit den meisten Antworten werden in den Rang eines FME-Heros erhoben und erhalten als Dankeschön ein kleines Geschenk von Safe.

 

Die Stärke des Systems ist, dass eine Frage niemals unbeantwortet bleibt. Sollte die Frage nicht beantwortet werden, so wird der Post automatisch an die Support-Abteilung weitergeleitet. Dort nimmt sich dann ein Safe-Mitarbeiter des Problems an.

 

Zusätzlich dazu wurde der Auftritt von FMEpedia gründlich überarbeitet. Dieser gliedert sich jetzt in die Community, die Knowledgebase mit technischen Artikeln zu allen Themen im Geodatenbereich, die Dokumentation mit den technischen Beschreibungen der FME-Produkte und den Download-Bereich. Zusätzlich gibt es einen schnellen Zugang zu aufgezeichneten FME-Webinars und zum FME-Channel.

REST-Interface

Lesen und Schreiben von XML-Daten

01.10.2012

Durch die steigende Bedeutung von geographischen Online-Diensten, wird es immer wichtiger webfähige Datenformate effizient bearbeiten zu können. Die meisten Webformate basieren dabei auf XML-Technologie. Da es sich bei XML-Daten aber eher um einen allgemeingültigen Standard für die Beschreibung von Daten als um ein tatsächliches Datenformat handelt, bedarf es spezieller Kenntnisse um solche Daten mit FME bearbeiten zu können. In diesem Artikel sollen kurz die wichtigsten Schritte für das Einlesen, Aktualisieren und Schreiben von XML-Daten beschrieben werden.

 

READ: Während man in früheren FME-Versionen noch auf den XMLFragmenter zugreifen musste, um XML-Daten zu lesen (XML Source Type) und die Objekt-Tags zu extrahieren (Match Expressions), so soll es zukünftig möglich sein jede XML-Struktur mithilfe des XML-Readers einzulesen und in FME-Features umzuwandeln. Im Parameter „Elements to Match“ werden die XML-Tags aufgezählt, die in Features aufgespalten werden sollen. Stellt man noch den Parameter „Flatten Options“ auf „Enable“, so werden die Unterelemente der aufgespaltenen Objekte als deren Attribute dargestellt. Alternativ dazu kann dem Reader auch ein xfmap-File mitgegeben werden.

 

UPDATE: Zum Aktualisieren von bestehenden XML-Dokumenten eignet sich am besten der Transformer XML-Updater. Dabei wird die XML-Datei z.B. mit einem TXT-Reader eingelesen und deren Inhalt zeilenweise (text_line_data) als Attribut an den Transformer übergeben.  Im Frame „Updates“ des Transformer-Dialogs werden anschließend die Update-Optionen eingegeben. Die betreffenden XML-Tags werden mit der  Abfragesprache XPath adressiert. Die eigentliche Aktualisierung erfolgt über XQuery und bezieht sich in der Regel auf Attributwerte (fme:get-attribute(„ATTRIBUT“) der Referenzdatei (z.B. CSV).

 

WRITE: Um XML-Daten auf einfache Weise zu erzeugen, greift man am besten auf einen TXT-Writer und den Transformer XMLTemplater zu. In dessen Dialogfenster erstellt man zunächst das Wurzel-Element (ROOT Template). Von dort greift man dann mit XQuery (fme:process-features("TEMPLATE")) auf weitere Sub Templates zu, die wiederum über XQuery die gewünschte XML-Struktur aus den Eingangsdaten generieren. Der gesamte XML-Inhalt wandert dann in ein Ergebnis-Attribut und kann bereits in die Text-Datei geschrieben werden. Aus Gründen der Qualitätssteigerung der erzeugten XML-Dokumente, sollte der XML-Inhalt jedoch zunächst mit dem Transformer XMLFormatter auf geeignete Weise (z.B. Pretty-Print XML) formatiert werden.

FME Server

FME Server 2012

01.08.2012

Auch 2012 wurde der FME Server überarbeitet und mit neuen Funktionen ausgestattet. Das macht sich bereits bei der Installation bemerkbar. Diese wird über einen schnellen und selbsterklärenden Installer gestartet, der bei Bedarf auch alle benötigten Komponenten wie Lizenz-Server,  eine eigene Servlett-Engine und Datenbank-Treiber (JDBC) mitinstalliert.

 

Daten aus dem Internet können jetzt auf einfache Weise auf dem FME Server integriert werden. Bisher mussten diese zuerst manuell heruntergeladen, auf einem lokalen Rechner gespeichert und dann auf den FME Server hochgeladen werden. FME Server 2012 greift nun direkt auf Internetressourcen zu. Dazu genügt lediglich die Angabe der entsprechenden URL. Dies führt zu noch mehr Effizienz beim Betrieb des FME Servers.

 

Eine bedeudende Neuerung ist die Unterstützung von ActiveDirectory. Damit kann der Administrator ActiveDirectory-Ressourcen auf einfache Weise als Benutzerrollen in der Benutzerverwaltung integrieren. Die Einbindung in eine bestehende Unternehmensstruktur wird einfacher, FME Server wird sicherer und das Security-Handling übersichtlicher.

 

Eine weitere Neuheit im FME Server ist der ereignisgesteuerte Data Push. Dabei handelt es sich um Serverprozesse, die eine Verteilung von Informationen erlauben, sobald diese zur Verfügung stehen. So kann z.B. der FME Server Benachrichtigungen via E-Mail, Twitter oder SMS ausschicken, sobald in einem Datenbestand eine Interaktion stattfindet (z.B. Aktualisierung über einen Newsfeed). Mittels Workspace wird dieser Feed permanent abgefragt und im Falle einer Änderung erhält der Administrator eine Benachrichtigung per E-Mail.

 

Die Kontrolle über ausgeführte Server-Prozesse wird durch das Request Tracking vereinfacht. Der neue eingeführte published Parameter FME_SECURITY_USER beinhaltet den Namen des Benutzers, der den Prozess gestartet hat. Damit kann eine Datenbank erstellt werden, die die durchgeführten Prozesse samt Benutzer speichert. Wie alle published Parameter ist auch dieser über den Workspace zugänglich. Damit kann man also auch ein eigenes Security-Handling innerhalb des Workspaces aufbauen, indem man mit einem Tester den Benutzer abfragt und abhängig davon den Workflow entsprechend steuert. Ein weiterer published Parameter für den FME Server ist FME_SECURITY_ROLES, der die Rolle des aktuellen Benutzers beinhaltet.

 

Neben zahlreichen technischen Neuerungen wurde auch weiter an der Handhabung des FME Servers gearbeitet. In der Admin-Oberfläche für das Security-Handling kann man einzelnen Benutzergruppen Berechtigungen zum Lesen, Schreiben und Starten von Repositories erteilen. Des Weiteren können Berechtigungen für das Erstellen von neuen Repositories und Services vergeben werden.  So kann man z.B. einstellen, dass eine bestimmte Gruppe zwar die Workspaces in einem Repository starten, jedoch nicht herunterladen oder eigene Workspaces hochladen kann.  

REST-Interface

Shell-Technology

14.06.2012

Unter Shell-Technology versteht man eine neue mehrstufige Menüführung, mit der viele Transformer in FME 2012 ausgestattet wurden. Damit werden mehrere Transformer in einem vereinigt. Hierfür gibt es ein neues Dialogfenster, den sog. Texteditor. Dort kann u.a. eingestellt werden, ob der Wert des neuen  Attributs eine feste Konstante sein soll, aus einem anderen Attribut übernommen wird,  von einem zur Laufzeit eingegebenen Parameter stammen soll oder ob man durch eine Verkettung unterschiedlicher Werte ein neuer String generiert möchte. Im Fortgeschrittenen-Modus, kann man sogar mathematische Berechnungen und arithmetische Operationen durchführen. Die Shell-Technology ist ab FME 2012 in den meisten Transformer verüfgbar.

 

So konnte man z.B. früher mit dem  AttributeCreator lediglich ein neues Attribut mit einem fest vorgegebenen Wert generieren. Für eine Manipulation des Attributwertes, wie das Zusammenfügen von Strings, diversen Berechnungen oder Übergabe der Werte aus anderen Attributen, Variablen oder Parametern musste man viele unterschiedliche Transformer verwenden. Bei umfangreichen Attributmanipulationen entstanden so sehr große Workbench-Dateien mit vielen Transformern.

 

Wer jetzt das Parameterfenster des AttributeCreators öffnet erkennt sofort die Fülle an neuen Funktionen. So kann man den Wert eines anderen Attributs, wie beim AttributeCopier, übergeben. Um vom Benutzer eingegebene Parameter in den Workspace zu übernehmen, braucht man keinen ParameterFetcher mehr sondern nur noch die entsprechende Methode des AttributeCreators. Anstelle des StringConcatanators, der mehrere Werte zu einem String verbunden hat, baut man sich seinen String nun aus den beschriebenen Funktionen im neuen Text Editor des Transformers zusammen.

 

Doch damit ist man immer noch nicht am Ende des Funktionsumfangs. Wechselt man im Text Editor in den Fortgeschrittenen-Modus, so kann man nun auch mathematische Berechnungen und arithmetische Operationen durchführen.  

 

Soll der Wert des Attributs z.B. die Größe der Fläche oder Länge der Linie wiedergeben, den Wert einer Koordinate beinhalten, eine eindeutige ID aufweisen und noch vieles mehr, genügt nur noch ein Blick in die Feature Functions des Transformers.

 

Die bisherige Vorgehensweise von FME war streng iterativ und verlangte ein nacheinander Abarbeiten von einzelnen Schritten. Ab 2012 wird durch die beschriebene „Shell-Technology“ die Arbeitsweise wesentlich kompakter. Dies kann, je nach Komplexität des Workspaces, eine Einsparung von über 50% der Transformer bedeuten.

InlineQuerier (Transformer)

28.03.2012

Mit dem InlineQuerier eröffnen sich in FME 2012 neue Möglichkeiten bei der Arbeit mit SQL-Abfragen.  Mit diesem Transformer ist es u. a. möglich, temporäre Datenbank-Tabellen „inline“ im definierten Datenfluss einzubinden. So können z. B. Joins auf Daten ausgeführt werden, die niemals in der Datenbank waren. Mit dem InlineQuerier werden sogar SQL-Abfragen an Formaten ermöglicht, die keine klassischen Datenbank-Formate sind.
Der InlineQuerier erlaubt zudem das Absetzen unterschiedlicher SQL-Abfragen in einem Arbeitsgang. Diese können wiederum als unabhängige Datenströme im Workspace angesprochen werden. Das erspart das mühevolle Verketten von vielen FeatureMergern hintereinander, erhöht die Performance von Datenbank-Joins und steigert die Effizienz der Workspace-Entwicklung.
Mit dem InlineQuerier können jetzt komplexe Datenverbindungen und Abfragen auf einfache Weise umgesetzt werden.

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