Visualiza imágenes y bandas de imágenes

Ahora que ya puedes comenzar a escribir código JavaScript de Earth Engine, copia el siguiente código en el Editor de código:

Editor de código (JavaScript)

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

Haz clic en el botón Ejecutar en la parte superior del editor de código y observa que aparece una imagen muy gris en el mapa. No te preocupes, pronto se verá mejor. Si no conoces la sintaxis de alguna parte de este ejemplo, asegúrate de revisar el instructivo de JavaScript para Earth Engine.

Image Constructor

Lo primero nuevo en este ejemplo es el constructor de imágenes ee.Image(). El argumento proporcionado al constructor es el ID de cadena de una imagen en el catálogo de datos de Earth Engine. (Consulta la pestaña Docs, a la izquierda del editor de código, para ver una lista completa de los argumentos posibles para el constructor de imágenes. La pestaña Docs representa la información más actualizada sobre lo que puede hacer Earth Engine.

Para descubrir un ID de imagen, busca en el catálogo de datos de Earth Engine con la herramienta de búsqueda en la parte superior del Editor de código. Por ejemplo, escribe "elevación" en el campo de búsqueda y observa que se muestra una lista de rásteres. Haz clic en la entrada "SRTM Digital Elevation Data Version 4" para ver más información sobre ese conjunto de datos. En el lado derecho de la descripción del conjunto de datos, se encuentra el campo ID de imagen. Observa que el ID de la imagen en el ejemplo se copia del ID de la imagen que se muestra en la descripción del conjunto de datos.

Una alternativa para copiar y pegar IDs de imágenes es usar el botón Importar en la descripción del conjunto de datos o el vínculo importar en el lado derecho de los resultados de la búsqueda. Si haces clic en el vínculo o el botón de importación, se creará automáticamente una variable en una sección especial, llamada "Imports", en la parte superior de tu secuencia de comandos. Para cambiar el nombre de la variable, haz clic en su nombre en la sección de importaciones.

Cómo configurar el mapa

La segunda parte nueva de este ejemplo es la llamada a Map.setCenter(). Este método del objeto Map, que representa la pantalla del mapa en el Editor de código, centra el mapa en la longitud y la latitud determinadas (en grados decimales) y en el nivel de zoom, en el que 1 es el nivel más alejado para que el mapa muestre toda la superficie de la Tierra. Los números más grandes acercan la imagen desde allí. Descubre todos los métodos del objeto Map. Para ello, consulta la sección Map en la pestaña Docs ubicada en el lado izquierdo del editor de código.

Cómo agregar una capa al mapa

La última línea del ejemplo dice: Usa el método addLayer() del objeto Map para agregar una imagen a la pantalla del mapa en el editor de código.

¡Felicitaciones! Creaste tu primer código de Earth Engine. En la siguiente sección, aprenderás a mejorar un poco esa imagen.

Digresión: Imágenes en Earth Engine

Las imágenes en Earth Engine (consulta esta página para obtener más detalles) se componen de una o más bandas. Cada banda de una imagen tiene su propio nombre, valores de píxeles, resolución de píxeles y proyección. Como descubrirás pronto, la imagen SRTM tiene una banda: "elevation".

Cuando agregas una imagen a un mapa con Map.addLayer(), Earth Engine necesita determinar cómo asignar los valores de las bandas de la imagen a los colores en la pantalla. Si se agrega una imagen de una sola banda a un mapa, de forma predeterminada, Earth Engine muestra la banda en escala de grises, en la que el valor mínimo se asigna al negro y el valor máximo se asigna al blanco. Si no especificas cuáles deben ser los valores mínimo y máximo, Earth Engine usará los valores predeterminados. Por ejemplo, la imagen que acabas de agregar al mapa se muestra como una imagen en escala de grises que se extiende a todo el rango de los datos o como un número entero de 16 bits con signo [-32768, 32767]. (Las bandas float se extienden a [0, 1] y las bandas byte se extienden a [0, 255] de forma predeterminada).

Puedes descubrir el tipo de datos de la imagen imprimiéndola y, luego, inspeccionando el objeto de imagen en la pestaña Console. Por ejemplo, pega lo siguiente después del código anterior:

Editor de código (JavaScript)

print('SRTM image', image);

Cuando hagas clic en Ejecutar, observa que aparece un objeto en la consola. Para investigar las propiedades del objeto, expándelo haciendo clic en el ícono de acordeón () que se encuentra a la izquierda del objeto o la propiedad. Expande el objeto de imagen, la propiedad "bandas", la banda "elevación" en el índice "0" y la propiedad "data_type" de la banda "elevación" para descubrir que es un tipo de datos signed int16.

Cómo personalizar la visualización de capas

Para cambiar la forma en que se estiran los datos, puedes proporcionar otro parámetro a la llamada de Map.addLayer(). Específicamente, el segundo parámetro, visParams, te permite especificar los valores mínimos y máximos que se mostrarán. Para descubrir qué valores usar, activa la pestaña Inspector y haz clic en el mapa para tener una idea del rango de valores de píxeles. Como alternativa, usa el Administrador de capas para extender los datos de forma interactiva y, luego, observa los valores mínimos y máximos correspondientes a las extensiones de percentiles o desviación estándar. Supongamos que, a través de esa experimentación, determinas que los datos se deben expandir a [0, 3000]. Para mostrar la imagen con este rango, usa el siguiente código:

Editor de código (JavaScript)

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

Ten en cuenta que el parámetro visParams es un objeto con propiedades que especifican el min y el max. (Obtén más información sobre los objetos de JavaScript en el instructivo de JavaScript o en esta referencia externa). Ten en cuenta que el tercer parámetro de Map.addLayer() es el nombre de la capa que se muestra en el Administrador de capas. El resultado debería ser similar a la figura 1. Coloca el cursor del mouse sobre el cuadro Capas a la derecha para ver el efecto de cambiar el nombre de esa capa.

Tutorial_api_01_elevation.png
Figura 1: Imagen de elevación en escala de grises, extendida a [0, 3000].

Para mostrar una sola banda con una paleta de colores, agrega una propiedad palette al objeto visParams:

Editor de código (JavaScript)

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

El resultado debería ser similar al de la figura 2.

Tutorial_api_02_palette.png
Figura 2. Imagen de elevación como una rampa de color de azul a rojo, extendida a [0, 3000].

Digresión: Paletas

Las paletas te permiten establecer el esquema de colores para las imágenes de una sola banda. Una paleta es una lista de cadenas de color separadas por comas que se interpolan linealmente entre los valores máximos y mínimos de los parámetros de visualización (o los valores predeterminados según el tipo de banda, como se describió anteriormente). Por ejemplo, los píxeles menores o iguales al valor mínimo se mostrarán con el primer color de la lista, y los píxeles mayores o iguales al valor máximo se mostrarán con el último color de la lista. Los colores intermedios se extienden linealmente a valores de píxeles intermedios.

Los colores se definen con el esquema de valores de color CSS estándar de la Web (consulta esta referencia externa para obtener más información). Los colores se pueden especificar por nombre o como cadenas hexadecimales que indican la combinación de rojo, verde y azul. El valor más bajo en cualquiera de las tres posiciones es 00 (que representa el número decimal 0), mientras que el más alto es FF (que representa el número decimal 255). La cadena "000000" representa el color negro, "FFFFFF" es blanco, "FF0000" es rojo, "00FF00" es verde y "0000FF" es azul. Consulta la sección Paletas de colores para obtener más detalles. Se pueden realizar otros ajustes con los descriptores de capas con estilo, como se describe en esta sección.

Más adelante en este instructivo, aprenderás a mostrar imágenes multibanda. Pero primero, visita la página siguiente para obtener información sobre cómo realizar cálculos con imágenes.