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?
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.
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?
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“.
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.
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.
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.
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
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
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
Alternativ können Sie die Grundkarte auch manuell ändern, indem Sie auf das Ringschlüssel-Symbol rechts klicken.
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.
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.
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.
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
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.
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
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.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoData.Network Vertikale generative KI. Motiviere dich selbst. Hier zugreifen.
- PlatoAiStream. Web3-Intelligenz. Wissen verstärkt. Hier zugreifen.
- PlatoESG. Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- PlatoHealth. Informationen zu Biotechnologie und klinischen Studien. Hier zugreifen.
- Quelle: https://www.kdnuggets.com/geospatial-data-analysis-with-geemap?utm_source=rss&utm_medium=rss&utm_campaign=geospatial-data-analysis-with-geemap