Eine Bildersammlung ist eine Gruppe von Earth Engine-Bildern. Die Sammlung aller Landsat 8-Bilder ist beispielsweise ein ee.ImageCollection. Wie das SRTM-Bild, mit dem Sie gearbeitet haben, haben auch Bildersammlungen eine ID. Wie bei einzelnen Bildern können Sie die ID einer Bildersammlung ermitteln, indem Sie im Code-Editor den Earth Engine Data Catalog durchsuchen und die Detailseite des Datasets aufrufen. Suchen Sie beispielsweise nach „landsat 8 toa“ und klicken Sie auf das erste Ergebnis, das dem Dataset
USGS Landsat 8 Collection 1 Tier 1 TOA Reflectance entsprechen sollte.
Importieren Sie dieses Dataset entweder mit der Schaltfläche Import und benennen Sie es in l8 um oder kopieren Sie die ID in den Konstruktor der Bildersammlung:
Code-Editor (JavaScript)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');
Bildersammlungen filtern
Diese Sammlung enthält alle Landsat 8-Szenen, die weltweit aufgenommen wurden. Oft ist es nützlich, ein einzelnes Bild oder eine Teilmenge von Bildern zu extrahieren, um Algorithmen zu testen. Sie können die Sammlung nach Zeit oder Ort filtern. Wenn Sie die Sammlung beispielsweise nach Bildern filtern möchten, die einen bestimmten Ort abdecken, definieren Sie zuerst den gewünschten Bereich mit einem Punkt (oder einer Linie oder einem Polygon) mithilfe der Geometrie-Zeichentools. Schwenken Sie zu Ihrem gewünschten Bereich, bewegen Sie den Mauszeiger auf Geometry Imports (wenn Sie bereits eine oder mehrere Geometrien definiert haben) und klicken Sie auf +new layer (wenn Sie keine Importe haben, fahren Sie mit dem nächsten Schritt fort). Rufen Sie das Tool zum Zeichnen von Punkten (
) auf und setzen Sie einen Punkt in den gewünschten Bereich. Geben Sie dem Import den Namen point. Filtern Sie jetzt die Sammlung l8, um nur die Bilder zu erhalten, die den Punkt schneiden. Fügen Sie dann einen zweiten Filter hinzu, um die Sammlung auf die Bilder zu beschränken, die 2015 aufgenommen wurden:
Code-Editor (JavaScript)
var spatialFiltered = l8.filterBounds(point); print('spatialFiltered', spatialFiltered); var temporalFiltered = spatialFiltered.filterDate('2015-01-01', '2015-12-31'); print('temporalFiltered', temporalFiltered);
Hier sind filterBounds() und filterDate() Abkürzungsmethoden für die allgemeinere Methode filter() für Bildersammlungen, die ein ee.Filter() als Argument verwendet. Weitere Informationen zu diesen Methoden finden Sie im Code-Editor auf dem Tab Docs. Das Argument für filterBounds() ist der von Ihnen digitalisierte Punkt und die Argumente für filterDate() sind zwei Datumsangaben, die als Strings ausgedrückt werden.
Sie können die gefilterten Sammlungen print(). Sie können nicht mehr als 5.000 Elemente gleichzeitig drucken. Es ist also beispielsweise nicht möglich, die gesamte l8-Sammlung zu drucken. Nachdem Sie die Methode print() ausgeführt haben, können Sie die ausgegebenen Sammlungen in der Console prüfen. Wenn Sie ImageCollection mit dem Zippy () maximieren und dann die Liste der
features maximieren, wird eine Liste von Images angezeigt, die ebenfalls maximiert und geprüft werden können. Dies ist eine Möglichkeit, die ID eines einzelnen Bildes zu ermitteln. Eine andere, programmatischere Möglichkeit, einzelne Bilder für die Analyse zu erhalten, besteht darin, die Sammlung zu sortieren, um das neueste, älteste oder optimale Bild in Bezug auf ein Metadatenattribut zu erhalten. Wenn Sie sich beispielsweise die Bildobjekte in den gedruckten Bildsammlungen ansehen, ist Ihnen möglicherweise eine Metadaten-Property namens CLOUD_COVER aufgefallen. Mit diesem Attribut können Sie das Bild mit der geringsten Bewölkung im Jahr 2015 in Ihrem Interessenbereich abrufen:
Code-Editor (JavaScript)
// This will sort from least to most cloudy. var sorted = temporalFiltered.sort('CLOUD_COVER'); // Get the first (least cloudy) image. var scene = sorted.first();
Jetzt können Sie das Bild anzeigen lassen.
Exkurs: RGB-Bilder anzeigen
Wenn ein Bild mit mehreren Bändern einer Karte hinzugefügt wird, wählt Earth Engine die ersten drei Bänder des Bildes aus und zeigt sie standardmäßig als Rot, Grün und Blau an. Dabei werden sie entsprechend dem Datentyp gestreckt, wie zuvor beschrieben. In der Regel ist das nicht ausreichend. Wenn Sie beispielsweise das Landsat-Bild (scene im vorherigen Beispiel) der Karte hinzufügen, ist das Ergebnis nicht zufriedenstellend:
Code-Editor (JavaScript)
Map.centerObject(scene, 9); Map.addLayer(scene, {}, 'default RGB');
Beachten Sie, dass die Karte zuerst auf das Bild mit Zoomstufe 9 zentriert wird. Anschließend wird das Bild mit einem leeren Objekt ({}) für den Parameter visParams angezeigt. Weitere Informationen finden Sie in der Map.addLayer()-Dokumentation. Daher wird das Bild mit der Standardvisualisierung angezeigt: Die ersten drei Bänder werden jeweils R, G und B zugeordnet und auf [0, 1] gestreckt, da die Bänder den Datentyp float haben. Das bedeutet, dass das Küstenaerosolband („B1“) in Rot, das blaue Band („B2“) in Grün und das grüne Band („B3“) in Blau dargestellt wird. Wenn Sie das Bild als Echtfarben-Kompositbild rendern möchten, müssen Sie Earth Engine anweisen, die Landsat 8-Bänder „B4“, „B3“ und „B2“ für R, G und B zu verwenden. Geben Sie mit dem Attribut bands des Objekts visParams an, welche Bänder verwendet werden sollen. Weitere Informationen zu Landsat-Bändern finden Sie in dieser Referenz.
Außerdem müssen Sie min- und max-Werte angeben, die für die Darstellung der Reflexion von typischen Zielen auf der Erdoberfläche geeignet sind. Obwohl Listen verwendet werden können, um für jedes Band unterschiedliche Werte anzugeben, reicht es hier aus, 0.3 als max anzugeben und den Standardwert 0 für den Parameter min zu verwenden. Kombination der Visualisierungsparameter in einem Objekt und Anzeige:
Code-Editor (JavaScript)
var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3}; Map.addLayer(scene, visParams, 'true-color composite');
Das Ergebnis sollte in etwa wie in Abbildung 5 aussehen. Beachten Sie, dass in diesem Code das Objekt der Visualisierungsparameter einer Variablen für eine mögliche zukünftige Verwendung zugewiesen wird. Wie Sie bald feststellen werden, ist dieses Objekt nützlich, wenn Sie Bildersammlungen visualisieren.
Versuchen Sie, verschiedene Bänder zu visualisieren. Eine weitere beliebte Kombination ist „B5“, „B4“ und „B3“, die als Falschfarbenkomposit bezeichnet wird. Weitere interessante Falschfarbenkomposite werden hier beschrieben.
Da Earth Engine für Analysen im großen Maßstab entwickelt wurde, sind Sie nicht auf die Arbeit mit nur einer Szene beschränkt. Jetzt ist es an der Zeit, eine ganze Sammlung als RGB-Kompositbild anzuzeigen.
Bildersammlungen anzeigen
Das Hinzufügen einer Bildersammlung zu einer Karte ähnelt dem Hinzufügen eines Bildes zu einer Karte. Beispiel: Mit Bildern aus dem Jahr 2016 in der Sammlung l8 und dem zuvor definierten Objekt visParams:
Code-Editor (JavaScript)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); var landsat2016 = l8.filterDate('2016-01-01', '2016-12-31'); Map.addLayer(landsat2016, visParams, 'l8 collection');
Sie können jetzt herauszoomen und ein kontinuierliches Mosaik sehen, in dem Landsat-Bilder erfasst werden (d.h. über Land). Wenn Sie den Tab Inspector verwenden und auf das Bild klicken, wird im Abschnitt Pixels eine Liste mit Pixelwerten (oder ein Diagramm) und im Abschnitt Objects des Inspectors eine Liste mit Bildobjekten angezeigt.
Wenn Sie weit genug herausgezoomt haben, sind Ihnen wahrscheinlich einige Wolken im Mosaik aufgefallen. Wenn Sie der Karte ein ImageCollection hinzufügen, wird es als Composite mit den neuesten Werten angezeigt. Das bedeutet, dass nur die neuesten Pixel angezeigt werden (wie beim Aufrufen von mosaic() für die Sammlung). Daher kann es zu Unstetigkeiten zwischen Pfaden kommen, die zu unterschiedlichen Zeiten erfasst wurden. Deshalb sind viele Bereiche auch bewölkt. Auf der nächsten Seite erfahren Sie, wie Sie die Zusammensetzung der Bilder ändern, um die störenden Wolken zu entfernen.