1 votos

¿Crear una lista vacía y añadir elementos a esta lista recién creada en el editor de código de Earth Engine?

He intentado algo así:

var empty_list = ee.List([])

Sin embargo, al añadir elementos a esta lista, devuelve una lista vacía a pesar de todo.

Aquí hay un fragmento de código. Observe que "col_list" es una variable que representa una colección de imágenes.

var list = ee.List([]);

for(var i = 0; i < 5; i++){

  var img = ee.Image(col_list.get(i));

  var dictionary = ee.Dictionary({
    coords: img.geometry().getInfo()["coordinates"],
    landsat_id: img.get('LANDSAT_ID'),
    satellite: img.get('SATELLITE'),
    sensing_time: img.get('SENSING_TIME'),
    system_index: img.get('system:index')
  });

  var feature = ee.Feature(null, dictionary);
  var list = list.add(feature);
}

Esto definitivamente se ve mal, pero no estoy seguro de cómo hacerlo.

2voto

hibbelig Puntos 176

Aunque la respuesta de Nishanta es correcta si piensas en JavaScript, me gustaría mostrarte cómo hacerlo en el Camino del motor de tierra que creo que es mejor para esto.

var list = col_list.iterate(function(img, first){
  // cast variables
  img = ee.Image(img)
  first = ee.List(first)
  // same as before but without `getInfo`
  var dictionary = ee.Dictionary({
    coords: img.geometry().coordinates(),
    landsat_id: img.get('LANDSAT_ID'),
    satellite: img.get('SATELLITE'),
    sensing_time: img.get('SENSING_TIME'),
    system_index: img.get('system:index')
  });

  var feature = ee.Feature(null, dictionary);
  return first.add(feature)
}, ee.List([]))

// cast the result to ee.List
list = ee.List(list)

print(list)

1voto

viyyer Puntos 278

El problema es que estás redefiniendo la lista de variables dentro de tu bucle para que el alcance de esa variable se extienda sólo dentro del bucle y el lista la variable fuera del bucle nunca se actualiza. Debería arreglarse eliminando el "var" delante de lista DENTRO del bucle. (línea 12 en el código de abajo)

var list = ee.List([]);
for(var i = 0; i < 5; i++){
  var img = ee.Image(col_list.get(i));
  var dictionary = ee.Dictionary({
    coords: img.geometry().getInfo()["coordinates"],
    landsat_id: img.get('LANDSAT_ID'),
    satellite: img.get('SATELLITE'),
    sensing_time: img.get('SENSING_TIME'),
    system_index: img.get('system:index')
  });
  var feature = ee.Feature(null, dictionary);
  list = list.add(feature);
}

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