تتضمّن Earth Engine عدة طرق خاصة لتقدير النسيج المكاني. عندما
تكون الصورة ذات قيمة منفصلة (وليست قيمة عشرية)، يمكنك استخدام image.entropy()
لاحتساب
التشتت
في نطاق مجاور:
محرِّر الرموز البرمجية (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');
يُرجى العِلم أنّه يتم تصغير نطاق الأشعة تحت الحمراء القريبة إلى 8 بت قبل استدعاء entropy()
لأنّ عملية احتساب القصور تأخذ مدخلات ذات قيم منفصلة. تحدِّد العناصر غير الصفرية في
النواة الحيّز.
هناك طريقة أخرى لقياس النسيج وهي استخدام مصفوفة تكرار المستويات الرمادية (GLCM). باستخدام الصورة والنواة من المثال السابق، يمكنك احتساب التباين المستنِد إلى GLCM على النحو التالي:
محرِّر الرموز البرمجية (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()
العديد من مقاييس النسيج. للحصول على مرجع كامل
عن النتائج، يُرجى الاطّلاع على
Haralick et al.
(1973) و
Conners et al.
(1984).
يمكن احتساب مقاييس الارتباط المكاني المحلية، مثل معامل C لـ Geary
(Anselin 1995) في Earth Engine باستخدام
image.neighborhoodToBands()
. باستخدام الصورة من المثال السابق:
محرِّر الرموز البرمجية (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");
للحصول على مثال على استخدام الانحراف المعياري للمنطقة المجاورة لاحتساب نسيج الصورة، اطّلِع على صفحة "إحصاءات المناطق المجاورة للصور".