SlideShare uma empresa Scribd logo
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

Entregable3
Entregable3Entregable3
Entregable3
mandymota
 
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
Juan Jose Lucero
 
10_Trucos_ArcGIS_Mapas_c.pdf
10_Trucos_ArcGIS_Mapas_c.pdf10_Trucos_ArcGIS_Mapas_c.pdf
10_Trucos_ArcGIS_Mapas_c.pdf
WilmarCoronado
 
Java 3 d manual
Java 3 d manualJava 3 d manual
Java 3 d manual
SttOrm sindef
 
Manual de prácticas de fotointerpretacion
Manual de prácticas de fotointerpretacionManual de prácticas de fotointerpretacion
Manual de prácticas de fotointerpretacion
Dicson Campos Sandoval
 
Xxx
XxxXxx
Taller UMA
Taller UMATaller UMA
Taller UMA
Verold
 
Proyecto 3 dsm
Proyecto 3 dsmProyecto 3 dsm
Proyecto 3 dsm
Andres Parra Ruiz
 
Proyecto 3 dsm
Proyecto 3 dsmProyecto 3 dsm
Proyecto 3 dsm
Andres Parra Ruiz
 
Referencia de usuario
Referencia de usuarioReferencia de usuario
Referencia de usuario
GRATINIONO
 
3ds max 6
3ds max 63ds max 6
3ds max 6
Carlos Pedraza
 
3ds max 6
3ds max 63ds max 6
Canvas
CanvasCanvas
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
jesicecytem
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
Karen_Avilaa
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerraColegio nacional nicolás esguerra
Colegio nacional nicolás esguerra
Wilgen Sebastian Ruiz Gonzalez
 
Opengl
OpenglOpengl
Opengl
izzaherdez
 
Andres camilo cifuentes solano
Andres camilo cifuentes solanoAndres camilo cifuentes solano
Andres camilo cifuentes solano
Tayler1997
 
Practicas OpenglC++
Practicas OpenglC++Practicas OpenglC++
Practicas OpenglC++
jesicecytem
 
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
Romel Villanueva
 

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

Plan Emergencia solicitado en obras de construccion
Plan Emergencia  solicitado en obras de construccionPlan Emergencia  solicitado en obras de construccion
Plan Emergencia solicitado en obras de construccion
christianllacchasand
 
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdfREPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
IrapuatoCmovamos
 
Informe fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docxInforme fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docx
mirimerlos5
 
Presentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptxPresentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptx
eleandroth
 
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptxUGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
Mayra798665
 
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllllANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
eliassalascolonia43
 
resumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TIresumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TI
riveroarlett5b
 
vivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodosvivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodos
DilmerCarranza
 
Plan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdfPlan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdf
agustincarranza11
 
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIOLINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
AaronPleitez
 
10 colonias - Análisis socio-demográfico 2024.pdf
10 colonias - Análisis socio-demográfico 2024.pdf10 colonias - Análisis socio-demográfico 2024.pdf
10 colonias - Análisis socio-demográfico 2024.pdf
IrapuatoCmovamos
 
INTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdfINTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdf
YulEz1
 
04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos
MarcoPolo545324
 
MI CECTOR POSTE BLANCO - Paián .pdf
MI  CECTOR  POSTE  BLANCO - Paián   .pdfMI  CECTOR  POSTE  BLANCO - Paián   .pdf
MI CECTOR POSTE BLANCO - Paián .pdf
GustavoTello19
 

Último (14)

Plan Emergencia solicitado en obras de construccion
Plan Emergencia  solicitado en obras de construccionPlan Emergencia  solicitado en obras de construccion
Plan Emergencia solicitado en obras de construccion
 
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdfREPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
 
Informe fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docxInforme fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docx
 
Presentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptxPresentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptx
 
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptxUGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
 
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllllANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
 
resumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TIresumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TI
 
vivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodosvivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodos
 
Plan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdfPlan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdf
 
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIOLINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
 
10 colonias - Análisis socio-demográfico 2024.pdf
10 colonias - Análisis socio-demográfico 2024.pdf10 colonias - Análisis socio-demográfico 2024.pdf
10 colonias - Análisis socio-demográfico 2024.pdf
 
INTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdfINTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdf
 
04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos
 
MI CECTOR POSTE BLANCO - Paián .pdf
MI  CECTOR  POSTE  BLANCO - Paián   .pdfMI  CECTOR  POSTE  BLANCO - Paián   .pdf
MI CECTOR POSTE BLANCO - Paián .pdf
 

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)