Die Datenebene „Water Occurrence Change Intensity“ (Intensität der Veränderung des Wasservorkommens) bietet ein Maß dafür, wie sich das Oberflächenwasser zwischen zwei Epochen verändert hat: 1984–1999 und 2000–2015. Die Ebene berechnet den Durchschnitt der Änderung über homologe Monatspaare aus den beiden Epochen. Weitere Informationen zu dieser Ebene finden Sie im Data Users Guide (v2) .
In diesem Abschnitt der Anleitung wird Folgendes beschrieben:
- eine Kartenebene mit benutzerdefinierten Stilen hinzufügen, um die Intensität der Veränderung des Wasservorkommens zu visualisieren, und
- die Änderungsintensität in einem bestimmten Interessenbereich mithilfe eines Histogramms zusammenfassen.
Visualisierung
Ähnlich wie bei der Ebene für das Wasservorkommen fügen wir der Karte zuerst eine einfache Visualisierung der Intensität der Änderung des Vorkommens hinzu und verbessern sie dann. Die Intensität der Änderung des Vorkommens wird auf zwei Arten angegeben, sowohl als absolute als auch als normalisierte Werte. In dieser Anleitung verwenden wir die absoluten Werte. Wählen Sie zuerst die Ebene für die Intensität der absoluten Änderung des Vorkommens aus dem GSW-Bild aus:
Code-Editor (JavaScript)
var change = gsw.select("change_abs");
Fügen Sie im Abschnitt „Constants“ des Codes eine Anweisung hinzu, mit der eine neue Variable erstellt wird, die den Stil der Ebene definiert. In dieser Darstellung werden Bereiche, in denen das Vorkommen von Oberflächenwasser abgenommen/zugenommen hat, in Rot/Grün angezeigt. Gebiete, in denen das Vorkommen von Oberflächenwasser relativ unverändert ist, werden in Schwarz dargestellt.
Code-Editor (JavaScript)
var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] };
Fügen Sie am Ende des Codeabschnitts „Kartenebenen“ eine Anweisung hinzu, mit der der Karte eine neue Ebene hinzugefügt wird.
Code-Editor (JavaScript)
Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
Änderungen in einem Bereich von Interesse zusammenfassen
In diesem Abschnitt fassen wir das Ausmaß der Veränderung in einem bestimmten Bereich von Interesse zusammen. Klicken Sie auf das Polygon-Zeichentool, eines der Geometrie-Tools, um einen gewünschten Bereich anzugeben. Dadurch wird eine neue Ebene für Geometrieimporte erstellt, die standardmäßig den Namen „geometry“ hat. Wenn Sie den Namen ändern möchten, klicken Sie auf das Zahnradsymbol rechts neben dem Ebenennamen. (Möglicherweise müssen Sie den Mauszeiger auf den Ebenennamen setzen, damit es angezeigt wird.)
Ändern Sie den Namen der Ebene in roi (für „Region of Interest“ oder ROI). Anschließend können wir auf eine Reihe von Punkten auf der Karte klicken, um ein Polygon für den gewünschten Bereich zu definieren.
Nachdem der Bereich von Interesse definiert und in einer Variablen gespeichert wurde, können wir damit ein Histogramm der Änderungsintensität für den Bereich von Interesse berechnen. Fügen Sie dem Abschnitt „Berechnungen“ des Skripts den folgenden Code hinzu.
Code-Editor (JavaScript)
// Calculate a change intensity for the region of interest. var histogram = change.reduceRegion({ reducer: ee.Reducer.histogram(), geometry: roi, scale: 30, bestEffort: true, }); print(histogram);
Mit der ersten Anweisung wird ein Histogramm der Intensitätswerte für die Änderung des Vorkommens innerhalb des ROI berechnet, wobei die Stichprobenentnahme im Maßstab von 30 m erfolgt. Der zweite gibt das resultierende Objekt auf dem Tab „Console“ des Code-Editors aus. Sie können den Objektbaum maximieren, um die Werte der Histogramm-Buckets aufzurufen. Die numerischen Daten sind vorhanden, aber es gibt bessere Möglichkeiten, die Ergebnisse zu visualisieren.
Um das zu verbessern, können wir stattdessen ein Histogramm generieren. Ersetzen Sie die Anweisung, die das Histogrammobjekt definiert, durch die folgenden Anweisungen:
Code-Editor (JavaScript)
// Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' });
Mit diesen Anweisungen wird ein Histogramm-Diagrammobjekt erstellt, das den Histogramm-Objektbaum auf dem Tab „Console“ durch ein Diagramm ersetzt. Die Diagrammmethode enthält mehrere Argumente, darunter scale, das den räumlichen Maßstab in Metern definiert, in dem die Region von Interesse abgetastet wird, und minBucketWidth, mit dem die Breite der Histogramm-Buckets gesteuert wird.
Sie können die Diagrammwerte interaktiv erkunden, indem Sie den Mauszeiger auf die Histogrammbalken bewegen.
Final Script
Das gesamte Script für diesen Abschnitt ist unten aufgeführt. Das Script enthält Anweisungen zum Definieren einer Polygon-Geometrie (roi), die mit der Geometrie vergleichbar ist, die Sie mit den Geometrie-Tools des Code-Editors erstellt haben.
Code-Editor (JavaScript)
////////////////////////////////////////////////////////////// // Asset List ////////////////////////////////////////////////////////////// var gsw = ee.Image('JRC/GSW1_0/GlobalSurfaceWater'); var occurrence = gsw.select('occurrence'); var change = gsw.select("change_abs"); var roi = /* color: 0B4A8B */ee.Geometry.Polygon( [[[-74.17213, -8.65569], [-74.17419, -8.39222], [-74.38362, -8.36980], [-74.43031, -8.61293]]]); ////////////////////////////////////////////////////////////// // Constants ////////////////////////////////////////////////////////////// var VIS_OCCURRENCE = { min:0, max:100, palette: ['red', 'blue'] }; var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] }; var VIS_WATER_MASK = { palette: ['white', 'black'] }; ////////////////////////////////////////////////////////////// // Calculations ////////////////////////////////////////////////////////////// // Create a water mask layer, and set the image mask so that non-water areas are transparent. var water_mask = occurrence.gt(90).mask(1); // Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' }); print(histogram); ////////////////////////////////////////////////////////////// // Initialize Map Location ////////////////////////////////////////////////////////////// // Uncomment one of the following statements to center the map on // a particular location. // Map.setCenter(-90.162, 29.8597, 10); // New Orleans, USA // Map.setCenter(-114.9774, 31.9254, 10); // Mouth of the Colorado River, Mexico // Map.setCenter(-111.1871, 37.0963, 11); // Lake Powell, USA // Map.setCenter(149.412, -35.0789, 11); // Lake George, Australia // Map.setCenter(105.26, 11.2134, 9); // Mekong River Basin, SouthEast Asia // Map.setCenter(90.6743, 22.7382, 10); // Meghna River, Bangladesh // Map.setCenter(81.2714, 16.5079, 11); // Godavari River Basin Irrigation Project, India // Map.setCenter(14.7035, 52.0985, 12); // River Oder, Germany & Poland // Map.setCenter(-59.1696, -33.8111, 9); // Buenos Aires, Argentina\ Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru ////////////////////////////////////////////////////////////// // Map Layers ////////////////////////////////////////////////////////////// Map.addLayer({ eeObject: water_mask, visParams: VIS_WATER_MASK, name: '90% occurrence water mask', shown: false }); Map.addLayer({ eeObject: occurrence.updateMask(occurrence.divide(100)), name: "Water Occurrence (1984-2015)", visParams: VIS_OCCURRENCE, shown: false }); Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
Im nächsten Abschnitt erfahren Sie mehr darüber, wie sich die Wasservorkommen im Laufe der Zeit verändert haben. Dazu arbeiten Sie mit der Ebene transition der Wasserklasse.