STAC-Implementierungen in Geodateninfrastrukturen
Im Beitrag zu geopilot #1 haben wir bereits eine konkrete Implementierung von STAC beschrieben. Im vorliegenden Beitrag gehen wir nun noch etwas tiefer auf die zugrundeliegenden Technologien ein und schaffen eine Verallgemeinerung der Konzepte. Wir beschreiben, wie eine STAC-Implementierung in Geodaten-Infrastrukturen aussehen kann, welche Vorbedingungen gegeben sein müssen und welche Vorteile eine STAC-API gegenüber anderen APIs für Ihre Geodaten-Infrastruktur haben kann.
Was kann STAC und was nicht?
Mit STAC lassen sich Geodaten(kataloge) auf eine standardisierte Art und Weise beschreiben und abfragen. Das STAC-Datenmodell definiert eine Reihe von Objekten und Attributen, die zur Beschreibung von Geodaten verwendet werden können. Für jedes Objekt lassen sich zentrale Metainformationen, wie räumliche und zeitliche Ausdehnung, sowie weitere technische Metadaten, wie zuständige Stelle, Lizenzbedingungen, etc. definieren. Der STAC-Standard definiert hier einige bekannte Felder und lässt gleichzeitig Raum für eigene Erweiterungen.
STAC ermöglicht dank der Standardisierung sowohl das maschinelle Durchsuchen unterschiedlicher Kataloge als auch für Menschen die Darstellung mit einer Oberfläche, wie dem STAC Browser von Radiant Earth. Damit eignet sich STAC hervorragend für die Bereitstellung von Geodaten.
STAC ist jedoch keine Datenbank, kein editierbares Verzeichnis, kein GIS-System und auch keine Visualisierungssoftware. Für die Beschreibung und Verwaltung der umfassenden Geodatensammlungen bei Kantonen und Bundesstellen existieren spezialisierte Systeme, welche Metainformationen verwalten und in integrierten Prozessen bearbeiten. Die Verwaltung der Metainformationen erfolgt zumeist in einer Datenbank (Postgres, MSSQL, Oracle, MongoDB) oder in Datenfiles. Basierend auf diesen Informationen lassen sich danach Portale mit Online-Karten, Datenbezügen oder eben auch STAC-APIs beliefern. Wie das genau funktioniert und welche Vorbedingungen erfüllt sein müssen, behandeln wir im nächsten Abschnitt.
Datenbank zu STAC: Nur wie?
Jede Geodaten-Infrastruktur ist mit ihren spezifischen Prozessen und Datenstrukturen ein individuelles System. Es gibt daher für diesen Schritt keine allgemeingültige Lösung. Wir können jedoch einige grundsätzliche Schritte und Überlegungen aufzeigen, welche bei der Umsetzung einer STAC-API helfen.
Datentransformation definieren: Es muss festgelegt werden, welche Objekte und Attribute vorhanden sind, und wie diese in die Struktur des STAC-Datenmodells überführt werden. Hierbei ist es wichtig zu verstehen, dass es keine allein richtige Lösung gibt. Beispielsweise können in einem Katalog die gleichen Daten auf unterschiedlichen Ebenen repräsentiert werden: Ein eigenständiger Datensatz (Verbreitung kanadische Goldrute) kann auch als Teil eines Produktes (Verbreitung invasive Arten) aufgeführt werden. Wie wir diese Transformation bei geopilot umgesetzt haben, haben wir bereits in einem vorherigen Beitrag behandelt. Sollten Sie Fragen dazu haben, beraten wir Sie gerne persönlich.
Anforderungen an die Aktualität festlegen: STAC ist so konzipiert, dass es sowohl als API (also dynamisch), wie auch als statische JSON-Dateien auf einer Web-fähigen Datenablage funktioniert. Je nach Anforderungen an die Aktualität reicht ein regelmässiger Export auf eine Web-fähige Datenablage oder es wird eine Echtzeitabfrage auf eine Datenbank benötigt. Der Entscheid kann Auswirkungen auf das Deployment, dessen Skalierbarkeit sowie STAC-Funktionalitäten, wie z.B. die Suche haben.
STAC-API implementieren: Für die API-Implementierung können diverse Entwicklungssprachen verwendet werden. Nutzen Sie die Sprache, mit der Sie vertraut sind und Erfahrung haben. Bei geowerkstatt arbeiten wir mit einer .NET-Implementierung. Die Bibliothek DotNetStac.Api bietet einfache Werkzeuge, um aus einer arbiträren Datenbasis ein STAC-konformes API zu bauen. Mit einer Postgres-Datenbank als Quelle und den Informationen aus Schritt 1 & 2 konnten wir so eine effiziente und skalierbare Lösung entwickeln, welche direkt mit allen gängigen STAC-Clients interagiert.
User Interface für die Endanwender definieren: Eine STAC API ist nicht für eine direkte Interaktion durch den Menschen vorgesehen. Um dennoch eine einfache und intuitive Oberfläche für die Benutzer zu bieten, verwenden wir den STAC Browser von Radiant Earth. Dieser bietet ein benutzerfreundliches User Interface, um die Daten zu durchsuchen und zu visualisieren.
Fazit
STAC ist ein mächtiger Standard, um Geodatenkataloge zu beschreiben und abzufragen. Eine STAC-API ist jedoch keine vorgefertigte Einheitslösung, sondern ein Werkzeug, um in individuellen Geodaten-Infrastrukturen eine standardisierte Schnittstelle für Geodaten zu implementieren. Der STAC-Standard lässt dabei genügend Spielraum, um auch spezifische Anforderungen umzusetzen. Mit den richtigen Werkzeugen und einem erfahrenen Team können auch komplexe Infrastrukturen STAC-konform aufbereitet werden.
Wir hoffen, dass Ihnen dieser Beitrag einen Einblick in die Implementierung einer STAC-API in Geodaten-Infrastrukturen geben konnte. Sollten Sie Fragen haben oder Unterstützung bei der Umsetzung einer STAC-API benötigen, stehen wir Ihnen gerne zur Verfügung.