Die Earth Engine Python API kann in einem Google Colaboratory-Notebook bereitgestellt werden. Colab-Notebooks sind Jupyter-Notebooks, die in der Cloud ausgeführt werden und eng mit Google Drive verknüpft sind. Sie lassen sich daher ganz einfach einrichten, darauf zugreifen und teilen. Wenn Sie mit Google Colab oder Jupyter-Notebooks nicht vertraut sind, sollten Sie sich die Colab-Begrüßungsseite ansehen.
In den folgenden Abschnitten wird beschrieben, wie Sie Earth Engine in Google Colab bereitstellen und Karten und Diagramme mit Python-Paketen von Drittanbietern visualisieren.
Colab-Notebook öffnen
Notebooks können entweder über Google Drive oder über die Colaboratory-Benutzeroberfläche geöffnet werden.
Neues Notebook
Google Drive
Öffne Google Drive und erstelle eine neue Datei.
- Neu > Mehr > Colaboratory
- Klicken Sie mit der rechten Maustaste auf einen Ordner und wählen Sie im Kontextmenü Mehr > Colaboratory aus.
Colab-Benutzeroberfläche
Rufen Sie die Colab-Website auf und erstellen Sie eine neue Datei.
- Datei > Neu > Neues Python 3-Notebook
- Wenn Sie bereits mit Colab gearbeitet haben, wird auf der oben verlinkten Website ein Datei-Explorer geöffnet, in dem Sie über das Drop-down-Menü unten im Fenster eine neue Datei erstellen können.
Vorhandenes Notizbuch
Vorhandene Notebookdateien (.ipynb) können über Google Drive und die Colab-Benutzeroberfläche geöffnet werden.
Google Drive
Colab-Notebooks können sich in verschiedenen Ordnern in Google Drive befinden, je nachdem, wo die Notebookdateien erstellt wurden. In Google Drive erstellte Notizenbücher befinden sich im Ordner, in dem sie erstellt oder verschoben wurden. Notebooks, die über die Colab-Benutzeroberfläche erstellt werden, werden standardmäßig in einem Ordner namens „Colab-Notebooks“ gespeichert, der automatisch dem Ordner „Mein Drive“ in Google Drive hinzugefügt wird, wenn Sie mit Colab arbeiten.
Colab-Dateien sind am gelben CO-Symbol und der Dateiendung „.ipynb“ zu erkennen. Sie können Dateien öffnen, indem Sie entweder doppelt darauf klicken und oben auf der angezeigten Seite die Schaltfläche Mit > Colaboratory auswählen oder mit der rechten Maustaste auf eine Datei klicken und im Kontextmenü Mit > Colaboratory auswählen.
Colab-Benutzeroberfläche
Wenn Sie Notebooks über die Colab-Benutzeroberfläche öffnen, können Sie auf vorhandene Dateien in Google Drive, GitHub und auf lokaler Hardware zugreifen. Wenn Sie die Colab-Benutzeroberfläche nach der ersten Verwendung aufrufen, wird ein modales Fenster des Datei-Explorers angezeigt. Wählen Sie oben im Datei-Explorer eine Quelle aus und gehen Sie zu der .ipynb-Datei, die Sie öffnen möchten. Sie können auch über die Colab-Benutzeroberfläche auf den Datei-Explorer zugreifen. Wählen Sie dazu Datei > Notebook öffnen aus oder verwenden Sie die Tastenkombination Strg + O.
API importieren und Anmeldedaten abrufen
In diesem Abschnitt wird gezeigt, wie Sie die Earth Engine Python API importieren und den Zugriff authentifizieren. Dieser Inhalt ist auch als Colab-Notebook verfügbar:
Die Earth Engine API ist standardmäßig in Google Colaboratory enthalten und muss nur importiert und authentifiziert werden. Diese Schritte müssen für jede neue Colab-Sitzung ausgeführt werden, wenn Sie den Colab-Kernel neu starten oder wenn Ihre Colab-virtuelle Maschine aufgrund von Inaktivität wiederverwendet wird.
API importieren
Führen Sie die folgende Zelle aus, um die API in Ihre Sitzung zu importieren.
import ee
Authentifizieren und initialisieren
Führen Sie die Funktion ee.Authenticate
aus, um Ihren Zugriff auf die Earth Engine-Server zu authentifizieren, und ee.Initialize
, um sie zu initialisieren. Fügen Sie eine Codezelle hinzu, geben Sie die folgenden Zeilen ein, bearbeiten Sie das Projekt und führen Sie die Zelle aus.
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
Sie werden aufgefordert, den Zugriff auf Ihr Earth Engine-Konto zu autorisieren. Folgen Sie der Anleitung auf der Zelle, um diesen Schritt auszuführen.
API testen
Testen Sie die API, indem Sie die Höhe des Mount Everest ausgeben. Bevor Sie die API verwenden können, müssen Sie sie initialisieren. Führen Sie das folgende Python-Script in einer neuen Zelle aus.
# Print the elevation of Mount Everest. dem = ee.Image('USGS/SRTMGL1_003') xy = ee.Geometry.Point([86.9250, 27.9881]) elev = dem.sample(xy, 30).first().get('elevation').getInfo() print('Mount Everest elevation (m):', elev)
Kartenvisualisierung
ee.Image
-Objekte können in Notebook-Ausgabezellen angezeigt werden. In den folgenden beiden Beispielen wird gezeigt, wie ein statisches Bild und eine interaktive Karte angezeigt werden.
Statisches Bild
Das IPython.display
-Modul enthält die Funktion Image
, mit der die Ergebnisse einer URL angezeigt werden können, die ein Bild darstellt, das durch einen Aufruf der Earth Engine-Funktion getThumbUrl
generiert wurde. Das folgende Script zeigt eine Miniaturansicht eines globalen Höhenmodells an.
# Import libraries. import ee from IPython.display import Image # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Import a DEM and display a thumbnail of it. dem = ee.Image('USGS/SRTMGL1_003') Image(url=dem.updateMask(dem.gt(0)) .getThumbUrl({'min': 0, 'max': 4000, 'dimensions': 512, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}))
Interaktive Karte
Mit dem Paket folium
können Sie ee.Image
-Objekte auf einer interaktiven Leaflet-Karte anzeigen. Folium hat keine Standardmethode zum Umgang mit Kacheln aus Earth Engine. Daher muss eine Methode definiert und vor der Verwendung dem folium.Map
-Modul hinzugefügt werden.
Im folgenden Script wird eine Methode zum Verarbeiten von Earth Engine-Kacheln hinzugefügt und verwendet, um ein Höhenmodell auf einer Leaflet-Karte anzuzeigen.
# Import libraries. import ee import folium # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Define a method for displaying Earth Engine image tiles to folium map. def add_ee_layer(self, ee_image_object, vis_params, name): map_id_dict = ee.Image(ee_image_object).getMapId(vis_params) folium.raster_layers.TileLayer( tiles = map_id_dict['tile_fetcher'].url_format, attr = "Map Data © Google Earth Engine", name = name, overlay = True, control = True ).add_to(self) # Add EE drawing method to folium. folium.Map.add_ee_layer = add_ee_layer # Fetch an elevation model. dem = ee.Image('USGS/SRTMGL1_003') # Set visualization parameters. vis_params = { 'min': 0, 'max': 4000, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']} # Create a folium map object. my_map = folium.Map(location=[20, 0], zoom_start=3) # Add the elevation model to the map object. my_map.add_ee_layer(dem.updateMask(dem.gt(0)), vis_params, 'DEM') # Add a layer control panel to the map. my_map.add_child(folium.LayerControl()) # Display the map. display(my_map)
Diagrammvisualisierung
Einige Earth Engine-Funktionen erzeugen tabellarische Daten, die mit Datenvisualisierungspaketen wie matplotlib
dargestellt werden können. Im folgenden Beispiel werden tabellarische Daten aus Earth Engine als Streudiagramm dargestellt. Weitere Informationen finden Sie unter Diagramme in Colaboratory erstellen.
# Import libraries. import ee import matplotlib.pyplot as plt # Trigger the authentication flow. ee.Authenticate() # Initialize the Earth Engine module. ee.Initialize(project='my-project') # Fetch a Landsat TOA image. img = ee.Image('LANDSAT/LT05/C02/T1_TOA/LT05_034033_20000913') # Select Red and NIR bands, scale them, and sample 500 points. samp_fc = img.select(['B3','B4']).sample(scale=30, numPixels=500) # Arrange the sample as a list of lists. samp_dict = samp_fc.reduceColumns(ee.Reducer.toList().repeat(2), ['B3', 'B4']) samp_list = ee.List(samp_dict.get('list')) # Save server-side ee.List as a client-side Python list. samp_data = samp_list.getInfo() # Display a scatter plot of Red-NIR sample pairs using matplotlib. plt.scatter(samp_data[0], samp_data[1], alpha=0.2) plt.xlabel('Red', fontsize=12) plt.ylabel('NIR', fontsize=12) plt.show()