تعيين التكلفة التراكمية

استخدِم image.cumulativeCost() لاحتساب خريطة التكلفة التي يحتوي فيها كل بكسل على التكلفة الإجمالية لمسار التكلفة الأقل إلى أقرب موقع مصدر. تكون هذه العملية مفيدة في مجموعة متنوعة من السياقات، مثل تحليل الموائل (Adriaensen et al. 2003) وتحديد حدود مستجمعات المياه (Melles et al. 2011) وتقسيم الصور (Falcao et al. 2004). استدعاء دالة التكلفة التراكمية على صورة يمثّل فيها كل بكسل التكلفة لكل متر للتنقّل فيها. يتم احتساب المسارات من خلال أيّ من العناصر الثمانية المجاورة للبكسل. تشمل المدخلات المطلوبة صورة source، حيث يمثّل كل بكسل غير صفري مصدرًا محتملاً (أو بداية مسار)، وmaxDistance (بالمتر) لاحتساب المسارات. تبحث الخوارزمية عن التكلفة التراكمية لجميع المسارات التي يقل طولها عن maxPixels = maxDistance/scale، حيث يكون scale هو دقة البكسل أو مقياس التحليل في 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، حيث يمثّل كل بكسل في الإخراج التكلفة المتراكمة إلى أقرب مصدر. يُرجى العِلم أنّه يمكن أن تظهر الانقطاعات في الأماكن التي يتجاوز فيها طول مسار التكلفة الأقل إلى أقرب مصدر maxPixels.

costMap
الشكل 1. التكلفة التراكمية لوحدات البكسل المصدر، حيث يتم تحديد التكلفة من خلال فئات تغطية الأرض. تكون التكاليف المنخفضة باللون الأسود، والتكاليف المرتفعة باللون الأبيض.