Diagramme und Bilder exportieren

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 angesehen werden können. Im vorherigen Abschnitt haben Sie Code wie den folgenden verwendet, um jeder Abbildung in einer Sammlung ein NDVI-Band hinzuzufügen. Die Variable l8 verweist dabei auf die Landsat 8-Sammlung mit TOA-Reflektanz:

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 interessanten Ort auswählen. Erstellen Sie einen Punkt, indem Sie das Punktzeichenwerkzeug () auswählen und eine einzelne Punktgeometrie in Ihrem Interessengebiet erstellen. Wenn Sie bereits Importe haben, bewegen Sie den Mauszeiger zuerst auf Geometrieimporte und klicken Sie auf + Neue Ebene. Suchen Sie den Punkt in einem Gebiet mit Landwirtschaft, Laubwald, einjährigen Grasland oder einer anderen Landbedeckung mit einem jährlichen Zyklus. Geben Sie dem Import den Namen roi. Informationen zum programmatischen Erstellen von Geometrien finden Sie auf dieser Seite.

Jetzt verwenden wir den Punkt roi, um ein Diagramm des NDVI im Zeitverlauf für das Pixel unter diesem Punkt zu erstellen. Diagramme in Earth Engine werden mit dem ui.Chart-Paket erstellt. Weitere Informationen zum Erstellen von Diagrammen in Earth Engine Wenn Sie ein Zeitachsendiagramm 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 roi-Geometrie 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 enthalten einen Reducer und eine Skalierung wie reduceRegion(). Da sich der Punkt, den wir als Region angeben, nur mit einem Pixel überschneiden kann, reicht es aus, den Reducer „first“ zu verwenden. Wenn Sie eine größere Region haben, sollten Sie einen „mean“- oder einen anderen Reducer verwenden, der angibt, wie Pixel aggregiert werden sollen. Wenn Sie ein Diagramm visualisieren möchten, müssen Sie es nur ausdrucken.

Tutorial_api_10_ndvi_chart.png
Abbildung 10. Diagramm des Landsat-NDVI im Zeitablauf an einem Punkt.

Exkurs: Einfache Cloud-Maskierung für Landsat

Vielleicht ist Ihnen aufgefallen, dass die Zeitreihe der NDVI-Werte an diesem Punkt etwas unruhig aussieht. Das liegt wahrscheinlich an Wolken. Um diesen Effekt zu mildern, enthält Earth Engine einen Cloud-Masking-Algorithmus für Landsat-Sensoren mit einem thermischen Band: ee.Algorithms.Landsat.simpleCloudScore(). Es wird ein Landsat-TOA-Reflexionsbild als Eingabe verwendet und ein Band mit dem Namen cloud hinzugefügt. Dieses Band ist ein Index für die Bewölkung im Pixel von 0 bis 100, von am wenigsten bis am stärksten bewölkt. Wenn Sie die Funktion ändern, die Sie der Sammlung zugeordnet haben, können Sie einen beliebigen Schwellenwert (20) für den Cloud-Index verwenden, um das Diagramm etwas zu bereinigen:

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 wolkenmaskierte Ergebnis ist in Abbildung 11 dargestellt. Die Zeitreihe sieht etwas glatter aus, kann aber immer noch von Wolken betroffene Pixel enthalten. 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.

Tutorial_api_11_cloudless_chart.png
Abbildung 11. Diagramm des cloud-maskierten NDVI im Zeitverlauf an einem Punkt.

Bilder exportieren

Sie haben bereits gesehen, wie Sie ein Diagramm mit von Earth Engine berechneten Daten exportieren können. Wie sieht es aber 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 Ihrem vorherigen Code besteht darin, dass wir jetzt die cloudmaskierte Sammlung verwenden. Mit dem Export-Paket können Sie einen Teil davon (definiert durch eine Region) exportieren. Weitere Informationen zum Exportieren von Raster- und Vektordaten aus Earth Engine Wenn Sie beispielsweise ein Bild exportieren möchten, das sich problemlos in andere Dokumente einbetten lässt, erstellen Sie ein Visualisierungsbild wie zuvor 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 die Schaltfläche AUSFÜHREN, um das Dialogfeld für die Exportkonfiguration zu öffnen. Wenn Sie die Aufgabe konfiguriert haben, klicken Sie im Dialogfeld auf die Schaltfläche Ausführen, um den Export zu starten. Bevor Sie das tun, sollten Sie Folgendes beachten:

Wenn Sie ohne das Argument region exportieren, sollten Sie vorsichtig sein, da Sie bei einem relativ kleinen Wert für scale und einer Karte, die auf einen großen Bereich gezoomt ist, ein potenziell sehr großes Bild in Ihren Drive-Ordner exportieren. Weitere Informationen und eine Liste der möglichen Konfigurationsparameter finden Sie in der Export.image.toDrive()-Dokumentation auf dem Tab Dokumentation.

Das war die Einführung in die Earth Engine API. Sie haben nun einen Großteil der gängigsten Earth Engine-Funktionen kennengelernt und sollten in der Lage sein, mit komplexeren Analysen fortzufahren. Lesen Sie die Dokumentation und suchen Sie im Forum nach Antworten auf andere Fragen. Viel Spaß beim Programmieren!