Accediendo al catálogo de imágenes de satélite
Hoja de ruta
Leccion: 60 min
Prácticas: 60 minPreguntas
¿Cómo puedo acceder a un catálogo de imágenes satelitales a escala regional?
¿Cómo realizar mosaicos?
¿Cómo se usa la información vectorial?
¿Cómo exportar imágenes?
Objetivos
Acceder a imágenes filtradas
Realizar una manipulación básica de las imágenes, mosaicos y gráficos
Aplicar funciones existentes o creadas por el usuario a image collections
Exportar imágenes para su posterior uso
Descripción general: Catálogo de imágenes satelitales a escala regional
La mayoría de los productos satelitales se dividen en bloques para su distribución. Los datos globales de Landsat se dividen en escenas de ~180 km2, con identificadores únicos de path/row. Wulder et al. (2016) sugieren que cada escena es fotografiada cada 16 días por Landsat 8 y cada 16 días por Landsat 7 (aproximadamente 45 veces al año). Los bordes de cada trayectoria se superponen, proporcionando una mayor frecuencia temporal en estas áreas. Sin embargo, los cielos nublados durante el paso de los satélites y otras anomalías de adquisición hacen que ciertas escenas o píxeles sean inutilizables.
USGS Landsat archive holdings as of January 1, 2015 (Wulder et al. (2016)).
Forest loss in Sumatra’s Riau province, Indonesia, 2000-2012. Credit: Hansen, Potapov, Moore, Hancher et al., 2013
–>
Para la mayoría de las aplicaciones a escala regional, se tendrá que combinar múltiples imágenes de satélite para cubrir completamente su extensión espacial y completar los datos faltantes causados por las nubes, etc. Google Earth Engine (GEE) es particularmente adecuado para estas tareas.
Ejericio: Flujo básico de trabajo GEE
Aquí, aprovecharemos GEE para crear un composite que represente el pico de la temporada de crecimiento de cultivos para una cuenca de interés.
Image Collections
Una pila o serie temporal de imágenes se llaman Image Collections
. Cada fuente de datos disponible en GEE tiene su propia Image Collection y su propio ID (por ejemplo, el Landsat 5 SR collection, o el producto CHIRPS Daily: Climate Hazards Group InfraRed Precipitation with Station Data (version 2.0 final). También se puede crear Image Collection a partir de imágenes individuales o fusionar colecciones existentes. Puede encontrar más información sobre las Image Collection here in the GEE Developer’s Guide.
Para generar imágenes que cubran grandes áreas espaciales y para llenar los vacíos de una imágen debido a las nubes, etc., podemos cargar una ImageCollection
completa, pero filtrar la colección para devolver sólo los períodos de tiempo o las ubicaciones espaciales que sean de interés. Hay filtros de acceso directo para los que se utilizan comúnmente (imageCollection.filterDate(), imageCollection.filterBounds()…), pero pueden utilizarse la mayoría de los filtros de la sección ee.Filter()
de la pestaña Docs. Más información sobre filters on the Developer’s Guide.
Cargar archivos vectoriales
Trabajaremos en la creación de un composite para una cuenca del Perú. La forma más fácil de filtrar una ubicación irregular sin tener que identificar las rutas y filas de los mosaicos de la imagen satelital es usar un polígono vectorial.
Hay tres maneras de obtener datos de vectores en GEE:
- Cargar un shapefile directamente a su carpeta personal Asset en el panel superior izquierdo. Puedes crear subcarpetas y establecer permisos para compartir según sea necesario. Utilizamos un archivo vectorial Asset en el modulo Accediendo al catálogo de imágenes de satélite.
- Utilizar un conjunto de datos de vectores existente en GEE. Navegue por el catálogo de datos vectoriales aquí.
- Dibuje manualmente puntos, líneas y polígonos usando las herramientas de geometría del Code Editor. Haremos esto en el Modulo de Clasificación Supervisada de Imágenes de Satélite.
Aquí, usaremos un activo vectorial existente, el archivo de cuencas del Perú que ha sido cargado por el instructor como un Asset aquí.
Para cargar un archivo vectorial de sus Assets en su espacio de trabajo, necesitamos usar el “filepath” y lanzarlo a un tipo de datos ee.FeatureCollection
. Lee más aquí: “Managing Assets” in the Developer’s Guide.
La herramienta Inspector
La herramienta “Inspector” permite consultar las capas del mapa en un punto. Lo usaremos para ayudarnos a seleccionar una cuenca específica. Para usar la herramienta “Inspector”, haga clic en la pestaña “Inspector” en el panel superior derecho para activarla. Luego haga clic en cualquier lugar dentro del Visor de Mapas. Se mostrarán las coordenadas de su clic, junto con el valor de las capas del mapa en ese punto.
Podemos usar esto para encontrar el atributo “name” de nuestra cuenca de interés (¡elige la que quieras!).
Una vez que hayas determinado la propiedad “name” de tu cuenca, usa la función featureCollection.filterMetadata() para extraer esta cuenca de la base de datos completa.
Cuenca de interés: Mantaro
Filtrar una Image Collection
Aquí, estamos seleccionando todas las imágenes en el Landsat 8 Surface Reflectance collection adquirido sobre nuestra cuenca de interés.
Consejo: Los ID de las Image collection se encuentran en la barra de herramientas de “Search” en la parte superior del editor de códigos o a través de la búsqueda en el data archive.
Imprimir nuestra colección filtrada en la consola nos dice cuántas imágenes hay en nuestro filtro (148) así como los nombres de las bandas y las propiedades de las imágenes de nuestra colección:
Aplicar funciones
Como puedes ver al navegar por la pestaña Docs
en el panel superior izquierdo del Code Editor, hay funciones GEE específicas para los tipos de datos Image
y ImageCollection
. Hay muchas, incluyendo operadores matemáticos y booleanos, convoluciones y estadísticas focales, y transformaciones espectrales y análisis de textura espacial. Navegue por la lista, o lea sobre las operaciones generales disponibles en el GEE Developer’s Guide “Image Overview”” section.
A menudo, queremos usar una función sobre cada imagen de una Image Collection. Para ello, necesitamos esencialmente “hacer un bucle” a través de cada imagen de la colección de imágenes. En GEE, los “bucles” se realizan con la función .map().
Evitar los bucles reales a toda costa. Usar un bucle for lleva la operación al navegador (mala práctica). Usando imageCollection.map() envía la operación a los servidores de Google para las ejecuciones distribuidas (buena práctica). Los bucles implementados de forma típica para la sentencia for, llevan la operación al navegador, y no funcionan bien, si es que funciona.
Se puede encontrar más información sobre la aplicación de funciones a las Image collection here in the Developer’s Guide.
El concepto .map() se aplica también a las featureCollections
- para aplicar una función a cada característica de una colección, aplicamos esa función a través de la featureCollection con la featureCollection.map(). Ver “Mapping over a Feature Collection” en la Guía del Desarrollador.
Enmascarar nubes
Aquí, haremos uso de la banda pixel_qa
que se proporciona con los productos SR para enmascarar los píxeles con nubes, sombras de nubes y nieve. Enmascararemos los píxeles de la imagen basándonos en el valor de pixel_qa.
Definimos explícitamente una nueva función llamada “maskClouds” y la aplicamos a cada imagen de la imageCollection utilizando imageCollection.map()
. Las funciones necesitan explícitamente return la salida final.
Calcular el índice NDVI como una nueva banda
Del mismo modo, si queremos calcular el NDVI en cada imagen y añadirlo como una nueva banda, tenemos que crear una función y mapearla sobre la colección. Aquí, usamos la función normalizedDifference()
. Mathematical Operations page in the GEE Developer’s Guide proporciona más información sobre cálculos raster simples y complejos.
Crear un Composite “Greenest Pixel”
Ahora necesitamos reunir la Image Collection para crear una imagen continua a través de la cuenca. Hay varias opciones de mosaico/composición disponibles, desde simples composiciones de valor máximo (imageCollection.max()
) y mosaicos sencillos con la imagen más reciente (imageCollection.mosaic()
). Compositing and Mosaicking page on the Developer’s Guide proporciona más ejemplos.
Aquí, usaremos la función imageCollection.qualityMosaic()
. Al priorizar la imagen a utilizar en base a una banda específica, este método asegura que los valores de todas las bandas se tomen de la misma imagen. A cada píxel se le asignan los valores de la imagen con el valor más alto de la banda deseada.
Usaremos esto para hacer un “greenest pixel composite” para nuestra cuenca basado en la banda del NDVI que acabamos de calcular. La imagen compuesta final retendrá todas las bandas en la entrada (a menos que especifiquemos lo contrario). Cada píxel en la imagen compuesta podría potencialmente provenir de imágenes adquiridas en fechas diferentes, pero todas las bandas dentro de cada píxel son de la misma imagen. En general, esto proporciona la mejor instantánea disponible del paisaje en el pico de la temporada de crecimiento, independientemente del momento fenológico dentro del año.
El máximo anual de NDVI a través de esta cuenca hidrográfica destaca las zonas altoandinas con presencia de suelo desnudo y en las cercanías la selva, los más verdes :
También podemos usar esta imagen compuesta para visualizar una composición de color verdadero usando las bandas RGB:
Visualizar los resultados en un gráfico
Para ilustrar brevemente la capacidad de GEE de generar gráficos, cargamos el producto de datos MODIS NDVI para trazar la serie temporal anual de NDVI medio de nuestra cuenca. La generación de gráficos también está cubierto en el módulo 04 Reductores espaciales y temporales.
Tenga en cuenta que puede exportar los datos subyacentes del gráfico mediante el icono de la flecha que aparece…
Exportar los resultados como una Table
La manera más eficiente de obtener datos de GEE es en una tabla. Esta forma tiene el beneficio de estar codificada y por lo tanto ser totalmente reproducible. Exportar tablas también requiere mucha menos potencia de cálculo que exportar una imagen completa. Cuando realices un análisis, piensa bien en cómo puedes dejar el raster en la nube y extraer los datos que necesitas como una matriz.
Para ejecutar las tareas de exportar, debes ir a la pestaña ‘Tasks’ en el panel superior derecho y presionar ‘Run’.
Exportar Images
Los usuarios pueden exportar los resultados de sus manipulaciones de imágenes a su carpeta de activos de GEE para su uso posterior dentro de la plataforma o a sus cuentas personales de Google Drive o de Google Cloud Storage. Aquí, exportaremos una imagen de una sola banda de NDVI máximo anual para nuestra cuenca. Se proporcionaran ejemplos para exportar a Google Drive. Se puede encontrar más información sobre exportar here in the Developers Guide.
En la API de JavaScript, lo que se quiera exportar se envía a la pestaña ‘Tasks’ en el panel superior derecho. Para evitar que los usuarios inunden el sistema inadvertidamente con tareas gratuitas y accidentales, es necesario ejecutar explícitamente la tarea individualmente desde la pestaña ‘Task’. Puede cambiar los nombres de los archivos y otros parámetros aquí, si es necesario, o codificarlos en su script.
Al exportar a Google Drive, GEE encontrará la carpeta con el nombre especificado y no necesita la ruta de archivo completa. Si esta carpeta aún no existe, la creará en tu unidad.
Se puede acceder a una versión estática del script aquí: https://code.earthengine.google.com/8418ba2b48095a765720d79982bcfab7
Puntos Clave
Se puede acceder a las imágenes de satélite a escala regional cargando la image collection completa y haciendo filtros basados en criterios tales como el periodo de tiempo y la ubicación del área de estudio
Las imágenes pueden ser manipuladas a través del álgebra de mapas y se puede calcular y agregar nuevas bandas usando funciones sobre la image collections
Una imágen composite puede ser generada muy rápidamente
Las imágenes y las tablas pueden ser exportadas para su uso posterior con GEE o otras herramientas como QGIS