Saltar al contenido

¿Cuáles son los valores mínimo y máximo de Map.addLayer en Google Earth Engine?

Ya no necesitas investigar más por todo internet porque llegaste al espacio exacto, contamos con la solución que quieres y sin complicaciones.

Solución:

Vamos a empezar desde el principio.

Cómo funciona la teledetección por satélite

Los satélites realizan sensores que puede medir resplandor a diferentes longitudes de onda (depende del sensor)

resplandor

Por ejemplo,

Landsat 8 lleva una carga útil de dos sensores: el Operational Land Imager (OLI), construido por Ball Aerospace & Technologies Corporation; y el sensor infrarrojo térmico (TIRS), construido por el Centro de vuelo espacial Goddard de la NASA (GSFC) (https://landsat.usgs.gov/landsat-8-l8-data-users-handbook-section-2)

El sensor OLI mide la radiación en 9 longitudes de onda diferentes y TIRS en 2 longitudes de onda diferentes:

Landsat 8 bandas

La primera medición del sensor (datos sin procesar) se toma en números digitales y se convierte en resplandor según los factores de cambio de escala proporcionados en el archivo de metadatos.

Dependiendo del sensor, el resultado tipo de datos puede diferir. Los datos sin procesar de Landsat 1 a 7 son datos de 8 bits (cada banda), por lo que los valores pueden ir de 0 a 255 (256 opciones). Landsat 8 raw es un dato de 16 bits, por lo que los valores pueden ir de 0 a 65535 (opciones de 65536).

Si miras la descripción de LANDSAT/LC08/C01/T1 (sin formato) en Google Earth Engine, verá

Los valores DN de Tier 1 de Landsat 8 Collection 1, que representan la radiancia en el sensor calibrada y escalada. (https://developers.google.com/earth-engine/datasets/catalog/LANDSAT_LC08_C01_T1)

Y puedes comprobar el tipos de datos en el editor de código:

var c = Map.getCenter()
var L5RAW = ee.ImageCollection('LANDSAT/LT05/C01/T1').filterBounds(c)
var L8RAW = ee.ImageCollection('LANDSAT/LC08/C01/T1').filterBounds(c)
print('Landsat 5 RAW', L5RAW.first().getInfo()['bands'])
print('Landsat 8 RAW', L8RAW.first().getInfo()['bands'])

Correcciones radiométricas

La energía que registran los sensores a bordo de aeronaves o satélites puede diferir de la energía real emitida o reflejada desde una superficie en el suelo. Esto se debe al azimut y la elevación del sol y a las condiciones atmosféricas que pueden influir en la energía observada. Por lo tanto, para obtener la irradiancia o reflectancia real del suelo, deben corregirse los errores radiométricos. (http://gsp.humboldt.edu/olm_2015/courses/gsp_216_online/lesson4-1/radiometric.html)

correcciones radiométricas

Una vez corregidos los datos, la salida depende del proceso realizado y puede estar en una tipo de datos, tal como 16-bit unsigned integer, floating point, etc. (no pude encontrar una buena fuente de referencia para esto).

Puedes comprobarlo en Google Earth Engine.

var c = Map.getCenter()
var L8TOA = ee.ImageCollection("LANDSAT/LC08/C01/T1_TOA").filterBounds(c)
var L8SR = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR").filterBounds(c)
print('Landsat 8 TOA', L8TOA.first().getInfo()['bands'])
print('Landsat 8 SR', L8SR.first().getInfo()['bands'])

Como puede ver en los resultados, Landsat 8 TOA tiene un float tipo de datos, lo que significa que los datos van de 0 a 1, y SR tiene un signed int 16 tipo de datos, lo que significa que los datos van de -32768 a 32767. Aunque este último tiene una particularidad, los valores reales van de 0 a 10000 (no hay valores menores a 0 ni mayores a 10000).

Finalmente,

Cómo funciona un monitor

Para crear un píxel de un solo color, una pantalla LCD utiliza tres subpíxeles con filtros rojo, verde y azul. Mediante el control cuidadoso y la variación del voltaje aplicado, la intensidad de cada subpíxel puede variar sobre 256 tonos. La combinación de subpíxeles produce una paleta posible de 16,8 millones de colores (256 tonos de rojo x 256 tonos de verde x 256 tonos de azul). (https://computer.howstuffworks.com/monitor4.htm)

Entonces, si un píxel tiene valores Rojo: 0, Azul: 0, Verde: 0, el color del píxel será negro, y si los valores son Rojo: 255, Azul: 255, Verde: 255, el color del píxel será blanco.

Hay muchos sitios para jugar con esto, como este: https://www.w3schools.com/colors/colors_picker.asp

Poniendo todo junto

Su monitor solo puede mostrar tres colores: rojo, verde y azul (RGB). Entonces, para visualizar un ráster, primero debe elegir qué bandas representarán esos colores. Ese es el parámetro bands de Map.addLayer. Luego, debe decirle al monitor qué valor (fuera del rango) representará el 0 (mínimo) y cuál el 255 (máximo). Estos son los parámetros min y max de Map.addLayer. También puede especificar diferentes min y max para cada banda usando una lista de tres valores en lugar de solo un valor.

Digamos que desea visualizar una imagen de Landsat 8 TOA mientras estaba sentado en la parte superior del satélite (color real). Entonces, debe decirle al monitor que use la banda roja (banda 4) del ráster para el subpíxel rojo del monitor, la banda verde (banda 3) para el subpíxel verde y la banda azul (banda 2) para el azul. subpíxeles. Luego, debe decirle al monitor cómo estirar los valores del ráster, que como hemos visto para Landsat 8 TOA puede ir de 0 a 1 (porque es un float), a los valores de los subpíxeles (que van de 0 a 255). Entonces,

var c = Map.getCenter()
var L8TOA = ee.ImageCollection("LANDSAT/LC08/C01/T1_TOA").filterBounds(c)

Map.addLayer(L8TOA.first(), bands:['B4', 'B3', 'B2'], min:0, max:1, 'L8 TOA Real Color')

Pero descubrirá que la imagen parece “demasiado oscura” para ese estiramiento (depende de la reflectancia de los objetos que está viendo), así que haga max más pequeño para verlo “más brillante”, por ejemplo, max:0.4

Les dejo una aplicación sencilla que hice para mostrar esto: https://fitoprincipe.users.earthengine.app/view/stretch

fuente: https://code.earthengine.google.com/cdf508ac8ae98a35364758d4c585bba2

Si desea ver la misma escena Landsat de otras colecciones, debe saber cómo se presentan los datos en cada colección.

Finalmente, existen algunos métodos para estirar los valores automáticamente usando el histograma ráster, como Desviaciones estándar, Mínimo-Máximo, Porcentaje de recorte, Sigmoide, etc. (http://desktop.arcgis.com/en/arcmap/latest/manage -data / raster-and-images / stretch-function.htm). Earth Engine te permite usar algunos

ingrese la descripción de la imagen aquí

El significado de esos valores mínimo y máximo está relacionado con los compuestos RGB para la visualización de su imagen que representa cada banda de imagen.

bandas Lista delimitada por comas de tres nombres de bandas que se asignarán a RGB

Valor mínimo para asignar al número 0 o lista de tres números, uno para cada banda
Valor (es) máximo (s) para asignar al número 255 o lista de tres números, uno para cada banda

En este ejemplo, la banda ‘B5’ está asignada a rojo, ‘B4’ está asignada a verde y ‘B3’ está asignada a azul. El resultado debería parecerse a la Figura 1.

ingrese la descripción de la imagen aquí

// Load an image.
var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318');

// Define the visualization parameters.
var vizParams = 
bands: ['B5', 'B4', 'B3'],
min: 0,
max: 0.5,
gamma: [0.95, 1.1, 1]

;

// Center the map and display the image.
Map.setCenter(-122.1899, 37.5010, 10); // San Francisco Bay
Map.addLayer(image, vizParams, 'false color composite');

En este caso, cuando establece un valor mínimo o máximo, permite que la paleta tenga una distribución entre esos valores establecidos como en la imagen a continuación.

En este ejemplo, tenga en cuenta que los parámetros mínimo y máximo indican el rango de valores de píxeles al que se debe aplicar la paleta. Los valores intermedios se estiran linealmente. También tenga en cuenta que el parámetro opt_show está establecido en false. Esto da como resultado que la visibilidad de la capa esté desactivada cuando se agrega al mapa. Siempre se puede volver a activar usando el Administrador de capas en la esquina superior derecha del mapa. El resultado debería parecerse a la Figura 2.

ingrese la descripción de la imagen aquí

Si estás de acuerdo, tienes la habilidad dejar un escrito acerca de qué te ha impresionado de esta reseña.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *