3 votos

¿Cómo puedo exportar un conjunto de imágenes desde el motor de Google Earth?

Estoy tratando de exportar imágenes de un grupo de puntos de latitud y longitud, pero sigo recibiendo errores. Por ejemplo, estoy tratando de exportar una imagen de este único punto en esta mesa de fusión pero esto es lo que sucede:

  • Aparecen 3 instancias de la imagen que quiero exportar en las Tareas.
  • El primero da error "Referencias de variables desconocidas: [_MAPPING_VAR_0_0]".
  • El segundo y el tercero dan error "Failed to decode JSON. Error: El campo 'value' del objeto '{"type": "ArgumentRef", "value":null}' falta o es nulo. Objeto: {"type": "ArgumentRef", "value":null}."

Abajo está mi código.

// Import points from fusion table into feature collection
var fc = ee.FeatureCollection('ft:1i3_jdpBy0lorCbZ7eNVnsGL3NaZWyDGRVCUrmKGl');
print(fc);

var pairImage = function(feature) {
  var point = ee.Geometry.Point([feature.get('lat'), feature.get('lon')]);

  // USGS Landsat 8 TOA Reflectance (Orthorectified) Set
  var l8 = ee.ImageCollection('LANDSAT/LC8_L1T_TOA');

  // Only get images that intersect lat/lon point
  var spatialFiltered = l8.filterBounds(point);

  // Only get images for year of 2016
  var temporalFiltered = spatialFiltered.filterDate('2016-01-01', '2016-12-31');

  // This will sort from least to most cloudy.
  var sorted = temporalFiltered.sort('CLOUD_COVER');

  // Get the first (least cloudy) image.
  var scene = ee.Image(sorted.first()).select(['B4', 'B3', 'B2']);

  var visualization = scene.visualize({
    bands: ['B4', 'B3', 'B2'],
    max: 0.3
  });
  return visualization;
}

// Get all images of points
var images = fc.map(pairImage);

var saveImages = function(image) {
  Export.image.toDrive({
    image: image,
    description: 'true-color-composite',
    scale: 13
  });
  return null;
}

// Export the images
images.map(saveImages);

0 votos

Creo que la única forma de exportar un archivo de Google Earth es utilizando un archivo KML

10voto

hibbelig Puntos 176

Bien, la documentación ( https://developers.google.com/earth-engine/client_server#client-and-server-functions ) dice que Export es una función del lado del cliente, y map() se ejecuta en el lado del servidor, y creo que ese es el problema. Aunque en la misma documentación encontrarás que los bucles for del lado del cliente no son recomendables, en este caso que quieres pasar por encima de una función del lado del cliente, yo la usaría, como:

// Import points from fusion table into feature collection
var fc = ee.FeatureCollection('ft:1i3_jdpBy0lorCbZ7eNVnsGL3NaZWyDGRVCUrmKGl');
print(fc);

var pairImage = function(feature) {
  var point = ee.Geometry.Point([feature.get('lat'), 
                                 feature.get('lon')]);

  // USGS Landsat 8 TOA Reflectance (Orthorectified) Set
  var l8 = ee.ImageCollection('LANDSAT/LC8_L1T_TOA');

  // Only get images that intersect lat/lon point
  var spatialFiltered = l8.filterBounds(point);

  // Only get images for year of 2016
  var temporalFiltered = spatialFiltered.filterDate('2016-01-01', '2016-12-31');

  // This will sort from least to most cloudy.
  var sorted = temporalFiltered.sort('CLOUD_COVER');

  // Get the first (least cloudy) image.
  var scene = ee.Image(sorted.first()).select(['B4', 'B3', 'B2']);

  var visualization = scene.visualize({
    bands: ['B4', 'B3', 'B2'],
    max: 0.3
  });
  return visualization;
}

// Get all images of points
var images = fc.map(pairImage);

// list of images (client side)
var imgs = images.getInfo()["features"]

// loop on client side
for (var i = 0; i<imgs.length;i++) {
  var im = ee.Image(imgs[i]["id"]);
  Map.addLayer(im)
  Export.image.toDrive({
    image: im,
    description: 'true-color-composite',
    scale: 30
  });
}

Si tienes formas, podrías hacer la tabla de fusión con ellas, pero supongo que tienes una lista de lugares con valores de latitud y longitud.

0 votos

¿Cómo fue @FLOWMEEN?

0 votos

Lo siento, no llegué a esto pero lo marcaré.

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