Mithilfe unserer Python-Bibliothek kann die Geo Engine in Python-Projekte und Jupyter-Notebooks eingebunden werden. Daraus ergibt sich eine Vielzahl von Möglichkeiten. Verfügbare Datensätze und Berechnungsergebnisse der Geo Engine, können in Python als GeoPandas Dataframes und Numpy Arrays verwendet werden. Aufwendige Berechnungen wie Datenaufbereitung und Datenanreicherung können an die Geo Engine ausgelagert werden. Spezialalgorithmen können dann in Python entwickelt bzw. wiederverwendet werden. So kann die Geo Engine nahtlos in Ihre Data Science-Workflows eingebunden werden.
Installation
Die Installation erfolgt mittels PyPI-Package:
- Optional: Erstellen Sie ein neues Python-Projekt und eine virtuelle Python-Umgebung mittels
python3 -m venv env
und aktivieren Sie diese mittelssource env/bin/activate
- Installieren Sie das Geo Engine-Package mittels
pip install geoengine
- Starten Sie die Python-Konsole oder ein Jupyter-Notebook (Optional: Wählen Sie den Kernel der erstellen virtuellen Umgebung aus)
- Binden Sie das Package ein mittels
import geoengine as ge
Demo
Zunächst importieren wir die benötigten Pakete:
import geoengine as ge
from datetime import datetime
Dann wird die Verbindung zu einer (lokalen) Geo Engine initialisiert. Um eine von uns bereitgestellte Instanz zu verwenden, kontaktieren Sie uns gerne.
ge.initialize("http://localhost:3030")
Der Workflow wird als JSON definiert (oder alternativ über eine ID, die im Web-UI über das Layer-Kontextmenü kopiert werden kann):
workflow = ge.register_workflow({
"type": "Vector",
"operator": {
"type": "RasterVectorJoin",
"params": {
"names": ["NDVI"],
"aggregation": "none"
},
"sources": {
"vector": {
"type": "OgrSource",
"params": {
"dataset": {
"type": "internal",
"datasetId": "a9623a5b-b6c5-404b-bc5a-313ff72e4e75"
},
"attributeProjection": None
}
},
"rasters": [{
"type": "GdalSource",
"params": {
"dataset": {
"type": "internal",
"datasetId": "36574dc3-560a-4b09-9d22-d5945f2b8093"
}
}
}]
},
}
})
Das Ergebnis wird mit einer Methode aus dem geoengine-Paket abgerufen. Vektor-Daten werden über WFS aus der Geo Engine geladen:
time = datetime.strptime('2014-04-01T12:00:00.000Z', "%Y-%m-%dT%H:%M:%S.%f%z")
data = workflow.get_dataframe(
ge.Bbox(
[-111.533203125, -4.482421875, 114.345703125, 73.388671875],
[time, time]
)
)
Anschließend können die Daten z.B. visualisiert werden:
data.plot('NDVI', figsize=(16, 8));

Fazit
Unsere Bibliothek ermöglicht es die Geo Engine via Python in Data Science-Arbeit einzubinden.
- Die Installation geschieht manuell oder über pip
- Workflows können in Python definiert, von der Geo Engine berechnet
- Ergebnisse können in Python z.B. als GeoPandas Dataframe verwendet werden