Geo-ETL-Tutorial: Gebiete festlegen mittels Pufferbildung

Dank GeoSpatial Integration kann die Berechnung von Puffern nun auch im Kontext von Talend ausgeführt werden. Um beim Tutorial mitzumachen, benötigen Sie die Software Talend Open Studio für Data Integration und das Disy-Plug-in „GeoSpatial Integration für Talend“.

Geo-ETL-Tutorial: Gebiete festlegen mittels Pufferbildung

Installieren Sie zunächst Talend Open Studio sowie GeoSpatial Integration für Talend auf Ihrem Rechner. Die Downloads finden Sie hier:

Im Downloadpaket von Disy sind alle für dieses Tutorial benötigten Daten enthalten.

Als Ausgangspunkt haben wir den Flughafen Frankfurt/Main gewählt. Um diesen bilden wir im Verlauf des Tutorials einen Puffer mit einem Radius von 50 km und einen weiteren mit einem Radius von 20 km. Unser Datensatz enthält globale Flughafendaten, die als Punktgeometrien vorliegen.

Im Tutorial setzen wir die GeoSpatial-Komponente „dBufferCalculator“ ein, die mit GeoSpatial Integration für Talend nun auch im Kontext von Talend-ETL-Prozessen ausgeführt werden kann. Die dargestellte Komponente ist eine der Kernfunktionen gängiger Geoinformationssysteme. Mithilfe dieser Komponente lassen sich, basierend auf Entfernungsparametern, eine oder mehrere Pufferflächen erstellen. Diese Flächen bilden häufig die Grundlage von Analysen und Planungen. Darüber hinaus sind die Resultate von Pufferoperationen oftmals Zwischenschritte innerhalb komplexerer Berechnungen. Häufig werden Puffer auch als räumliche Filterparameter eingesetzt.

Das Szenario unseres Tutorials lässt sich auf viele Anwendungsfälle übertragen, bei denen ein Gebiet um einen Punkt, ein Objekt oder auch eine Stadt bestimmt werden soll. Zum Beispiel:

1. Biologie: Abstand von Populationen einer Art zu Baugebieten, Straßenplanungen

2. Stadtplanung: Versorgung von städtischen Regionen mit urbanem Grün

3. Fachübergreifend: Anzahl registrierter Objekte (Bäume, Tankstellen, Seen) innerhalb eines spezifischen Suchradius

Schritt 1: Metadaten in Talend anlegen

Zunächst werden die Metadaten in der Talend-Software angelegt. Wählen Sie im Repository-Baum von Talend Metadata > DbConnections > Create connections und erstellen Sie eine neue Verbindung.

Es öffnet sich ein Dialog, in dem Sie den Namen und einen Verwendungszweck der neuen Verbindung angeben. Wählen Sie „SQLite“ als Datenbanktyp aus und geben Sie den Pfad an, unter dem die Datei natural_earth.sqlite liegt. Auf Ihrem Rechner liegt die Datei unter dieser Pfadendung: …\Disy_GeoSpatial_Sample_Data\in\DataPreparation. Beenden Sie den Dialog mit Klick auf Finish.

Die Datenverbindung wird nun in den Metadaten aufgeführt (Abb.2). Bearbeiten Sie in Ihren Metadaten per Rechtsklick auf „NaturalEarth“ das Schema (Abb.3).

Abb. 1: Anlegen einer neuen Datenbankverbindung
Abb. 1: Anlegen einer neuen Datenbankverbindung
Abb. 2: Die Datenverbindung wird in den Metadaten aufgeführt
Abb. 3: Schema des Datensatz „NaturalEarth“ aufrufen
Abb. 3: Schema des Datensatz „NaturalEarth“ aufrufen
Abb. 4: Die Tabelle „NE_10M_AIRPORTS“ wird ausgewählt und geladen
Abb. 4: Die Tabelle „NE_10M_AIRPORTS“ wird ausgewählt und geladen

Der Filter-Table-Dialog wird angezeigt. Klicken Sie hier auf Next und laden Sie die Tabelle, die die Punktinformationen der Flughäfen enthält. Geben Sie dazu im Feld Name Filter „NE“ ein und wählen Sie NE_10M_AIRPORTS aus. Es werden 12 Spalten angezeigt. Der „Creation status“ lautet „Success“.

Abb. 5: Nicht benötigte Spalten werden markiert und gelöscht
Abb. 5: Nicht benötigte Spalten werden markiert und gelöscht

Klicken Sie auf Next. Die Schemainformationen werden angezeigt. Entfernen Sie nicht benötigte Spalten: Markieren Sie diese und klicken Sie dann auf das rote „X“. Entfernen Sie so alle Spalten bis auf PK_UID, type, name, iata_code und Geometry.

Abb. 6: Das Schema der Tabelle NE_10M_AIRPORTS wird in den Metadaten angezeigt
Abb. 6: Das Schema der Tabelle NE_10M_AIRPORTS wird in den Metadaten angezeigt

Nehmen Sie die folgenden Einstellungen vor:

  • Spalte PK_UID: Setzen Sie Type auf Integer (INT) und aktivieren Sie das Kontrollkästchen „Key“, um den Primärschlüssel festzulegen.
  • Spalte Geometry: Stellen Sie sicher, dass DB Type als POINT gesetzt ist, und setzen Sie Typ auf DGeometry. Dieser Typ wird von GeoSpatial Integration für Talend genutzt, um Geodaten zu verarbeiten.

Beenden Sie den Dialog mit Finish. Das Schema der Tabelle NE_10M_AIRPORTS ist jetzt in den Metadaten enthalten.

Schritt 2: Geo-ETL-Job angelegen

Jetzt müssen Sie in Talend einen neuen Job erstellen. Dazu legen Sie zunächst im Repository unter „Job Designs“ einen neuen Ordner „Airports“ an. Danach wählen Sie im Repository-Baum Job Designs > Airports > Create job (Abb.7).

Geben Sie im Dialogfenster einen Namen (z. B. buffer_airport), einen Zweck und eine Beschreibung ein und beenden Sie den Dialog mit Finish. Ihr Job ist nun unter „Airports“ angelegt (Abb 8).

Abb. 7: Im Repository wird ein neuer Job angelegt
Abb. 7: Im Repository wird ein neuer Job angelegt
Abb. 8: Der Job ist angelegt und muss noch bearbeitet werden
Abb. 8: Der Job ist angelegt und muss noch bearbeitet werden

Schritt 3: Job bearbeiten

Abb. 9: Die Daten von NE_10M_AIRPORTS werden in die Arbeitsfläche geholt und die Komponente dSpatialLiteInput wird erstellt
Abb. 9: Die Daten von NE_10M_AIRPORTS werden in die Arbeitsfläche geholt und die Komponente dSpatialLiteInput wird erstellt

Zunächst extrahieren Sie die Daten. Wählen Sie dazu im Bereich „Metadata“ NE_10M_AIRPORTS (Db Connections > NaturalEarth > Table Schemas) aus und ziehen Sie es per Drag-and-drop in die Arbeitsfläche des Jobs. Automatisch öffnet sich ein Dialog. Wählen Sie für unsere Aufgabe die Komponente dSpatialLiteInput aus.

Abb. 10: Die Eigenschaften von NE_10M_Airports werden aufgerufen
Abb. 10: Die Eigenschaften von NE_10M_Airports werden aufgerufen

NE_10M_Airports ist nun im Job vorhanden. Doppelklicken Sie auf die Komponente, um ihre Eigenschaften einzusehen. Folgende Werte werden angezeigt:

Abb. 11: Die Komponente tReplicate wird in die Arbeitsfläche gezogen
Abb. 11: Die Komponente tReplicate wird in die Arbeitsfläche gezogen

Jetzt unterteilen wir den Eingangsdatenstrom mittels der Komponente tReplicate. Wählen Sie in der Palette rechts die Komponente tReplicate aus und ziehen Sie diese in die Arbeitsfläche des Jobs. Sie finden die Komponente unter Orchestration oder über die Suchfunktion rechts oben.

Abb. 12: Eine Main-Row-Verbindung wird zwischen beiden Komponenten angelegt
Abb. 12: Eine Main-Row-Verbindung wird zwischen beiden Komponenten angelegt

Legen Sie nun zwischen der Komponente dSpatiaLiteInput und der Komponente tReplicate eine Main-Row-Verbindung an. Klicken Sie hierzu mit der rechten Maustaste auf die Komponente dSpatiaLiteInput, wählen Sie im Kontextmenü Row à Main und ziehen Sie die Verbindung auf tReplicate.

Abb. 13: Die Struktur des Geo-ETL-Jobs wird erkennbar
Abb. 13: Die Struktur des Geo-ETL-Jobs wird erkennbar

Benennen Sie die Verbindung per Doppelklick von row1 um, z. B. in Airports.

Wählen Sie in der Palette nun die Komponente dBufferCalculator aus und ziehen Sie diese zweimal in die Arbeitsfläche des Jobs – einmal für den 50-km-Puffer und einmal für den 20-km-Puffer. Legen Sie anschließend ausgehend von der Komponente tReplicate eine Main-Row-Verbindung zu den beiden dBufferCalculator-Komponenten an. Benennen Sie die zugefügten Komponenten innerhalb des Jobs nach den km-Distanzen. So können Sie beide Schritte besser voneinander unterscheiden.

Abb. 14: Der 50-km-Puffer wird angelegt
Abb. 14: Der 50-km-Puffer wird angelegt

Doppelklicken Sie auf den 50-km-Buffer-Calculator. Ein neues Eingabefeld öffnet sich.
Geben Sie die folgenden Einstellungen ein:

  • Input geometry column: Geometry
  • Buffer width: 50000 (50 km)
  • Number of line segments: 8
  • Line end cap style: Round
  • Output buffer geometry column: Geometry

In der 20-km-Instanz der dBufferCaculator-Komponente wählen Sie dieselben Einstellungen wie oben aus und geben bei „buffer width“ 20000 (20 km) ein.

Jetzt schreiben wir die entstehenden gepufferten Gebiete in zwei Shapefiles. Dazu wählen Sie in der Palette die Komponente dShapeFileOutput aus und ziehen Sie diese zweimal in die Arbeitsfläche des Jobs. Sie finden Sie in der Palette unter Disy GeoSpatial > File > Shapefile. Benennen Sie die Komponenten um (z. B. ShapeOutput_50km und ShapeOutput_20km).

Legen Sie ausgehend von den beiden dBufferCalculator-Komponenten je eine Main-Row-Verbindung zu den beiden dShapeFileOutput-Komponenten an. Benennen Sie die zugefügten Komponenten innerhalb des Jobs.
Beginnen Sie mit der ersten dShapefileOutput-Komponente und lassen Sie sich deren Eigenschaften anzeigen.

Nehmen Sie die folgenden Einstellungen vor:

  • Shapefile: Wählen Sie den Speicherort des Shapefiles aus und benennen Sie es, z. B. Buffer_50km.shp
  • Schema: Das Schema wird automatisch von der tMap-Komponenten übertragen.
  • GeometryType: Der richtige Typ Polygon/Multipolygon ist bereits ausgewählt.
  • Koordinatenreferenzsystem: Geben Sie “EPSG:3857” ein.
  • Encoding: Wählen Sie das Encoding aus, z. B. ISO88-59-15.
Abb. 15: So sollte Ihr Geo-ETL-Job aussehen
Abb. 15: So sollte Ihr Geo-ETL-Job aussehen

Wiederholen Sie diese Schritte für die zweite dShapefileOutput-Komponente.

Jetzt erwartet uns das Finale: Klicken Sie oben in der Menüleiste auf das grüne Dreieck, um den Job auszuführen. Die Ausgabedateien (zwei Shapefiles) werden in den von Ihnen angegebenen Ordner geschrieben und können anschließend bearbeitet oder visualisiert werden.

Die folgende Abbildung zeigt, wie unser finaler ETL-Job aussieht.

Herzlichen Glückwunsch! Sie haben dieses Tutorial erfolgreich gemeistert.

In der Karte, die wir mit Cadenza erstellt haben, sehen wir unser Ergebnis visualisiert (Abb. 16).

Abb. 16: Visualisierung der beiden Puffer in Cadenza
Abb. 16: Visualisierung der beiden Puffer in Cadenza

Möchten Sie mehr zu Cadenza erfahren?