Die Earth Engine ist ein leistungsstarkes Analysetool. Möglicherweise müssen Sie die Ergebnisse Ihrer Analyse jedoch exportieren, um Diagramme, Bilder, Karten usw. in Berichte oder Publikationen einzubetten. In diesem Abschnitt erfahren Sie, wie Sie Diagramme und Bilder erstellen, die exportiert und in anderer Software angezeigt werden können. Im vorherigen Abschnitt haben Sie Code wie den folgenden verwendet, um jedem Bild in einer Sammlung ein NDVI-Band hinzuzufügen. Die Variable l8 verweist dabei auf die Landsat 8 TOA-Reflektanzsammlung:
Code-Editor (JavaScript)
// Import the Landsat 8 TOA image collection. var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); // Map a function over the Landsat 8 TOA collection to add an NDVI band. var withNDVI = l8.map(function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); return image.addBands(ndvi); });
Eintritt in die Charts
Angenommen, Sie möchten ein Diagramm des NDVI im Zeitverlauf an einem bestimmten Ort erstellen. Um ein solches Diagramm zu erstellen, müssen Sie zuerst einen Ort von Interesse auswählen. Erstellen Sie einen Punkt, indem Sie das Punktzeichen-Tool (
) auswählen und eine einzelne Punktgeometrie in Ihrem Interessenbereich erstellen. Wenn Sie bereits Importe haben, bewegen Sie den Mauszeiger auf Geometrieimporte und klicken Sie zuerst auf + Neue Ebene.
Suchen Sie den Punkt in einem Gebiet mit Landwirtschaft, Laubwald, einjährigem Grasland oder einer anderen Bodenbedeckung mit einem jährlichen Zyklus. Geben Sie dem Import den Namen roi. Informationen zum programmatischen Erstellen von Geometrien finden Sie auf dieser Seite.
Verwenden Sie jetzt den Punkt roi, um ein Diagramm des NDVI im Zeitverlauf im Pixel unter diesem Punkt zu erstellen. Diagramme werden in Earth Engine mit dem Paket ui.Chart erstellt. (Weitere Informationen zum Erstellen von Diagrammen in Earth Engine)
Wenn Sie ein Diagramm im Zeitverlauf erstellen möchten, können Sie die Methode ui.Chart.image.series() verwenden:
Code-Editor (JavaScript)
// Create a chart. var chart = ui.Chart.image.series({ imageCollection: withNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'NDVI over time'}); // Display the chart in the console. print(chart);
Für die Geometrie roi haben wir einen Punkt in einem landwirtschaftlichen Gebiet ausgewählt. Das Ergebnis ist ein Diagramm, das in etwa wie Abbildung 10 aussieht. Die Parameter für den Diagrammkonstruktor umfassen einen Reducer und eine Skala wie reduceRegion(). Da der Punkt, den wir als Region angeben, nur ein Pixel schneiden kann, reicht es aus, den Reducer „first“ zu verwenden. Wenn Sie eine größere Region haben, sollten Sie einen „mean“- oder anderen Reducer verwenden, der angibt, wie Pixel aggregiert werden sollen. Beachten Sie auch, dass Sie ein Diagramm nur drucken müssen, um es zu visualisieren.
Exkurs: Einfache Wolkenmaskierung für Landsat
Ihnen ist vielleicht aufgefallen, dass die Zeitreihe der NDVI-Werte am Punkt etwas verrauscht aussieht. Das liegt wahrscheinlich an Wolken. Um diesen Effekt zu verringern, enthält die Earth Engine einen Algorithmus zur Wolkenmaskierung für Landsat-Sensoren mit einem thermischen Band: ee.Algorithms.Landsat.simpleCloudScore(). Sie verwendet ein Landsat-TOA-Reflexionsbild als Eingabe und fügt ein Band mit dem Namen cloud hinzu. Dieses Band ist ein Index für die Bewölkung im Pixel von 0 bis 100, wobei 0 für die geringste und 100 für die höchste Bewölkung steht. Wenn Sie die Funktion ändern, die Sie der Sammlung zugeordnet haben, können Sie einen beliebigen Schwellenwert (20) für den Wolkenindex verwenden, um das Diagramm etwas übersichtlicher zu gestalten:
Code-Editor (JavaScript)
var cloudlessNDVI = l8.map(function(image) { // Get a cloud score in [0, 100]. var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud'); // Create a mask of cloudy pixels from an arbitrary threshold. var mask = cloud.lte(20); // Compute NDVI. var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); // Return the masked image with an NDVI band. return image.addBands(ndvi).updateMask(mask); }); print(ui.Chart.image.series({ imageCollection: cloudlessNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'Cloud-masked NDVI over time'}));
Das Ergebnis mit Wolkenmaske ist in Abbildung 11 dargestellt. Die Zeitreihe sieht etwas glatter aus, kann aber immer noch Pixel enthalten, die von Wolken betroffen sind. Passen Sie den Schwellenwert für den Cloud-Index an und beobachten Sie die Zeitreihe im Diagramm, um zu sehen, wie sich dieser Schwellenwert auf Ihre Ergebnisse auswirken kann.
Images exportieren
Sie haben gesehen, wie Sie ein Diagramm mit von Earth Engine berechneten Daten exportieren können. Aber wie sieht es mit einem ganzen Bild aus? Angenommen, Sie haben ein Composite mit den grünsten Pixeln erstellt, wie im vorherigen Abschnitt beschrieben:
Code-Editor (JavaScript)
var greenest = cloudlessNDVI.qualityMosaic('NDVI');
Der einzige Unterschied zu dem, was Sie zuvor getan haben, besteht darin, dass wir jetzt die Sammlung mit Wolkenmaske verwenden. Sie können eine Teilmenge (definiert durch eine Region) davon mit dem Paket Export exportieren. (Weitere Informationen zum Exportieren von Raster- und Vektordaten aus Earth Engine) Wenn Sie beispielsweise ein Bild exportieren möchten, das sich leicht in andere Dokumente einbetten lässt, erstellen Sie ein Visualisierungsbild, wie Sie es bereits getan haben, und exportieren Sie es in Ihren Google Drive-Ordner:
Code-Editor (JavaScript)
// Create a 3-band, 8-bit, color-IR composite to export. var visualization = greenest.visualize({ bands: ['B5', 'B4', 'B3'], max: 0.4 }); // Create a task that you can launch from the Tasks tab. Export.image.toDrive({ image: visualization, description: 'Greenest_pixel_composite', scale: 30 });
Wenn Sie diesen Code ausführen, wird auf dem Tab Aufgaben eine neue Aufgabe erstellt. Klicken Sie auf dem Tab Aufgaben auf den Button AUSFÜHREN, um das Dialogfeld für die Exportkonfiguration zu öffnen. Nachdem Sie die Aufgabe konfiguriert haben, klicken Sie im Dialogfeld auf Ausführen, um den Export zu starten. Aber bevor du das tust, sei gewarnt:
Sie sollten beim Exportieren ohne das Argument region vorsichtig sein, da Sie, wenn Sie einen relativ kleinen Wert für scale festlegen und die Karte auf einen großen Bereich herausgezoomt ist, ein potenziell sehr großes Bild in Ihren Drive-Ordner exportieren. Weitere Informationen und eine Liste möglicher Konfigurationsparameter finden Sie in der Export.image.toDrive()-Dokumentation auf dem Tab Dokumente.
Damit ist diese Einführung in die Earth Engine API abgeschlossen. Sie haben jetzt einen Großteil der gängigsten Earth Engine-Funktionen kennengelernt und sollten in der Lage sein, komplexere Analysen durchzuführen. Lies die Dokumentation und suche im Forum nach Antworten auf andere Fragen. Viel Spaß beim Programmieren!