Anstatt eine Region anzugeben, in der eine Reduzierung durchgeführt werden soll, können Sie auch einen Umkreis angeben, in dem ein Reducer angewendet werden soll. Mit image.reduceNeighborhood()
können Sie die Bildumgebung verkleinern. In diesem Fall erfolgt die Reduktion in einem gleitenden Fenster über dem Eingabebild. Größe und Form des Fensters werden durch ein ee.Kernel
angegeben. Die Ausgabe von reduceNeighborhood()
ist ein anderes Bild. Jeder Pixelwert entspricht der Ausgabe der Reduzierung in einem Umkreis um dieses Pixel im Eingabebild. Abbildung 1 veranschaulicht diese Art der Reduzierung.

reduceNeighborhood()
, bei der der Reducer in einem Kernel angewendet wird.Sie können beispielsweise Bilder des National Agriculture Imagery Program (NAIP) verwenden, um die Landschaftsunterschiede zu quantifizieren, die durch die Abholzung in den kalifornischen Redwood-Wäldern entstanden sind.
Verwenden Sie insbesondere die Standardabweichung (SD) in einer Nachbarschaft, um den Unterschied in der Textur zwischen dem gerodeten Gebiet (SW des Bildes in Abbildung 2) und dem geschützten Gebiet (NO des Bildes in Abbildung 2) darzustellen. Wenn Sie beispielsweise die Textur eines NAIP-Bilds mit dem normierten differenzierten Vegetationsindex (NDVI) erhalten möchten, berechnen Sie mit reduceNeighborhood()
die Standardabweichung in einem durch einen Kernel definierten Umkreis:
Code-Editor (JavaScript)
// Define a region in the redwood forest. var redwoods = ee.Geometry.Rectangle(-124.0665, 41.0739, -123.934, 41.2029); // Load input NAIP imagery and build a mosaic. var naipCollection = ee.ImageCollection('USDA/NAIP/DOQQ') .filterBounds(redwoods) .filterDate('2012-01-01', '2012-12-31'); var naip = naipCollection.mosaic(); // Compute NDVI from the NAIP imagery. var naipNDVI = naip.normalizedDifference(['N', 'R']); // Compute standard deviation (SD) as texture of the NDVI. var texture = naipNDVI.reduceNeighborhood({ reducer: ee.Reducer.stdDev(), kernel: ee.Kernel.circle(7), }); // Display the results. Map.centerObject(redwoods, 12); Map.addLayer(naip, {}, 'NAIP input imagery'); Map.addLayer(naipNDVI, {min: -1, max: 1, palette: ['FF0000', '00FF00']}, 'NDVI'); Map.addLayer(texture, {min: 0, max: 0.3}, 'SD of NDVI');
import ee import geemap.core as geemap
Colab (Python)
# Define a region in the redwood forest. redwoods = ee.Geometry.Rectangle(-124.0665, 41.0739, -123.934, 41.2029) # Load input NAIP imagery and build a mosaic. naip_collection = ( ee.ImageCollection('USDA/NAIP/DOQQ') .filterBounds(redwoods) .filterDate('2012-01-01', '2012-12-31') ) naip = naip_collection.mosaic() # Compute NDVI from the NAIP imagery. naip_ndvi = naip.normalizedDifference(['N', 'R']) # Compute standard deviation (SD) as texture of the NDVI. texture = naip_ndvi.reduceNeighborhood( reducer=ee.Reducer.stdDev(), kernel=ee.Kernel.circle(7) ) # Display the results. m = geemap.Map() m.center_object(redwoods, 12) m.add_layer(naip, {}, 'NAIP input imagery') m.add_layer( naip_ndvi, {'min': -1, 'max': 1, 'palette': ['FF0000', '00FF00']}, 'NDVI' ) m.add_layer(texture, {'min': 0, 'max': 0.3}, 'SD of NDVI') m
Alle Pixel mit einem nicht nullwertigen Kernelwert werden in die Berechnung einbezogen. Die Kernelgewichte werden standardmäßig verwendet. Sie können dieses Verhalten jedoch mit dem Argument inputWeight
ändern. In Abbildung 2 werden das Eingabebild und die reduceNeighborhood()
-Ausgabe verglichen.


reduceNeighborhood()
-Ausgabe mit einem Standardabweichungsminderer.