آمار محله های تصویر

به جای تعیین منطقه ای که در آن کاهش انجام شود، می توان محله ای را نیز تعیین کرد که در آن یک کاهش دهنده اعمال شود. برای کاهش همسایگی های تصویر، از image.reduceNeighborhood() استفاده کنید. در این حالت، کاهش در یک پنجره کشویی روی تصویر ورودی، با اندازه و شکل پنجره مشخص شده توسط ee.Kernel رخ خواهد داد. خروجی reduceNeighborhood() یک تصویر دیگر خواهد بود، با هر مقدار پیکسل نشان دهنده خروجی کاهش در همسایگی اطراف آن پیکسل در تصویر ورودی است. شکل 1 این نوع کاهش را نشان می دهد.

نمودار کاهش همسایگی
شکل 1. تصویر reduceNeighborhood() ، که در آن کاهنده در یک هسته اعمال می شود.

برای مثال، استفاده از تصاویر برنامه ملی تصویربرداری کشاورزی (NAIP) را برای تعیین کمیت تفاوت‌های چشم‌انداز ناشی از قطع درختان جنگل‌های قرمز کالیفرنیا در نظر بگیرید. به طور خاص، از انحراف استاندارد (SD) در یک همسایگی برای نشان دادن تفاوت بافت بین ناحیه ثبت شده (جنوبی غربی تصویر در شکل 2) و ناحیه محافظت شده (NE تصویر در شکل 2) استفاده کنید. به عنوان مثال، برای به دست آوردن بافت یک تصویر شاخص گیاهی تفاوت عادی شده NAIP (NDVI)، از reduceNeighborhood() برای محاسبه SD در محله ای که توسط یک هسته تعریف شده است استفاده کنید:

ویرایشگر کد (جاوا اسکریپت)

// 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');

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 تغییر دهید. تصویر ورودی و خروجی reduceNeighborhood() در شکل 2 مقایسه شده اند.

کاهش ورودی همسایگی
شکل 2 الف. تصاویر NAIP از سواحل کالیفرنیای شمالی.
کاهش خروجی همسایگی
شکل 2b. خروجی reduceNeighborhood() با استفاده از کاهنده انحراف استاندارد.