Zephyrnet-Logo

Geodatenanalyse mit Geemap – KDnuggets

Datum:

Geodatenanalyse mit Geemap
Illustration vom Autor
 

Bei der Geodatenanalyse handelt es sich um einen Bereich, der sich mit der Verarbeitung, Visualisierung und Analyse einer besonderen Art von Daten, sogenannten Geodaten, befasst. Im Vergleich zu den normalen Daten haben wir tabellarische Daten mit einer zusätzlichen Spalte, den Standortinformationen, wie zum Beispiel Breiten- und Längengrad. 

Es gibt zwei Haupttypen von Daten: Vektordaten und Rasterdaten. Beim Umgang mit Vektordaten handelt es sich immer noch um einen tabellarischen Datensatz, während Rasterdaten eher Bildern wie Satellitenbildern und Luftbildern ähneln. 

In diesem Artikel werde ich mich auf Rasterdaten konzentrieren, die von Google Earth Engine bereitgestellt werden, einer Cloud-Computing-Plattform, die einen riesigen Datenkatalog mit Satellitenbildern bereitstellt. Diese Art von Daten können Sie mithilfe eines lebensrettenden Python-Pakets namens Geemap ganz einfach von Ihrem Jupyter-Notebook aus verwalten. Lass uns anfangen!

Was ist Google Earth Engine?

Geodatenanalyse mit Geemap
Screenshot des Autors. Startseite von Google Earth Engine.
 

Bevor wir mit der Python-Bibliothek beginnen, müssen wir das Potenzial verstehen Google Earth-Engine. Diese cloudbasierte Plattform, die auf der Google Cloud-Plattform basiert, hostet öffentliche und kostenlose Geodatensätze für akademische, gemeinnützige und geschäftliche Zwecke.

 

Geodatenanalyse mit Geemap
Screenshot des Autors. Übersicht über den Earth Engine-Datenkatalog. 
 

Das Schöne an dieser Plattform ist, dass sie einen Multi-Petabyte-Katalog mit Raster- und Vektordaten bereitstellt, die auf den Earth Engine-Servern gespeichert sind. Hierdurch können Sie sich schnell einen Überblick verschaffen Link. Darüber hinaus stellt es APIs bereit, um die Analyse von Rasterdatensätzen zu erleichtern. 

Was ist Geemap?

Geodatenanalyse mit Geemap
Illustration vom Autor. Geemap-Bibliothek.
 

Geemap ist eine Python-Bibliothek, die die Analyse und Visualisierung großer Mengen an Geodaten von Google Earth Engine ermöglicht. 

Vor diesem Paket war es bereits möglich, Rechenanfragen über JavaScript- und Python-APIs zu stellen, aber die Python-APIs verfügten über eingeschränkte Funktionalitäten und es mangelte an Dokumentation. 

Um diese Lücke zu schließen, wurde Geemap erstellt, um Benutzern den Zugriff auf Ressourcen von Google Earth Engine mit wenigen Codezeilen zu ermöglichen. Geemap basiert darauf Earthengine-API, Ipyleaflet und folium.

Um die Bibliothek zu installieren, benötigen Sie lediglich den folgenden Befehl:

pip install geemap

 

Ich empfehle Ihnen, mit diesem erstaunlichen Paket in Google Colab zu experimentieren, um sein volles Potenzial zu verstehen. Schauen Sie mal rein dieses kostenlose Buch geschrieben von Professor Dr. Qiusheng Wu für den Einstieg in Geemap und Google Earth Engine.

Wie greife ich auf Earth Engine zu?

Zuerst müssen wir zwei Python-Bibliotheken importieren, die im Tutorial verwendet werden:

import ee
import geemap

 

Zusätzlich zu geemap haben wir die Earth Engine Python-Client-Bibliothek namens ee importiert. 

Diese Python-Bibliothek kann für die Authentifizierung auf Earth Engine verwendet werden, aber es kann schneller sein, wenn man direkt die Geemap-Bibliothek verwendet:

m = geemap.Map()
m

 

Sie müssen auf die von dieser Codezeile zurückgegebene URL klicken, um den Autorisierungscode zu generieren. Wählen Sie zunächst das Cloud-Projekt aus und klicken Sie dann auf die Schaltfläche „TOKEN GENERATE“.

 

Geodatenanalyse mit Geemap
Screenshot des Autors. Notebook-Authentifikator.
 

Anschließend werden Sie aufgefordert, das Konto auszuwählen. Ich empfehle, das gleiche Konto von Google Colab zu verwenden, wenn Sie es verwenden.

 

Geodatenanalyse mit Geemap
Screenshot des Autors. Wähle einen Account.
 

Klicken Sie dann auf das Kontrollkästchen neben „Alle auswählen“ und klicken Sie auf die Schaltfläche „Weiter“. Kurz gesagt ermöglicht dieser Schritt dem Notebook-Client den Zugriff auf das Earth Engine-Konto.

 

Geodatenanalyse mit Geemap
Screenshot des Autors. Erlauben Sie dem Notebook-Client den Zugriff auf Ihr Earth Engine-Konto.
 

Nach dieser Aktion wird der Authentifizierungscode generiert und Sie können ihn in die Notizbuchzelle einfügen.

 

Geodatenanalyse mit Geemap
Screenshot des Autors. Kopieren Sie den Authentifizierungscode.
 

Sobald der Bestätigungscode eingegeben ist, können Sie endlich diese interaktive Karte erstellen und visualisieren:

m = geemap.Map()
m

 

Geodatenanalyse mit Geemap
 

Im Moment betrachten Sie nur die Basiskarte über ipyleaflet, einem Python-Paket, das die Visualisierung interaktiver Karten im Jupyter-Notizbuch ermöglicht. 

Erstellen Sie interaktive Karten

Zuvor haben wir gesehen, wie man eine interaktive Karte mithilfe einer einzigen Codezeile authentifiziert und visualisiert. Jetzt können wir die Standardkarte anpassen, indem wir den Breiten- und Längengrad des Schwerpunkts, die Zoomstufe und die Höhe angeben. Ich habe die Koordinaten von Rom als Mittelpunkt gewählt, um den Fokus auf der Europakarte zu richten. 

m = geemap.Map(center=[41, 12], zoom=6, height=600)
m

 

Geodatenanalyse mit Geemap

 

Wenn wir die Basiskarte ändern möchten, gibt es zwei Möglichkeiten. Der erste Weg besteht darin, die folgende Codezeile zu schreiben und auszuführen:

m.add_basemap("ROADMAP")
m

 

Geodatenanalyse mit Geemap
 

Alternativ können Sie die Grundkarte auch manuell ändern, indem Sie auf das Ringschlüssel-Symbol rechts klicken. 

 

Geodatenanalyse mit Geemap
 

Darüber hinaus sehen wir die Liste der von Geemap bereitgestellten Basiskarten:

basemaps = geemap.basemaps.keys()
for bm in basemaps:
   print(bm)

 

Dies ist die Ausgabe:

OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...

 

Wie Sie sehen, gibt es eine lange Reihe von Basiskarten, von denen die meisten dank OpenStreetMap, ESRI und USGS verfügbar sind.

Datentypen der Erdmaschine

Bevor Sie das volle Potenzial von Geemap zeigen, ist es wichtig, zwei Hauptdatentypen in Earth Engine zu kennen. Werfen Sie einen Blick auf die Dokumentation der Google Earth Engine für weitere Informationen an.

 

Geodatenanalyse mit Geemap
Illustration vom Autor. Beispiel für Vektordatentypen: Geometry, Feature und FeatureCollection.
 

Beim Umgang mit Vektordaten verwenden wir grundsätzlich drei Datentypen:

  • Geometrie speichert die Koordinaten, die zum Zeichnen der Vektordaten auf einer Karte erforderlich sind. Drei Haupttypen von Geometrien werden von Earth Engine unterstützt: Point, LineString und Polygon.
  • Merkmal ist im Wesentlichen eine Zeile, die Geometrie und nichtgeografische Attribute kombiniert. Es ist der GeoSeries-Klasse von GeoPandas sehr ähnlich.
  • FeatureCollection ist eine tabellarische Datenstruktur, die eine Reihe von Funktionen enthält. FeatureCollection und GeoDataFrame sind konzeptionell nahezu identisch.

 

Geodatenanalyse mit Geemap
Screenshot des Autors. Beispiel für einen Bilddatentyp. Es zeigt das Australian Smoothed Digital Elevation Model (DEM-S)
 

In der Welt der Rasterdaten konzentrieren wir uns auf Bild Objekte. Die Bilder der Google Earth Engine bestehen aus einer oder mehreren Marken, wobei jedes Band einen bestimmten Namen, ein geschätztes Minimum und Maximum sowie eine Beschreibung hat.

Wenn wir eine Sammlung oder Zeitreihe von Bildern haben, ImageCollection ist als Datentyp besser geeignet.

 

Geodatenanalyse mit Geemap
Screenshot vom Autor. Copernicus CORINE Landbedeckung.
 

Wir visualisieren die Satellitenbilder, die die Landbedeckungskarte Europas zeigen. Dieser Datensatz liefert die Veränderungen zwischen 1986 und 2018.

Zuerst laden wir das Bild mit ee.Image und wählen dann das Band „Landcover“ aus. Lassen Sie uns abschließend das Bild visualisieren, indem wir den geladenen Datensatz mithilfe von Map.addLayer als Ebene zur Karte hinzufügen. 

Map = geemap.Map()
dataset = ee.Image('COPERNICUS/CORINE/V20/100m/2012')
landCover = dataset.select('landcover')
Map.setCenter(16.436, 39.825, 6)
Map.addLayer(landCover, {}, 'Land Cover')
Map

 

Geodatenanalyse mit Geemap
Screenshot vom Autor.
 

Ebenso können wir die Satellitenbilder laden und visualisieren, die die Landbedeckungskarte Europas zeigen. Dieser Datensatz liefert die Veränderungen zwischen 1986 und 2018.

 

Geodatenanalyse mit Geemap
Screenshot vom Autor. Hochauflösende Offline-Bilder von Methankonzentrationen.

 

Zur Visualisierung einer Earth Engine ImageCollection sind die Codezeilen ähnlich, mit Ausnahme von ee.ImageCollection. 

Map = geemap.Map()
collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4').select('CH4_column_volume_mixing_ratio_dry_air').filterDate('2019-06-01', '2019-07-16')
band_viz = {
 'min': 1750,
 'max': 1900,
 'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
}

Map.addLayer(collection.mean(), band_viz, 'S5P CH4')
Map.setCenter(0.0, 0.0, 2)
Map

 

Geodatenanalyse mit Geemap
Screenshot vom Autor.
 

Das ist großartig! Auf dieser Karte sehen wir, wie Methan, einer der wichtigsten Verursacher des Treibhauseffekts, auf der Erde verteilt ist. 

Abschließende Überlegungen

Dies war ein Einführungsleitfaden, der Ihnen bei der Arbeit mit Google Earth Engine-Daten mithilfe von Python helfen kann. Geemap ist die umfassendste Python-Bibliothek zur Visualisierung und Analyse dieser Art von Daten. 

Wenn Sie tiefer in dieses Paket einsteigen möchten, können Sie sich die unten vorgeschlagenen Ressourcen ansehen. 

Der Code ist zu finden hier. Ich hoffe, Sie fanden den Artikel nützlich. Einen schönen Tag noch!

Nützliche Ressourcen:

 
 

Eugenia Anello ist derzeit wissenschaftlicher Mitarbeiter am Institut für Informationstechnik der Universität Padua, Italien. Ihr Forschungsprojekt konzentriert sich auf kontinuierliches Lernen in Kombination mit Anomalieerkennung.

spot_img

Neueste Intelligenz

spot_img