نقشه برداری هزینه تجمعی

از image.cumulativeCost() برای محاسبه نقشه هزینه استفاده کنید که در آن هر پیکسل شامل هزینه کل مسیر کمترین هزینه به نزدیکترین مکان منبع است. این فرآیند در زمینه‌های مختلفی مانند تجزیه و تحلیل زیستگاه (Adriaensen et al. 2003) ، ترسیم حوضه (Melles et al. 2011) و تقسیم‌بندی تصویر (Falcao et al. 2004) مفید است. تابع هزینه تجمعی را در تصویری فراخوانی کنید که در آن هر پیکسل نشان دهنده هزینه هر متر برای عبور از آن است. مسیرها از طریق هر یک از هشت همسایه پیکسل محاسبه می شوند. ورودی های مورد نیاز عبارتند از یک تصویر source ، که در آن هر پیکسل غیر صفر نشان دهنده یک منبع بالقوه (یا شروع یک مسیر) و maxDistance (بر حسب متر) برای محاسبه مسیرها است. الگوریتم هزینه تجمعی همه مسیرها را کمتر از maxPixels = maxDistance / مقیاس در طول پیدا می‌کند، جایی که مقیاس وضوح پیکسل یا مقیاس تجزیه و تحلیل در Earth Engine است.

مثال زیر محاسبه مسیرهای کم هزینه را در یک تصویر پوشش زمین نشان می دهد:

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

// A rectangle representing Bangui, Central African Republic.
var geometry = ee.Geometry.Rectangle([18.5229, 4.3491, 18.5833, 4.4066]);

// Create a source image where the geometry is 1, everything else is 0.
var sources = ee.Image().toByte().paint(geometry, 1);

// Mask the sources image with itself.
sources = sources.selfMask();

// The cost data is generated from classes in ESA/GLOBCOVER.
var cover = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3').select(0);

// Classes 60, 80, 110, 140 have cost 1.
// Classes 40, 90, 120, 130, 170 have cost 2.
// Classes 50, 70, 150, 160 have cost 3.
var beforeRemap = [60, 80, 110, 140,
                   40, 90, 120, 130, 170,
                   50, 70, 150, 160];
var afterRemap = [1, 1, 1, 1,
                  2, 2, 2, 2, 2,
                  3, 3, 3, 3];
var cost = cover.remap(beforeRemap, afterRemap, 0);

// Compute the cumulative cost to traverse the land cover.
var cumulativeCost = cost.cumulativeCost({
  source: sources,
  maxDistance: 80 * 1000  // 80 kilometers
});

// Display the results
Map.setCenter(18.71, 4.2, 9);
Map.addLayer(cover, {}, 'Globcover');
Map.addLayer(cumulativeCost, {min: 0, max: 5e4}, 'accumulated cost');
Map.addLayer(geometry, {color: 'FF0000'}, 'source geometry');

نتیجه باید چیزی شبیه به شکل 1 باشد که در آن هر پیکسل خروجی هزینه انباشته شده را به نزدیکترین منبع نشان می دهد. توجه داشته باشید که ناپیوستگی‌ها می‌توانند در مکان‌هایی ظاهر شوند که طول مسیر کمترین هزینه به نزدیک‌ترین منبع از حداکثر پیکسل بیشتر باشد.

نقشه هزینه
شکل 1. هزینه تجمعی برای پیکسل های منبع، که در آن هزینه توسط دسته های پوشش زمین تعیین می شود. هزینه های کم سیاه هستند، هزینه های بالاتر سفید هستند.