Oracle: Wie werden Geodaten mit Oracle Spatial Studio visualisiert?

geo-titl_20210118-130625_1

Im Sommer 2019 wurde von Oracle ein neues Tool für die Arbeit mit Geodaten veröffentlicht: Das Oracle Spatial Studio. Derzeit ist die Version 20.1 von Anfang Dezember 2020 aktuell. Bei dieser Java-Applikation handelt es sich um eine Self-Service Web-Applikation, bei der die Anwender die Geodaten visualisieren und analysieren können. Als Datenquelle steht die Oracle Datenbank zur Verfügung – über diese Applikation können jedoch auch Daten aus Dateien wie Shapefiles oder GeoJSONs importiert werden. Für die Analyse stehen alle bekannten Spatial-Funktionen der Datenbank zur Verfügung. Somit können diese Funktionen auf die Daten angewendet werden, ohne die entsprechenden SQL-Statements schreiben zu müssen – alles erfolgt mit Hilfe dieser grafischen Oberfläche. Die Zielgruppe sind damit nicht Entwickler, sondern eher Analysten, die sich ihre Analysen selbst zusammenstellen und anschließend veröffentlichen können.
Dieser Artikel soll einen Einstieg bzw. einen Überblick über die Funktionsweise vom Spatial Studio geben.

Installation

Die Installation von Spatial Studio gestaltet sich recht einfach, es besteht die Auswahl zwischen drei Installationsarten:
• Quick Start
• fertiges EAR-File für ein Deployment im WebLogic Server
• WAR-Datei für den Tomcat-Server.

Hier wird auf die Quick-Start-Methode eingegangen. Dazu wird das ZIP von Oracle heruntergeladen (siehe unter „Links") und entpackt. Im Anschluss kann das Studio mittels der Skripte „start.sh" unter Linux bzw. „start.bat" unter Windows gestartet werden. Beendet wird das Programm über die Skripte „stop.sh" bzw. „stop.bat". Nach dem erfolgreichen Start ist die Oberfläche über die URL <host/localhost>:4040/spatialstudio zu erreichen. Der Port 4040 dient hierbei für das HTTPS-Protokoll (Default), der Port 8080 für das HTTP-Protokoll. Diese Standardports sowie weitere Konfigurationen können in der Konfigurationsdatei „.configure" im Unterorder „/server" vorgenommen werden. Beim erstmaligen Aufruf kann es vorkommen, dass der Browser das Zertifikat nicht verifizieren kann, da es von Oracle selbst signiert ist. Daher sollte hierfür eine Ausnahme hinzugefügt werden.
Die erstmalige Anmeldung erfolgt über den User „admin" mit dem Passwort „welcome1". Dieses sollte im Anschluss sofort geändert werden mittels des Skripts „moduser.sh" bzw. „moduser.bat". Nach der Anmeldung wird zu Beginn abgefragt, in welchem Datenbank-Schema das Spatial-Studio-Repository angelegt werden soll. Dazu sind im Formular die entsprechenden Angaben (User/Pass, Host, Port, etc.) zu machen.

Weitere Hinweise zu diesem Repository(-User) finden Sie gegen Ende des Artikels.

Kurzüberblick der Oberfläche

Die Oberfläche selbst ist recht schlank gehalten mit den Haupt-Menüpunkten im linken Navigationsbereich. Für die Administration der Instanz steht die „Console" zur Verfügung, in der allgemeine Einstellungen (Proxys, Applikationslogo, verwendete Hintergrundkarte, etc.) vorgenommen werden können. Des Weiteren ist hier der System Status zu finden sowie die Logs. Unter dem Menüeintrag „Jobs" lassen sich die aktuell laufenden (z. B. Erstellung eines Spatial-Index) sowie die abgeschlossenen Aufgaben überblicken.

Die eigentliche Datenvisualisierung bzw. -analyse erfolgt in drei Schritten:
1. Verbindung erstellen
2. Dataset(s) erstellen
3. Projekt erstellen
Die Verbindung wird benötigt, wenn die Geodaten aus der Oracle-Datenbank stammen sollen. Dazu wird eine entsprechende Datenbankverbindung mit dem User angelegt. In den Datasets selbst werden die eigentlichen zu nutzenden Daten definiert und in den Projekten werden diese Datasets zusammengebracht und visualisiert, analysiert, aufbereitet, etc.

Verbindung erstellen

Eine neue Datenbankverbindung kann über den Punkt „Connections" im linken Hauptmenü aufgerufen werden. Mittels dem „Create Connection"-Button wird diese neue Verbindung erstellt:

Dataset erstellen

Grundlage für die Visualisierung als auch Analyse der Geodaten bilden die Datasets. Hier werden die in den Projekten zur Verfügung stehenden Datenquellen beschrieben. Als Datenbasis können zwei Quellen dienen:
• Datenbank (unter Angabe der jeweiligen Verbindung)
• Dateien
Neue Datenquellen können über den Button „Create Dataset" erstellt werden.

In der ersten Variante wird hierzu die Verwendung einer Datenbanktabelle gezeigt. Dazu wird im Schema des Users, welcher in der Verbindung angegeben wurde, die Tabelle STAEDTE erstellt und mit einigen Beispielzeilen befüllt:

CREATE TABLE staedte 
( name       VARCHAR2(20)
, longitude  NUMBER
, latitude   NUMBER
);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Berlin', 13.388854800, 52.517039700);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Paderborn', 8.752653000, 51.717704400);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Mainz', 8.271111000, 50.000000000);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Frankfurt', 8.682222000, 50.110556000);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Hamburg', 9.993333000, 53.550556000);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Düsseldorf', 6.782778000, 51.225556000);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Dresden', 13.738360000, 51.049259000);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Essen', 7.014761000, 51.458069000);
INSERT INTO staedte (name, longitude, latitude) VALUES ('München', 11.575556000, 48.137222000);
INSERT INTO staedte (name, longitude, latitude) VALUES ('Köln', 6.956944000, 50.938056000);
COMMIT;

SELECT * FROM staedte; 
 

Im Spatial Studio wird im Anschluss mittels dem Menüeintrag „Datasets" -> „Create Dataset"-Button -> Abschnitt „From table/view" die entsprechende Verbindung zu dem User ausgewählt. In der nachfolgenden Baumdarstellung werden alle zur Verfügung stehenden Tabellen und Views aufgelistet. Nach der Auswahl der Tabelle STAEDTE wird die Quelle über „OK" hinzugefügt. Nach dem Hinzufügen erscheint die neue Quelle in der Übersicht, jedoch mit einem Hinweis (gelbes Warndreieck):

Folgende zwei Punkte werden hier beanstandet:
• auf der Tabelle liegt kein Primärschlüssel
• für die weitere Verarbeitung müssen die Geodaten vorbereitet werden
Der erste Punkt lässt sich über den Link „Go to Dataset Columns" lösen: die Spalte, die als Primärschlüssel dienen soll, wird entsprechend angehakt:

Der Schlüssel muss noch mittels des Buttons „Validate key" validiert werden. Dieser Punkt kann dadurch umgangen werden, dass beim Create-Table-Statement bereits ein Primärschlüssel definiert wird.
Der zweite Punkt taucht nur auf, wenn keine Geospalte (Datentyp: SDO_GEOMETRY) mit einem Spatial-Index (R-Tree) gefunden wird - wie in diesem Beispiel. Daher gibt es zwei Möglichkeiten, dieses Problem zu lösen:
a) Geocoden, also das Zuordnen von Geokoordinaten zu einer Adresse. Hierzu wird als Standard der Geocoder von Oracle verwendet (maps.oracle.com/geocoder); dieser kann jedoch unter „Console" geändert werden.
b) Erstellen eines Lat-Lon-Index
Da in der Tabelle keine Adressdaten zum geocoden vorkommen, wird die Option b) genutzt.
Der Assistent fragt dazu nach den Tabellenspalten für die Angabe der Längengrade/Longitude und Breitengrade/Latitude, die in der Tabelle STAEDTE die entsprechenden Namen haben. Das Ergebnis ist die Erstellung eines funktionsbasierten Spatial-Index.

Neben der Datenbank können auch einzelne Dateien als Quelle für die Geodaten dienen. Diese können dabei von den Formaten sein:
• Spreadsheet bzw. CSV
• Shapefile
• GeoJSON

Als Beispieldaten für die Demo sollen die Kfz-Kreise in Deutschland dienen. Diese werden vom Bundesamt für Kartographie und Geodäsie als Shape-Datei bereitgestellt. Der Link zu diesen Geodaten ist am Ende des Artikels unter „Links" zu finden.
Für dieses weitere Dataset wird mit dem „Create Dataset"-Button erneut ein Dataset erstellt, diesmal jedoch vom Typen „From file upload". Aus der heruntergeladenen ZIP-Datei werden diese drei Dateien benötigt: „KFZ250.dbf", „KFZ250.shp" und „KFZ250.shx". Diese können per Dialogfenster als auch mittels Drag'n'Drop hinzugefügt werden:

Im darauffolgenden Dialog können diese Einstellungen vorgenommen werden:
• Verbindung: in das verbundene Schema wird diese Tabelle erstellt
• Tabellenname
• Datasetname
• Name der zu erstellenden Geometriespalte (Datentyp: SDO_GEOMETRY)
• SRID: mit den vorliegenden Daten ist es die SRID 32632 (WGS 84 / UTM Zone 32N)
• Schalter, ob ein Spatial-Index erstellt werden soll
Als Ergebnis wird eine neue Tabelle im gewählten Schema erstellt und die Daten eingefügt. Zusätzlich wird auch der Spatial-Index erstellt, sodass dieses Dataset direkt in der Analyse verwendet werden kann.

Visualisierung und Analyse der Geodaten

Für die eigentliche Visualisierung und/oder Analyse der Geodaten wird jeweils ein Projekt benötigt. Dieses kann über den „Create Project"-Button erstellt werden. Innerhalb des Projektes gibt es den Schalter (über das Symbol auswählbar):
• Data Elements
• Visualizations

Unter den „Visualizations" kann die grundlegende Darstellungsform der Daten festgelegt werden:
• Tabelle bzw. in tabellarischer Form
• 2D-Karte (Map)
• 3D-Erdkugel (Cesium-Map)
Zudem können hier auch im Nachgang weitere Visualisierungen dem Projekt hinzugefügt werden. Beispielweise um neben der Karte auch die Daten in Tabellenform zu präsentieren.

Unter den „Data Elements" findet sich eine baumartige Darstellung der verwendeten Datasets und Analysen. Zum Hinzufügen eines Datasets oder einer Analyse kann das „+"-Symbol verwendet werden. Die vorab definierten Datasets erscheinen nun in dieser Baumansicht und können für die Visualisierung verwendet werden. Um diese Geometrien auf der Karte anzuzeigen, kann das Dataset aus dem Baum heraus auf die Karte gezogen werden.

Die „Layers List" zeigt die in der Karte verwendeten „Datenschichten" und deren Reihenfolge an. Des Weiteren können pro Layer auch unter anderem folgende Einstellungen vorgenommen werden:
• Style: Form, Farbe, Deckkraft, etc. der Geometrie
• Filter: Datensätze filtern
• Interaction: erlauben, ob die Geometrie per Klick ausgewählt werden kann; Tooltip und Info-Fenster definieren
• Legend: soll dieser Layer mit in die Legende aufgenommen werden?

Analyse hinzufügen

Neben der reinen Anzeige von Geodaten aus der Datenquelle können im Studio auch Analysen auf diese Daten erstellt werden. Diese Analysen entsprechen, wie eingangs erwähnt, den von der Datenbank bereit gestellten Spatial-Operationen. Zu diesen gehören beispielhaft:
• Filtern: nächster Nachbar (SDO_NN), Interaktion der Geometrien (SDO_RELATE), Geometrien innerhalb einer Distanz (SDO_WITHINDISTANCE)
• Kombinieren: Linien zu einer kombinieren (SDO_AGGR_CONCAT_LINES), Geometrien zu einer kombinieren (SDO_AGGR_UNION)
• Transformieren: Buffer um Geometrie zeichnen (SDO_GEOM.SDO_BUFFER), Geometrie vereinfachen (SDO_UTIL.SIMPLIFY)
• Berechnen: Fläche berechnen (SDO_GEOM.SDO_AREA), Länge berechnen (SDO_GEOM.SDO_LENGTH), Entfernen berechnen (SDO_GEOM.SDO_DISTANCE)

In diesem Beispiel sollen die Kfz-Kreise zu den jeweiligen Städten angezeigt werden. Dazu wird eine Analyse benötigt, welche die Interaktion der Städte (Punkte) zu den Kfz-Kreisen (Polygone) berechnet. Dazu wird eine Analyse erstellt, die dem Operator SDO_ANYINTERACT entspricht:
„+"-Symbol -> „Create New Analysis" -> „Filter" -> „Return shapes having any spatial interaction with another"

Im folgenden Dialog werden diese Einstellungen vorgenommen:
• einen Namen vergeben für diese Analyse
• Layer to be filtered: der Layer, der gefiltert werden soll; hier das Dataset mit den Kfz-Kreisen
• Layer to be used as the filter: der Layer, der als Filter dient; hier das Dataset mit den Städten
Das Ergebnis der Analyse-Funktion ist wiederrum ein Dataset und kann ebenfalls auf die Karte zur Anzeige gezogen und formatiert werden.

Der letzte Schritt beim Erstellen eines Projekts ist dessen Veröffentlichung. Damit kann das jeweilige fertige Projekt über eine URL direkt aufgerufen werden. Dazu wird in der Menüleiste oben rechts der Punkt "Publish Project" ausgewählt:

Neben dem Namen kann noch eine Beschreibung hinzugefügt werden. Nach dem Veröffentlichen erscheint dieses als neuer Eintrag unter dem Menü „Projects". Dieses kann durch Klicken bzw. im Menü unter „Open" im neuen Tab/Fenster geöffnet oder die URL zum Herauskopieren angezeigt werden:

Das fertige, veröffentlichte Beispiel-Projekt sieht wie folgt aus:

© Bundesamt für Kartographie und Geodäsie (2020), Datenquellen: Kraftfahrt-Bundesamt, Flensburg

Metadaten in der Datenbank

Spatial Studio benötigt für die Ablage der Metainformationen (Datasets, Projekte, etc.) einen Datenbank-User, in der diese Informationen abgelegt werden. Dieser User kann ein neuer, eigens für Spatial Studio angelegter sein, oder ein bereits existierender. In beiden Fällen wird eine Reihe von Objekten dem Schema hinzugefügt. Es wird empfohlen, einen eigenen User für die Metadaten anzulegen. Dabei werden mindestens die folgenden Berechtigungen benötigt:
• CONNECT
• RESOURCE
• CREATE VIEW
• CREATE SEQUENCE
• CREATE SYNONYM
• CREATE PROCEDURE
• QUERY REWRITE
• CREATE SESSION
Die Verbindungseinstellungen für diesen Metadaten-User werden beim erstmaligen Starten abgefragt. Zudem können diese im Nachgang auch in der Konfigurationsdatei „sgtech_config.json", zu finden im Ordner „.sgtech" (unter Linux: im Home-Ordner; unter Windows: C:\Users\), angepasst werden.

Die dabei erstellten Tabellen sind:
• SGTECH_OBJECT: hier werden u. a. alle Objektinformationen (welche Tabellen(spalten) verwendet werden, etc.) und Applikationseinstellungen (Logo, Proxy, etc.) abgelegt
• SGTECH_SYS_TYPE: Beschreibungen zu den in der Spalte OBJECTTYPE in der Tabelle SGTECH_OBJECT verwendeten Objekttypen
• SGTECH_SYS_JSON_SCHEMA: Schemainformationen zu den (Geo)JSON-Dateien
• SGTECH_TASK_QUEUE: Übersicht der langlaufenden Spatial Studio Jobs
• SGTECH_TASK_BROKER: Übersicht der Job-Broker für Spatial Studio
Die für Analysen erzeugten Informationen zu den Geodaten werden der Applikation jeweils mittels einer View bereitgestellt. Diese Views werden im Schema des Users angelegt, welcher für das Dataset verwendet wird. So erstellt die hier demonstrierte Analyse eine View (SGTECH$VIEW), die die entsprechende Spatial-Operation (SDO_ANYINTERACT) auf den Geodaten bereitstellt.

Fazit

Zusammengefasst kann gesagt werden, dass mit dem Oracle Spatial Studio ein Tool zur Verfügung gestellt worden ist, mit dessen Hilfe sich auch wenig SQL- bzw. Datenbank-erfahrene Anwender auf eine recht einfache Art und Weise ihre Visualisierungen und Analysen von Geodaten zur Verfügung stellen können.

Links

Oracle Spatial Studio Downloads
https://www.oracle.com/database/technologies/spatial-studio/oracle-spatial-studio-downloads.html

Bundesamt für Kartographie und Geodäsie: KFZ-Kennzeichen 1:250 000 (KFZ250)
https://gdz.bkg.bund.de/index.php/default/open-data/kfz-kennzeichen-1-250-000-kfz250.html
Reiter „Direktdownload"  „Georeferenzierung: UTM32s, Format: shape (ZIP, 9 MB)"

Quellen

Oracle Spatial Studio Guide - Release 20.1
https://docs.oracle.com/en/database/oracle/spatial-studio/20.1/spstu/index.html

Bundesamt für Kartographie und Geodäsie
http://www.bkg.bund.de

By accepting you will be accessing a service provided by a third-party external to https://blog.ordix.de/