במקום לציין אזור שבו מבצעים הפחתה, אפשר גם לציין שכונה שבה מחילים הפחתה. כדי לצמצם את שכונות התמונות, משתמשים ב-image.reduceNeighborhood()
. במקרה כזה, ההקטנה תתבצע בחלון הזזה מעל לתמונה הקלט, כאשר גודל החלון והצורה שלו יצוינו על ידי ee.Kernel
. הפלט של reduceNeighborhood()
יהיה תמונה אחרת, שבה כל ערך פיקסל מייצג את הפלט של הפחתת הרעש בסביבה של הפיקסל הזה בתמונה הקלט. איור 1 ממחיש את סוג ההפחתה הזה.

reduceNeighborhood()
, שבו המצמצם מיושם בליבה.לדוגמה, אפשר להשתמש בתמונות של National Agriculture Imagery Program (NAIP) כדי למדוד את ההבדלים בנוף שנובעים מהכריתה של יערות הסקויה בקליפורניה.
באופן ספציפי, משתמשים בסטיית התקן (SD) בשכונה כדי לייצג את ההבדל במרקם בין האזור הרשום ביומן (בדרום-מערב התמונה באיור 2) לבין האזור המוגן (במזרח-צפון התמונה באיור 2). לדוגמה, כדי לקבל את המרקם של תמונה של אינדקס הפרש מנורמל של צמחייה (NDVI) ב-NAIP, משתמשים ב-reduceNeighborhood()
כדי לחשב את SD בסביבה שמוגדרת על ידי ליבה:
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
כל פיקסל עם ערך ליבה שאינו אפס נכלל בחישוב. כברירת מחדל, המערכת משתמשת במשקלים של הליבה, אבל אפשר לשנות את ההתנהגות הזו באמצעות הארגומנט inputWeight
. באיור 2 מוצגת השוואה בין תמונה הקלט לבין הפלט של reduceNeighborhood()
.


reduceNeighborhood()
באמצעות פונקציית הפחתת סטיית תקן רגילה.