FeatureReader

FeatureReader

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. 

Top