SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
Sección 2. Umbralización, Máscaras
y Remapeo de Imágenes
Capitulo 2
cartografiadigital2023@gmail.com
Managua, Nicaragua
Fecha: 9/12/2023
Cartografía Digital: Tu Espacio de conocimientos de SIG
En esta sección, exploramos cómo usar
operadores lógicos para categorizar los valores
de bandas o índices de imágenes, creando así
imágenes categorizadas. Utilizamos la
implementación de umbrales, que implica
utilizar un valor umbral junto con operadores
lógicos para dividir la variabilidad de las
imágenes en categorías. Por ejemplo, podemos
utilizar esta técnica para identificar áreas de
vegetación en un mapa de NDVI, simplificando
la información para comprender mejor la
distribución de la vegetación en la superficie
terrestre. Esto puede ser útil para análisis como
la proporción de vegetación en una ciudad.
Sección 2. Umbralización, Máscaras
y Remapeo de Imágenes
DRAFT
(2023)
Inspecciona la imagen. Podemos observar que las áreas con vegetación son de un tono verde oscuro, mientras que las
ubicaciones sin vegetación son blancas y el agua aparece en rosa. Si utilizamos la herramienta Inspector para consultar
nuestra imagen, veremos que los parques y otras áreas forestales tienen un NDVI superior a aproximadamente 0.5. Por lo tanto,
tendría sentido definir las áreas con valores de NDVI superiores a 0.5 como forestales y aquellas por debajo de ese umbral como
no forestales.
Ahora definamos ese valor como un umbral y úsalo para categorizar nuestras áreas con vegetación.
El método "gt" pertenece a la familia de operadores booleanos, es decir, "gt" es una función que realiza una prueba en cada píxel
y devuelve el valor 1 si la prueba es verdadera y 0 en caso contrario. Aquí, para cada píxel en la imagen, se verifica si el valor de
NDVI es mayor que 0.5. Cuando se cumple esta condición, la capa "seaVeg" recibe el valor 1. Cuando la condición es falsa, recibe
el valor 0.
Utiliza la herramienta Inspector para explorar esta nueva capa. Si haces clic en una ubicación verde, el NDVI debería ser mayor
que 0.5. Si haces clic en un píxel blanco, el valor de NDVI debería ser igual o inferior a 0.5.
Otros operadores en esta familia booleana incluyen "menor que" (lt), "menor o igual que" (lte), "igual a" (eq), "no igual a" (neq),
"mayor o igual que" (gte) y otros.
// Crear una imagen de NDVI utilizando Sentinel 2.
var puntoSFO = ee.Geometry.Point(-122.2040, 47.6221);
var imagenColeccion = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(puntoSFO)
.filterDate('2020-08-15', '2020-10-01');
var imagenSeattle = imagenColeccion.first();
var ndviSeattle = imagenSeattle.normalizedDifference(['B8', 'B4']);
// Mostrar el NDVI en el mapa.
Map.centerObject(puntoSFO, 10);
var paletaVegetacion = ['red', 'white', 'green'];
Map.addLayer(ndviSeattle, {
min: -1,
max: 1,
palette: paletaVegetacion
}, 'NDVI Ciudad');
// Mostrar el valor del NDVI en la consola.
print('NDVI Ciudad', ndviSeattle);
// Implement a threshold.
var seaVeg = ndviSeattle.gt(0.5);
// Map the threshold.
Map.addLayer(seaVeg,
{
min: 0,
max: 1,
palette: ['white', 'green']
},
'No bosque vs. Bosque');
Script traducido y ajustado
Sección 2. Umbralización, Máscaras
y Remapeo de Imágenes
DRAFT
(2023)
Creando Categorizaciones Complejas con .where
// Implementar .where.
// Crear una imagen inicial con todos los valores = 1.
var seaWhere = ee.Image(1)
// Utilizar clip para limitar el tamaño de la nueva
imagen.
.clip(ndviSeattle.geometry());
// Establecer todos los valores de NDVI menores
que -0.1 a 0.
seaWhere =
seaWhere.updateMask(ndviSeattle.lte(-0.1).not()).re
name("Water");
// Establecer todos los valores de NDVI mayores que
0.5 a 2.
seaWhere = seaWhere.where(ndviSeattle.gte(0.5),
2).rename("Forest");
// Agregar nuestra capa dividida en tres clases al
mapa.
Map.addLayer(seaWhere, {
min: 0,
max: 2,
palette: ['blue', 'white', 'green']
}, 'Agua, Sin bosque, Bosque');
Un mapa binario que clasifica el NDVI es muy útil. Sin embargo, existen
situaciones en las que puede ser necesario dividir su imagen en más de dos
categorías. Earth Engine proporciona una herramienta, el método "where", que
evalúa condicionalmente verdadero o falso en cada píxel según el resultado de
una prueba.
Esto es análogo a una declaración "if" comúnmente vista en otros lenguajes de
programación. Sin embargo, al programar para Earth Engine, evitamos el uso
de la declaración "if" en JavaScript, lo cual es importante destacar. Las
instrucciones "if" en JavaScript no se calculan en los servidores de Google y
pueden generar problemas graves al ejecutar su código. En efecto, los
servidores intentan enviar toda la información a ser ejecutada a su propio
navegador de computadora, que no está preparado para tareas tan enormes.
En su lugar, utilizamos la cláusula "where" para lógica condicional.
Supongamos que, en lugar de simplemente dividir las áreas forestales de las no
forestales en nuestro NDVI, deseamos dividir la imagen en áreas probables de
agua, no forestales y forestales. Podemos utilizar "where" y umbrales de -0.1 y 0.5
para lograrlo. Comenzaremos creando una imagen utilizando "ee.Image". Luego
recortamos la nueva imagen para que cubra la misma área que nuestra capa
"ndviSeattle".
Sección 2. Umbralización, Máscaras y Remapeo de Imágenes
Script traducido y ajustado
DRAFT
(2023)
Puedes utilizar la herramienta Inspector para
observar que el área negra está enmascarada y
que el área blanca tiene un valor constante de 1.
Esto significa que los valores de datos están
asignados y disponibles para el análisis solo
dentro del área blanca.
Ocultando Valores Específicos en una Imagen
El enmascaramiento de una imagen es una técnica
que permite eliminar áreas específicas de una
imagen, aquellas que están cubiertas por la
máscara, evitando que se muestren o analicen. En
Earth Engine, tienes la capacidad de visualizar la
máscara actual y modificarla según tus
necesidades.
Sección 2. Umbralización, Máscaras y Remapeo de Imágenes
Script traducido y ajustado
// Aplicar enmascaramiento.
// Ver la máscara actual de la capa seaVeg.
Map.centerObject(puntoSFO, 9);
Map.addLayer(seaVeg.mask(), {}, 'Máscara de seaVeg');
DRAFT
(2023)
Ahora, supongamos que solo queremos mostrar y realizar análisis en las áreas
forestales. Vamos a enmascarar las áreas no forestales de nuestra imagen.
Primero, creamos una máscara binaria utilizando el método "equals" (eq).
Al crear una máscara, estableces los valores que deseas ver y analizar como
un número mayor que 0. La idea es configurar los valores no deseados para
que tengan el valor 0. Los píxeles que tenían valores de 0 quedan
enmascarados (en la práctica, no aparecen en la pantalla en absoluto) una
vez que utilizamos el método "updateMask" para agregar estos valores a la
máscara existente.
Desactiva todas las demás capas. Puedes observar cómo la capa
"maskedVeg" ahora ha enmascarado todas las áreas no forestales.
Mapea la máscara actualizada para la capa y podrás comprender por qué se
ha realizado esta acción
Script traducido y ajustado
// Ver la máscara actual de la capa seaVeg.
Map.centerObject(puntoSFO, 9);
Map.addLayer(seaVeg.mask(), {}, 'Máscara de
seaVeg');
// Crear una máscara binaria de áreas no forestales.
var mascarNoBosque = seaVeg.eq(1);
// Actualizar la máscara de seaVeg con la máscara no
forestal.
var seaVegEnmascarado =
seaVeg.updateMask(mascarNoBosque);
// Mapear la capa de vegetación enmascarada.
Map.addLayer(seaVegEnmascarado,
{
min: 0,
max: 1,
palette: ['green']
},
'Capa de Bosque Enmascarado');
// Mostrar el valor del NDVI en la consola.
print('NDVI enmascarado', seaVegEnmascarado);
Sección 2. Umbralización, Máscaras y Remapeo de Imágenes
DRAFT
(2023)
Reasignación de Valores en una Imagen
La reasignación toma valores específicos en una imagen y les asigna un valor diferente. Esto
es especialmente útil para conjuntos de datos categóricos, incluidos aquellos de los que
leíste en el Capítulo F1.2 y aquellos que hemos creado anteriormente en este capítulo.
Utilicemos el método de reasignación para cambiar los valores de nuestra capa "seaWhere".
Ten en cuenta que, dado que estamos cambiando el valor intermedio para que sea el más
grande, también deberemos ajustar nuestra paleta de colores.
Usa el inspector para comparar los valores entre nuestro "seaWhere" original (mostrado
como Agua, No Bosque, Bosque) y el "seaRemap", marcado como "Valores Reasignados".
Haz clic en un área boscosa y deberías ver que los "Valores Reasignados" deberían ser 10 en
lugar de 2.
Script traducido y ajustado
// Implementar reasignación.
// Reasignar los valores de la capa
seaWhere.
var seaRemap = seaWhere.remap([0, 1, 2],
// Valores existentes.
[9, 11, 10]); // Valores reasignados.
Map.addLayer(seaRemap,
{
min: 9,
max: 11,
palette: ['azul', 'verde', 'blanco']
},
'Valores Reasignados');
Sección 2. Umbralización, Máscaras y Remapeo de Imágenes
DRAFT
(2023)

Mais conteúdo relacionado

Semelhante a Capitulo 2 - Google Earth Engine - Imagenes

Semelhante a Capitulo 2 - Google Earth Engine - Imagenes (20)

Entregable3
Entregable3Entregable3
Entregable3
 
Georeferenciación y clasificación del suelo
Georeferenciación y clasificación del sueloGeoreferenciación y clasificación del suelo
Georeferenciación y clasificación del suelo
 
10_Trucos_ArcGIS_Mapas_c.pdf
10_Trucos_ArcGIS_Mapas_c.pdf10_Trucos_ArcGIS_Mapas_c.pdf
10_Trucos_ArcGIS_Mapas_c.pdf
 
Java 3 d manual
Java 3 d manualJava 3 d manual
Java 3 d manual
 
Manual de prácticas de fotointerpretacion
Manual de prácticas de fotointerpretacionManual de prácticas de fotointerpretacion
Manual de prácticas de fotointerpretacion
 
Xxx
XxxXxx
Xxx
 
Taller UMA
Taller UMATaller UMA
Taller UMA
 
Proyecto 3 dsm
Proyecto 3 dsmProyecto 3 dsm
Proyecto 3 dsm
 
Proyecto 3 dsm
Proyecto 3 dsmProyecto 3 dsm
Proyecto 3 dsm
 
Referencia de usuario
Referencia de usuarioReferencia de usuario
Referencia de usuario
 
3ds max 6
3ds max 63ds max 6
3ds max 6
 
3ds max 6
3ds max 63ds max 6
3ds max 6
 
Canvas
CanvasCanvas
Canvas
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerraColegio nacional nicolás esguerra
Colegio nacional nicolás esguerra
 
Opengl
OpenglOpengl
Opengl
 
Andres camilo cifuentes solano
Andres camilo cifuentes solanoAndres camilo cifuentes solano
Andres camilo cifuentes solano
 
Practicas OpenglC++
Practicas OpenglC++Practicas OpenglC++
Practicas OpenglC++
 
Analisis de fragmentación con Image j
Analisis de fragmentación con Image jAnalisis de fragmentación con Image j
Analisis de fragmentación con Image j
 

Último

¿Qué es el texto científico? Presentación para la clase de comunicación escri...
¿Qué es el texto científico? Presentación para la clase de comunicación escri...¿Qué es el texto científico? Presentación para la clase de comunicación escri...
¿Qué es el texto científico? Presentación para la clase de comunicación escri...Daniela Márquez Sena
 
Proyecto JANNET trabajo de investigación
Proyecto JANNET trabajo de investigaciónProyecto JANNET trabajo de investigación
Proyecto JANNET trabajo de investigaciónEduCE2
 
GRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdf
GRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdfGRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdf
GRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdfelielarmandoeche2
 
REVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOS
REVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOSREVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOS
REVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOSAlexander VA
 
CODEX ALIMENTARIUS Y OCTOGONOS euks.pptx
CODEX ALIMENTARIUS Y OCTOGONOS euks.pptxCODEX ALIMENTARIUS Y OCTOGONOS euks.pptx
CODEX ALIMENTARIUS Y OCTOGONOS euks.pptxfabriciosernaquechir
 
trabajo aplicativo conflictos sociales ong y ccss
trabajo aplicativo conflictos sociales ong y ccsstrabajo aplicativo conflictos sociales ong y ccss
trabajo aplicativo conflictos sociales ong y ccsslaurenteguevaraluise
 
EJERCICIOS PARA MODELAR BASES DE DATOS.docx.docx
EJERCICIOS PARA MODELAR BASES DE DATOS.docx.docxEJERCICIOS PARA MODELAR BASES DE DATOS.docx.docx
EJERCICIOS PARA MODELAR BASES DE DATOS.docx.docxZafetDeLaOssa1
 
2287-Texto del artículo-1259innova9-1-10-20230909.pdf
2287-Texto del artículo-1259innova9-1-10-20230909.pdf2287-Texto del artículo-1259innova9-1-10-20230909.pdf
2287-Texto del artículo-1259innova9-1-10-20230909.pdfCamiloVasconez
 
METODOLOGIA DE INVESTIGACION DE MARIO BUNGE
METODOLOGIA DE INVESTIGACION DE MARIO BUNGEMETODOLOGIA DE INVESTIGACION DE MARIO BUNGE
METODOLOGIA DE INVESTIGACION DE MARIO BUNGEBrusRimasccaHuarancc
 
Presentación Navegadores de Internet.pptx
Presentación Navegadores de Internet.pptxPresentación Navegadores de Internet.pptx
Presentación Navegadores de Internet.pptxUniversidad de Sonora
 
Paisajismo Chino - Vegetacion y su historia
Paisajismo Chino - Vegetacion y su historiaPaisajismo Chino - Vegetacion y su historia
Paisajismo Chino - Vegetacion y su historiaAlexander VA
 
Formas Farmacéuticas segun la FEUM..........
Formas Farmacéuticas segun la FEUM..........Formas Farmacéuticas segun la FEUM..........
Formas Farmacéuticas segun la FEUM..........amebgirl
 
Los países de AL con mayor población blanca europea (2024).pdf
Los países de AL con mayor población blanca europea (2024).pdfLos países de AL con mayor población blanca europea (2024).pdf
Los países de AL con mayor población blanca europea (2024).pdfJC Díaz Herrera
 
Estudio sobre tenencia de animales domésticos en Madrid 2019-2023
Estudio sobre tenencia de animales domésticos en Madrid 2019-2023Estudio sobre tenencia de animales domésticos en Madrid 2019-2023
Estudio sobre tenencia de animales domésticos en Madrid 2019-2023mmolina546
 
XNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdk
XNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdkXNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdk
XNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdkJuanmanuelYapitamani
 
El siglo de Asia en pocos datos relevantes año (2024).pdf
El siglo de Asia en pocos datos relevantes año (2024).pdfEl siglo de Asia en pocos datos relevantes año (2024).pdf
El siglo de Asia en pocos datos relevantes año (2024).pdfJC Díaz Herrera
 
01 SIMULACRO 2024.pdf unijjajajajjaaaajj
01 SIMULACRO 2024.pdf unijjajajajjaaaajj01 SIMULACRO 2024.pdf unijjajajajjaaaajj
01 SIMULACRO 2024.pdf unijjajajajjaaaajjmatiasccoyllomarca
 
SISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptx
SISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptxSISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptx
SISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptxTAMINCHIPONCEANILDAD
 
Diapositivas de recolección de datos tema en especifico
Diapositivas de recolección de datos tema en especificoDiapositivas de recolección de datos tema en especifico
Diapositivas de recolección de datos tema en especificojuancarlos63884
 
Análisis estructural del restaurante submarino de Valencia oceanographic
Análisis estructural del restaurante submarino de Valencia oceanographicAnálisis estructural del restaurante submarino de Valencia oceanographic
Análisis estructural del restaurante submarino de Valencia oceanographicalejandrosagre14
 

Último (20)

¿Qué es el texto científico? Presentación para la clase de comunicación escri...
¿Qué es el texto científico? Presentación para la clase de comunicación escri...¿Qué es el texto científico? Presentación para la clase de comunicación escri...
¿Qué es el texto científico? Presentación para la clase de comunicación escri...
 
Proyecto JANNET trabajo de investigación
Proyecto JANNET trabajo de investigaciónProyecto JANNET trabajo de investigación
Proyecto JANNET trabajo de investigación
 
GRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdf
GRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdfGRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdf
GRUPO 3 ACTIVIDADES Integradoras Universidad cesar vallejo.pdf
 
REVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOS
REVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOSREVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOS
REVISTAA - CONSTRUCCION SOSTENIBLE ESTUDIO DE CASOS
 
CODEX ALIMENTARIUS Y OCTOGONOS euks.pptx
CODEX ALIMENTARIUS Y OCTOGONOS euks.pptxCODEX ALIMENTARIUS Y OCTOGONOS euks.pptx
CODEX ALIMENTARIUS Y OCTOGONOS euks.pptx
 
trabajo aplicativo conflictos sociales ong y ccss
trabajo aplicativo conflictos sociales ong y ccsstrabajo aplicativo conflictos sociales ong y ccss
trabajo aplicativo conflictos sociales ong y ccss
 
EJERCICIOS PARA MODELAR BASES DE DATOS.docx.docx
EJERCICIOS PARA MODELAR BASES DE DATOS.docx.docxEJERCICIOS PARA MODELAR BASES DE DATOS.docx.docx
EJERCICIOS PARA MODELAR BASES DE DATOS.docx.docx
 
2287-Texto del artículo-1259innova9-1-10-20230909.pdf
2287-Texto del artículo-1259innova9-1-10-20230909.pdf2287-Texto del artículo-1259innova9-1-10-20230909.pdf
2287-Texto del artículo-1259innova9-1-10-20230909.pdf
 
METODOLOGIA DE INVESTIGACION DE MARIO BUNGE
METODOLOGIA DE INVESTIGACION DE MARIO BUNGEMETODOLOGIA DE INVESTIGACION DE MARIO BUNGE
METODOLOGIA DE INVESTIGACION DE MARIO BUNGE
 
Presentación Navegadores de Internet.pptx
Presentación Navegadores de Internet.pptxPresentación Navegadores de Internet.pptx
Presentación Navegadores de Internet.pptx
 
Paisajismo Chino - Vegetacion y su historia
Paisajismo Chino - Vegetacion y su historiaPaisajismo Chino - Vegetacion y su historia
Paisajismo Chino - Vegetacion y su historia
 
Formas Farmacéuticas segun la FEUM..........
Formas Farmacéuticas segun la FEUM..........Formas Farmacéuticas segun la FEUM..........
Formas Farmacéuticas segun la FEUM..........
 
Los países de AL con mayor población blanca europea (2024).pdf
Los países de AL con mayor población blanca europea (2024).pdfLos países de AL con mayor población blanca europea (2024).pdf
Los países de AL con mayor población blanca europea (2024).pdf
 
Estudio sobre tenencia de animales domésticos en Madrid 2019-2023
Estudio sobre tenencia de animales domésticos en Madrid 2019-2023Estudio sobre tenencia de animales domésticos en Madrid 2019-2023
Estudio sobre tenencia de animales domésticos en Madrid 2019-2023
 
XNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdk
XNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdkXNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdk
XNXX.pptxjsjssjsjsjjsjsjsjsjjsjejejejkdkdk
 
El siglo de Asia en pocos datos relevantes año (2024).pdf
El siglo de Asia en pocos datos relevantes año (2024).pdfEl siglo de Asia en pocos datos relevantes año (2024).pdf
El siglo de Asia en pocos datos relevantes año (2024).pdf
 
01 SIMULACRO 2024.pdf unijjajajajjaaaajj
01 SIMULACRO 2024.pdf unijjajajajjaaaajj01 SIMULACRO 2024.pdf unijjajajajjaaaajj
01 SIMULACRO 2024.pdf unijjajajajjaaaajj
 
SISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptx
SISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptxSISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptx
SISTEMA DE CONTROL INTERNO - GRSM - GRUPO 5.pptx
 
Diapositivas de recolección de datos tema en especifico
Diapositivas de recolección de datos tema en especificoDiapositivas de recolección de datos tema en especifico
Diapositivas de recolección de datos tema en especifico
 
Análisis estructural del restaurante submarino de Valencia oceanographic
Análisis estructural del restaurante submarino de Valencia oceanographicAnálisis estructural del restaurante submarino de Valencia oceanographic
Análisis estructural del restaurante submarino de Valencia oceanographic
 

Capitulo 2 - Google Earth Engine - Imagenes

  • 1. Sección 2. Umbralización, Máscaras y Remapeo de Imágenes Capitulo 2 cartografiadigital2023@gmail.com Managua, Nicaragua Fecha: 9/12/2023 Cartografía Digital: Tu Espacio de conocimientos de SIG
  • 2. En esta sección, exploramos cómo usar operadores lógicos para categorizar los valores de bandas o índices de imágenes, creando así imágenes categorizadas. Utilizamos la implementación de umbrales, que implica utilizar un valor umbral junto con operadores lógicos para dividir la variabilidad de las imágenes en categorías. Por ejemplo, podemos utilizar esta técnica para identificar áreas de vegetación en un mapa de NDVI, simplificando la información para comprender mejor la distribución de la vegetación en la superficie terrestre. Esto puede ser útil para análisis como la proporción de vegetación en una ciudad. Sección 2. Umbralización, Máscaras y Remapeo de Imágenes DRAFT (2023)
  • 3. Inspecciona la imagen. Podemos observar que las áreas con vegetación son de un tono verde oscuro, mientras que las ubicaciones sin vegetación son blancas y el agua aparece en rosa. Si utilizamos la herramienta Inspector para consultar nuestra imagen, veremos que los parques y otras áreas forestales tienen un NDVI superior a aproximadamente 0.5. Por lo tanto, tendría sentido definir las áreas con valores de NDVI superiores a 0.5 como forestales y aquellas por debajo de ese umbral como no forestales. Ahora definamos ese valor como un umbral y úsalo para categorizar nuestras áreas con vegetación. El método "gt" pertenece a la familia de operadores booleanos, es decir, "gt" es una función que realiza una prueba en cada píxel y devuelve el valor 1 si la prueba es verdadera y 0 en caso contrario. Aquí, para cada píxel en la imagen, se verifica si el valor de NDVI es mayor que 0.5. Cuando se cumple esta condición, la capa "seaVeg" recibe el valor 1. Cuando la condición es falsa, recibe el valor 0. Utiliza la herramienta Inspector para explorar esta nueva capa. Si haces clic en una ubicación verde, el NDVI debería ser mayor que 0.5. Si haces clic en un píxel blanco, el valor de NDVI debería ser igual o inferior a 0.5. Otros operadores en esta familia booleana incluyen "menor que" (lt), "menor o igual que" (lte), "igual a" (eq), "no igual a" (neq), "mayor o igual que" (gte) y otros. // Crear una imagen de NDVI utilizando Sentinel 2. var puntoSFO = ee.Geometry.Point(-122.2040, 47.6221); var imagenColeccion = ee.ImageCollection('COPERNICUS/S2') .filterBounds(puntoSFO) .filterDate('2020-08-15', '2020-10-01'); var imagenSeattle = imagenColeccion.first(); var ndviSeattle = imagenSeattle.normalizedDifference(['B8', 'B4']); // Mostrar el NDVI en el mapa. Map.centerObject(puntoSFO, 10); var paletaVegetacion = ['red', 'white', 'green']; Map.addLayer(ndviSeattle, { min: -1, max: 1, palette: paletaVegetacion }, 'NDVI Ciudad'); // Mostrar el valor del NDVI en la consola. print('NDVI Ciudad', ndviSeattle); // Implement a threshold. var seaVeg = ndviSeattle.gt(0.5); // Map the threshold. Map.addLayer(seaVeg, { min: 0, max: 1, palette: ['white', 'green'] }, 'No bosque vs. Bosque'); Script traducido y ajustado Sección 2. Umbralización, Máscaras y Remapeo de Imágenes DRAFT (2023)
  • 4. Creando Categorizaciones Complejas con .where // Implementar .where. // Crear una imagen inicial con todos los valores = 1. var seaWhere = ee.Image(1) // Utilizar clip para limitar el tamaño de la nueva imagen. .clip(ndviSeattle.geometry()); // Establecer todos los valores de NDVI menores que -0.1 a 0. seaWhere = seaWhere.updateMask(ndviSeattle.lte(-0.1).not()).re name("Water"); // Establecer todos los valores de NDVI mayores que 0.5 a 2. seaWhere = seaWhere.where(ndviSeattle.gte(0.5), 2).rename("Forest"); // Agregar nuestra capa dividida en tres clases al mapa. Map.addLayer(seaWhere, { min: 0, max: 2, palette: ['blue', 'white', 'green'] }, 'Agua, Sin bosque, Bosque'); Un mapa binario que clasifica el NDVI es muy útil. Sin embargo, existen situaciones en las que puede ser necesario dividir su imagen en más de dos categorías. Earth Engine proporciona una herramienta, el método "where", que evalúa condicionalmente verdadero o falso en cada píxel según el resultado de una prueba. Esto es análogo a una declaración "if" comúnmente vista en otros lenguajes de programación. Sin embargo, al programar para Earth Engine, evitamos el uso de la declaración "if" en JavaScript, lo cual es importante destacar. Las instrucciones "if" en JavaScript no se calculan en los servidores de Google y pueden generar problemas graves al ejecutar su código. En efecto, los servidores intentan enviar toda la información a ser ejecutada a su propio navegador de computadora, que no está preparado para tareas tan enormes. En su lugar, utilizamos la cláusula "where" para lógica condicional. Supongamos que, en lugar de simplemente dividir las áreas forestales de las no forestales en nuestro NDVI, deseamos dividir la imagen en áreas probables de agua, no forestales y forestales. Podemos utilizar "where" y umbrales de -0.1 y 0.5 para lograrlo. Comenzaremos creando una imagen utilizando "ee.Image". Luego recortamos la nueva imagen para que cubra la misma área que nuestra capa "ndviSeattle". Sección 2. Umbralización, Máscaras y Remapeo de Imágenes Script traducido y ajustado DRAFT (2023)
  • 5. Puedes utilizar la herramienta Inspector para observar que el área negra está enmascarada y que el área blanca tiene un valor constante de 1. Esto significa que los valores de datos están asignados y disponibles para el análisis solo dentro del área blanca. Ocultando Valores Específicos en una Imagen El enmascaramiento de una imagen es una técnica que permite eliminar áreas específicas de una imagen, aquellas que están cubiertas por la máscara, evitando que se muestren o analicen. En Earth Engine, tienes la capacidad de visualizar la máscara actual y modificarla según tus necesidades. Sección 2. Umbralización, Máscaras y Remapeo de Imágenes Script traducido y ajustado // Aplicar enmascaramiento. // Ver la máscara actual de la capa seaVeg. Map.centerObject(puntoSFO, 9); Map.addLayer(seaVeg.mask(), {}, 'Máscara de seaVeg'); DRAFT (2023)
  • 6. Ahora, supongamos que solo queremos mostrar y realizar análisis en las áreas forestales. Vamos a enmascarar las áreas no forestales de nuestra imagen. Primero, creamos una máscara binaria utilizando el método "equals" (eq). Al crear una máscara, estableces los valores que deseas ver y analizar como un número mayor que 0. La idea es configurar los valores no deseados para que tengan el valor 0. Los píxeles que tenían valores de 0 quedan enmascarados (en la práctica, no aparecen en la pantalla en absoluto) una vez que utilizamos el método "updateMask" para agregar estos valores a la máscara existente. Desactiva todas las demás capas. Puedes observar cómo la capa "maskedVeg" ahora ha enmascarado todas las áreas no forestales. Mapea la máscara actualizada para la capa y podrás comprender por qué se ha realizado esta acción Script traducido y ajustado // Ver la máscara actual de la capa seaVeg. Map.centerObject(puntoSFO, 9); Map.addLayer(seaVeg.mask(), {}, 'Máscara de seaVeg'); // Crear una máscara binaria de áreas no forestales. var mascarNoBosque = seaVeg.eq(1); // Actualizar la máscara de seaVeg con la máscara no forestal. var seaVegEnmascarado = seaVeg.updateMask(mascarNoBosque); // Mapear la capa de vegetación enmascarada. Map.addLayer(seaVegEnmascarado, { min: 0, max: 1, palette: ['green'] }, 'Capa de Bosque Enmascarado'); // Mostrar el valor del NDVI en la consola. print('NDVI enmascarado', seaVegEnmascarado); Sección 2. Umbralización, Máscaras y Remapeo de Imágenes DRAFT (2023)
  • 7. Reasignación de Valores en una Imagen La reasignación toma valores específicos en una imagen y les asigna un valor diferente. Esto es especialmente útil para conjuntos de datos categóricos, incluidos aquellos de los que leíste en el Capítulo F1.2 y aquellos que hemos creado anteriormente en este capítulo. Utilicemos el método de reasignación para cambiar los valores de nuestra capa "seaWhere". Ten en cuenta que, dado que estamos cambiando el valor intermedio para que sea el más grande, también deberemos ajustar nuestra paleta de colores. Usa el inspector para comparar los valores entre nuestro "seaWhere" original (mostrado como Agua, No Bosque, Bosque) y el "seaRemap", marcado como "Valores Reasignados". Haz clic en un área boscosa y deberías ver que los "Valores Reasignados" deberían ser 10 en lugar de 2. Script traducido y ajustado // Implementar reasignación. // Reasignar los valores de la capa seaWhere. var seaRemap = seaWhere.remap([0, 1, 2], // Valores existentes. [9, 11, 10]); // Valores reasignados. Map.addLayer(seaRemap, { min: 9, max: 11, palette: ['azul', 'verde', 'blanco'] }, 'Valores Reasignados'); Sección 2. Umbralización, Máscaras y Remapeo de Imágenes DRAFT (2023)