Comportamiento de getThumbURL
En Google Earth Engine, estoy intentando descargar algunas imágenes de visualización utilizando el método image.getThumbURL. La imagen se ve bien Map.addLayer, pero cuando la paso, getThumbURLsolo obtengo una imagen en blanco. Aquí un ejemplo de este comportamiento:
var point = ee.Geometry.Point([11.300422012780208, 44.50570009326473])
var pngArea =
ee.Geometry.Polygon(
[[[10.966712295983333, 44.65340259358304],
[10.966712295983333, 44.24754759759594],
[11.738501846764583, 44.24754759759594],
[11.738501846764583, 44.65340259358304]]], null, false)
var s2coll = ee.ImageCollection("COPERNICUS/S2")
s2coll = s2coll.filterBounds(point)
.filterDate('2018-07-15', '2018-07-30')
print(s2coll)
var img = s2coll.mosaic()
print(img)
var visualization = {
min: 0.0,
max: 2000,
bands: ['B4', 'B3', 'B2'],
}
var outImg = img.visualize(visualization)
Map.addLayer(outImg)
print(outImg.getThumbURL({region: pngArea, format: 'png'}))
https://code.earthengine.google.com/89afe6e672f63d2245ef438288f78f55
¿Qué estoy haciendo mal?
Respuestas
No especificó una escala y proporcionó una región cuyo sistema de coordenadas está en grados. Así, obtuviste una imagen muy pequeña (2 × 1 píxeles).
Si especifica una escala, obtendrá una imagen:
print(outImg.getThumbURL({region: pngArea, scale: 200, format: 'png'}));
También puede especificar dimensiones explícitas, pero eso puede generar una imagen distorsionada si las dimensiones no coinciden con la relación de aspecto de la región:
print(outImg.getThumbURL({
region: pngArea,
dimensions: '150x150',
format: 'png',
}))
Otra opción que puede interesarle es crsutilizar la proyección de la imagen (o cualquier proyección) en lugar de la proyección de la región:
print(outImg.getThumbURL({
region: pngArea,
crs: s2coll.first().select('B4').projection(),
scale: 200,
format: 'png',
}))
Esta versión no tiene un borde derecho inclinado porque el rectángulo de la imagen exportada usa el mismo sistema de coordenadas que (al menos una de) las imágenes originales.
Por lo general, también es una buena idea usar una proyección destinada al mapeo (ya sea la proyección de la imagen u otra), en lugar de los grados de longitud y latitud que está usando para su región (que es lo que Earth Engine tomó por defecto en ausencia de un mejor idea), que tendrá píxeles distorsionados a medida que se acerque a los polos. Tenga en cuenta que esta imagen está más cerca de la relación de aspecto de su rectángulo original en el mapa, mientras que la primera que solo especifica la escala se estira más de lo que debería ser.