Anziché specificare una regione su cui eseguire una riduzione, è anche possibile
specificare un quartiere in cui applicare un riduttore. Per ridurre i quartieri di immagini, utilizza
image.reduceNeighborhood()
. In questo caso, la riduzione avviene in una finestra scorrevole sull'immagine di input, con le dimensioni e la forma della finestra specificate da un ee.Kernel
. L'output di reduceNeighborhood()
sarà
un'altra immagine, con ogni valore del pixel che rappresenta l'output della riduzione in un
insieme di pixel attorno a quel pixel nell'immagine di input. La Figura 1 illustra questo tipo di
riduzione.

reduceNeighborhood()
, dove il riduttore viene applicato in un kernel.Ad esempio, valuta la possibilità di utilizzare le immagini del National Agriculture Imagery Program (NAIP) per quantificare le differenze del paesaggio derivanti dall'abbattimento nelle foreste di sequoie della California.
Nello specifico, utilizza la deviazione standard (DS) in un quartiere per rappresentare la differenza
nella trama tra l'area registrata (a sud-ovest dell'immagine nella Figura 2) e l'area protetta
(a nord-est dell'immagine nella Figura 2). Ad esempio, per ottenere la texture di un'immagine NDVI (Normalized Difference Vegetation Index) NAIP, utilizza reduceNeighborhood()
per calcolare la deviazione standard in un'area definita da un kernel:
Editor di codice (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
Nel calcolo viene incluso qualsiasi pixel con un valore del kernel diverso da zero. I coefficienti
del kernel vengono utilizzati per impostazione predefinita, anche se puoi modificare questo comportamento con l'argomento
inputWeight
. L'immagine di input e l'output reduceNeighborhood()
sono confrontati nella Figura 2.


reduceNeighborhood()
utilizzando un riduttore della deviazione standard.