Use image.cumulativeCost()
para calcular um mapa de custo em que cada pixel
contém o custo total do caminho de menor custo até o local de origem mais próximo. Esse processo é útil em vários contextos, como análise de habitat (Adriaensen et al., 2003), delimitação de bacias hidrográficas (Melles et al., 2011) e segmentação de imagens (Falcao et al., 2004). Chame a função de custo cumulativo em uma imagem em que cada pixel
representa o custo por metro para percorrê-la. Os caminhos são calculados por qualquer um dos oito vizinhos de um pixel. As entradas obrigatórias incluem uma imagem source
, em que cada pixel diferente de zero representa uma possível origem (ou início de um caminho) e um maxDistance
(em metros) para calcular caminhos. O algoritmo encontra o custo cumulativo de todos os caminhos com menos de maxPixels = maxDistance
/escala em comprimento, em que escala é a resolução em pixels ou a escala de análise no Earth Engine.
O exemplo a seguir demonstra como calcular caminhos de menor custo em uma imagem de cobertura de terra:
Editor de código (JavaScript)
// 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');
O resultado será semelhante à Figura 1, em que cada pixel de saída representa o custo acumulado da fonte mais próxima. As descontinuidades podem aparecer em lugares em que o caminho de menor custo para a origem mais próxima excede maxPixels em comprimento.
