1 votos

Creación de buffers multianillo (donuts) en una feature collection GEE

Tengo una gran colección de características sobre la que estoy creando un búfer de varios anillos utilizando GEE. Mi problema es que el .difference sólo funciona en una característica y no en una colección de características. He intentado aplanar la colección de características, pero sigue sin funcionar. ¿Cómo puedo hacerlo?

Véase el siguiente fragmento de código

////A function to add buffer rings to the refugee sites, recommended buffer size 40-50km
var ROI_a=RefugSites.map(function(ft){return ft.buffer(10000)});
var ROI_b=RefugSites.map(function(ft){return ft.buffer(30000)}).flatten();
//trying to use the inner circle here to subtract it from the second buffer
var ROI_b=ROI_b.map(function (f){return f.difference(ROI_a)}); 

var ROI_c=RefugSites.map(function(ft){return ft.buffer(40000)});
//and to do the same thing here, for the third ring/donuts 
var ROI_c=ROI_c.map(function (f){return f.difference(ROI_b)});

3voto

hibbelig Puntos 176

Si se puede hacer en un Feature también puede hacerse en cada Feature dentro de un FeatureCollection utilizando el map función.

////A function to add buffer rings to the refugee sites, recommended buffer size 40-50km
var createDonut = function(feature, outer_size, inner_size) {
  var outer = feature.buffer(outer_size)
  var inner = feature.buffer(inner_size)
  return outer.difference(inner)
}

var inner_size = 10000
var outer_size = 30000

var ROI_c = RefugSites.map(function(ft){return createDonut(ft, outer_size, inner_size)});
Map.addLayer(ROI_c, {}, 'Donuts')

https://code.earthengine.google.com/e795c91e10e5a571a3357cea8f7f26b3

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X