Doku

Earth Engine, mekansal dokuyu tahmin etmek için çeşitli özel yöntemlere sahiptir. Görüntü ayrık değerliyse (kayan nokta değilse) bir bölgedeki entropiyi hesaplamak için image.entropy() kullanabilirsiniz:

Kod Düzenleyici (JavaScript)

// Load a high-resolution NAIP image.
var image = ee.Image('USDA/NAIP/DOQQ/m_3712213_sw_10_1_20140613');

// Zoom to San Francisco, display.
Map.setCenter(-122.466123, 37.769833, 17);
Map.addLayer(image, {max: 255}, 'image');

// Get the NIR band.
var nir = image.select('N');

// Define a neighborhood with a kernel.
var square = ee.Kernel.square({radius: 4});

// Compute entropy and display.
var entropy = nir.entropy(square);
Map.addLayer(entropy,
             {min: 1, max: 5, palette: ['0000CC', 'CC0000']},
             'entropy');

Entropi hesaplaması ayrık değerli girişler aldığından NIR bandının, entropy() çağrılmadan önce 8 bit olarak ölçeklendirildiğini unutmayın. Çekirdekteki sıfır olmayan öğeler, komşuyu belirtir.

Dokuyu ölçmenin bir başka yolu da gri tonlu birliktelik matrisi (GLCM) kullanmaktır. Önceki örnekteki görüntüyü ve çekirdeği kullanarak GLCM tabanlı kontrastı aşağıdaki gibi hesaplayın:

Kod Düzenleyici (JavaScript)

// Compute the gray-level co-occurrence matrix (GLCM), get contrast.
var glcm = nir.glcmTexture({size: 4});
var contrast = glcm.select('N_contrast');
Map.addLayer(contrast,
             {min: 0, max: 1500, palette: ['0000CC', 'CC0000']},
             'contrast');

image.glcm(), birçok doku ölçümü sağlar. Çıkışlar hakkında tam referans için Haralick ve diğerleri (1973) ve Conners ve diğerleri (1984) makalelerine bakın.

Geary'nin C gibi yerel mekansal ilişki ölçümleri (Anselin 1995), image.neighborhoodToBands() kullanılarak Earth Engine'da hesaplanabilir. Önceki örnekteki resmi kullanarak:

Kod Düzenleyici (JavaScript)

// Create a list of weights for a 9x9 kernel.
var row = [1, 1, 1, 1, 1, 1, 1, 1, 1];
// The center of the kernel is zero.
var centerRow = [1, 1, 1, 1, 0, 1, 1, 1, 1];
// Assemble a list of lists: the 9x9 kernel weights as a 2-D matrix.
var rows = [row, row, row, row, centerRow, row, row, row, row];
// Create the kernel from the weights.
// Non-zero weights represent the spatial neighborhood.
var kernel = ee.Kernel.fixed(9, 9, rows, -4, -4, false);

// Convert the neighborhood into multiple bands.
var neighs = nir.neighborhoodToBands(kernel);

// Compute local Geary's C, a measure of spatial association.
var gearys = nir.subtract(neighs).pow(2).reduce(ee.Reducer.sum())
             .divide(Math.pow(9, 2));
Map.addLayer(gearys,
             {min: 20, max: 2500, palette: ['0000CC', 'CC0000']},
             "Geary's C");

Resim dokusunu hesaplamak için mahalle standart sapmasını kullanma örneği için Resim Mahallelerinin İstatistikleri sayfasına bakın.