Resim mahallelerinin istatistikleri

Azaltma işleminin uygulanacağı bir bölge belirtmek yerine, azaltıcının uygulanacağı bir mahalle de belirtebilirsiniz. Resim mahallelerini azaltmak için image.reduceNeighborhood() simgesini kullanın. Bu durumda, azaltma işlemi, giriş resminin üzerinde kaydırılabilir bir pencerede gerçekleşir. Pencere boyutu ve şekli bir ee.Kernel ile belirtilir. reduceNeighborhood() işlevinin çıkışı, her piksel değerinin giriş görüntüsünde ilgili piksel çevresindeki azaltma işleminin çıkışını temsil ettiği başka bir görüntü olacaktır. Şekil 1'de bu tür bir azaltma gösterilmektedir.

reduceNeighborhood şeması
Şekil 1. Azaltıcı bir çekirdeğe uygulandığı reduceNeighborhood()'ü gösteren resim.

Örneğin, Kaliforniya sekoya ormanlarında yapılan ağaç kesiminden kaynaklanan peyzaj farklılıklarını ölçmek için Ulusal Tarım Görüntüleri Programı (NAIP) görüntülerini kullanabilirsiniz. Özellikle, günlük kaydı yapılan alan (Şekil 2'de resmin güneybatısı) ile korunan alan (Şekil 2'de resmin kuzeydoğusu) arasındaki doku farkını temsil etmek için bir mahalledeki standart sapmayı (SD) kullanın. Örneğin, NAIP Normalleştirilmiş Fark Bitki Örtüsü İndeksi (NDVI) resminin dokusunu almak için bir çekirdek tarafından tanımlanan bir mahallede SD'yi hesaplamak üzere reduceNeighborhood()'ü kullanın:

Kod Düzenleyici (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');

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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

Çekirdek değeri sıfır olmayan tüm pikseller hesaplamaya dahil edilir. Çekirdek ağırlıkları varsayılan olarak kullanılır ancak bu davranışı inputWeight bağımsız değişkeniyle değiştirebilirsiniz. Giriş resmi ve reduceNeighborhood() çıkışı Şekil 2'de karşılaştırılmıştır.

reduceNeighborhood girişi
Şekil 2a. Kuzey Kaliforniya kıyılarının NAIP görüntüleri.
reduceNeighborhood çıkışı
Şekil 2b. reduceNeighborhood() standart sapma azaltıcı kullanarak çıkış elde edin.