Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Google Earth Engine

https://signup.earthengine.google.com/

Crear cuenta!!

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
  • Presentación del profesor y del LAST-EBD
  • Introducción a Google Earth Engine
  • Introducción al Code-Editor
  • Introducción a Javascript

Día 1

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
  • Acceso a Servicios Web Mapping
  • Asistencia científica en SIG y Teledetección
  • Asistencia equipamiento tecnológico (GPS, radiometría, drones, etc...)
  • Cursos y formación
  • Proyectos científicos propios
  • Programa de seguimiento Doñana

Javier Bustamante Díaz

Responsable científico

(Investigador Científico)

Ricardo Díaz-Delgado Hernández

Dr. Biología

Isabel Afán Asencio

Responsable Técnico

Dra. Biología

David Aragonés Borrego

Ingeniero Forestal

Diego García Díaz

Geógrafo

Pedro Gómez Giráldez

Dr. Ingeniería de Montes

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Estudio de la Inundación de la marisma de Doñana

  • Teledetección
  • DTM y Escalas
  • Modelo Matemático

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Teledetección

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Problemas

  • Sensores/Satélites a escoger
  • Precio
  • Resoluciones Temporal, espacial y espectral
  • Nubes (óptico)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

DTM y Escalas

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Problemas

  • Dificultad en conocer exactamente los sub-recintos
  • Posibles cambios en la microtopografía de la marisma
  • Trabajo de campo para lectura de escalas manuales
  • Vacas!

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Modelo Matemático

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Problemas

  • Coste de computación
  • Necesidad de un nuevo DTM Lidar
  • Necesidad de Aforamientos

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
{ 
    "_id" : "20140812l8oli202_34", 
    "Info" : {
        "Iniciada" : "Tue Nov 24 01:08:18 2015", 
        "Pasos" : {
            "rad" : {
                "Fecha" : "Tue Nov 24 01:17:22 2015", 
                "Kl-Values" : {
                    "b4" : NumberInt(5762), 
                    "b5" : NumberInt(4674), 
                    "b6" : NumberInt(4203), 
                    "b7" : NumberInt(4453), 
                    "b1" : NumberInt(9125), 
                    "b2" : NumberInt(8083), 
                    "b3" : NumberInt(6664), 
                    "b9" : NumberInt(4968)
                }, 
                "Corrad" : "True"
            }, 
            "geo" : {
                "Georef" : "True", 
                "Fecha" : "Tue Nov 24 01:14:02 2015"
            }, 
            "nor" : {
                "Normalize" : "True", 
                "Fecha" : "Tue Nov 24 01:18:01 2015", 
                "Nor-Values" : {
                    "b4" : {
                        "Parametros" : {
                            "slope" : 1.119179679624905, 
                            "r" : 0.9946001583686911, 
                            "intercept" : -0.818075379766352, 
                            "iter" : NumberInt(1), 
                            "N" : NumberInt(56020)
                        }, 
                        "Tipo_Area" : {
                            "Arena" : NumberInt(711), 
                            "Embalses" : NumberInt(2222), 
                            "Mineria" : NumberInt(163), 
                            "Mar" : NumberInt(49501), 
                            "Urbano-1" : NumberInt(628), 
                            "Urbano-2" : NumberInt(817), 
                            "Aeropuertos" : NumberInt(354), 
                            "Pastizales" : NumberInt(113), 
                            "Pinar" : NumberInt(1511)
                        }
                    }, 
                    "b5" : {
                        "Parametros" : {
                            "slope" : 1.4735184393927765, 
                            "r" : 0.9944821925427072, 
                            "intercept" : -8.002146493486533, 
                            "iter" : NumberInt(1), 
                            "N" : NumberInt(54093)
                        }, 
                        "Tipo_Area" : {
                            "Arena" : NumberInt(206), 
                            "Embalses" : NumberInt(1487), 
                            "Mineria" : NumberInt(180), 
                            "Mar" : NumberInt(49500), 
                            "Urbano-1" : NumberInt(424), 
                            "Urbano-2" : NumberInt(671), 
                            "Aeropuertos" : NumberInt(287), 
                            "Pastizales" : NumberInt(121), 
                            "Pinar" : NumberInt(1217)
                        }
                    }, 
                    "b6" : {
                        "Parametros" : {
                            "slope" : 1.3603867421884617, 
                            "r" : 0.9971326638449448, 
                            "intercept" : -5.338541949997632, 
                            "iter" : NumberInt(1), 
                            "N" : NumberInt(55311)
                        }, 
                        "Tipo_Area" : {
                            "Arena" : NumberInt(698), 
                            "Embalses" : NumberInt(1953), 
                            "Mineria" : NumberInt(194), 
                            "Mar" : NumberInt(49501), 
                            "Urbano-1" : NumberInt(599), 
                            "Urbano-2" : NumberInt(741), 
                            "Aeropuertos" : NumberInt(332), 
                            "Pastizales" : NumberInt(117), 
                            "Pinar" : NumberInt(1176)
                        }
                    }, 
                    "b7" : {
                        "Parametros" : {
                            "slope" : 1.5470858289888685, 
                            "r" : 0.9961333630704381, 
                            "intercept" : -1.4178915745814127, 
                            "iter" : NumberInt(1), 
                            "N" : NumberInt(55864)
                        }, 
                        "Tipo_Area" : {
                            "Arena" : NumberInt(683), 
                            "Embalses" : NumberInt(2284), 
                            "Mineria" : NumberInt(200), 
                            "Mar" : NumberInt(49501), 
                            "Urbano-1" : NumberInt(555), 
                            "Urbano-2" : NumberInt(713), 
                            "Aeropuertos" : NumberInt(398), 
                            "Pastizales" : NumberInt(108), 
                            "Pinar" : NumberInt(1422)
                        }
                    }, 
                    "b2" : {
                        "Parametros" : {
                            "slope" : 1.897435537990908, 
                            "r" : 0.9796848721026005, 
                            "intercept" : 0.931654933456219, 
                            "iter" : NumberInt(1), 
                            "N" : NumberInt(53180)
                        }, 
                        "Tipo_Area" : {
                            "Arena" : NumberInt(662), 
                            "Embalses" : NumberInt(1590), 
                            "Mineria" : NumberInt(80), 
                            "Mar" : NumberInt(47729), 
                            "Urbano-1" : NumberInt(489), 
                            "Urbano-2" : NumberInt(726), 
                            "Aeropuertos" : NumberInt(238), 
                            "Pastizales" : NumberInt(85), 
                            "Pinar" : NumberInt(1581)
                        }
                    }, 
                    "b3" : {
                        "Parametros" : {
                            "slope" : 1.4573014972232725, 
                            "r" : 0.9910393887505663, 
                            "intercept" : -2.521427924507977, 
                            "iter" : NumberInt(1), 
                            "N" : NumberInt(55643)
                        }, 
                        "Tipo_Area" : {
                            "Arena" : NumberInt(571), 
                            "Embalses" : NumberInt(2111), 
                            "Mineria" : NumberInt(125), 
                            "Mar" : NumberInt(49499), 
                            "Urbano-1" : NumberInt(532), 
                            "Urbano-2" : NumberInt(810), 
                            "Aeropuertos" : NumberInt(287), 
                            "Pastizales" : NumberInt(115), 
                            "Pinar" : NumberInt(1593)
                        }
                    }
                }
            }
        }, 
        "Tecnico" : "LAST-EBD Auto", 
        "Finalizada" : "Tue Nov 24 01:18:04 2015"
    }, 
    "Clouds" : {
        "cloud_scene" : 0.1, 
        "umbral" : NumberInt(50), 
        "cloud_PN" : 0.0
    }, 
    "usgs_id" : "LC82020342014224LGN00"
}

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Toda esta metodología es transferible a otras escenas.

Solo se necesitan una imagen de referencia y unas PIAs de la misma. Lo cual podría llegar a ser un proceso automático.

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Algoritmo

de bandas

Cuerpos de agua poligonizados e interpolados (DTM)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Hidroperiodo

  • Se trata de un producto singular, ya que no se aplica sobre una imagen sino sobre el conjunto de máscaras de agua de un ciclo hidrológico
  • Es una variable muy importante para explicar la distribución de especies en la marisma
  • La salida es un raster cuyo valor de pixel es el número de días que un pixel ha estado inundado a lo largo del ciclo hidrológico

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Máscaras de agua ciclo 2008/09

Escenas 202/34 & 202/35

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
1. Restauración Sotos

2. Depuradora del Rocío

3. Restauración del Arroyo del Partido

4. Restauración Marisma Gallega

5. Recuperación Caño Guadiamar

6. Recuperación Caño Travieso

7. Recuperación Brazo de 
la Torre

8. Permeabilización de la marisma frente al río, Brazo de la Torre y Entremuros

 

Doñana 2005

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
  • Presentación del profesor y del LAST-EBD
  • Introducción a Google Earth Engine
  • Introducción al Code-Editor
  • Introducción a Javascript

Día 1

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

¡SERVIDOR DE IMÁGENES SATÉLITE!

¿Que es Google Earth Engine?

Respuesta Rápida:

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
  • Plataforma en la nube para la visualización y el procesado de información cartográfica
  • Petabytes de datos (imágenes satélite de diversos satélites/sensores)
  • Datos rasters (Coberturas de usos del suelo, datos climáticos, etc...)
  • Datos vectoriales
  • Posibilidad de usar datasets propios (públicos o privados)
  • Algoritmos de computación (posibilidad de desarrollar nuevos)
  • Aplicaciones (Uso y desarrollo)
  • Local & Global 

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

TimeLapses

Datasets

API

Code Editor

Study Cases

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

TimeLapses

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Datasets

Visualización y apertura en code-editor

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Datasets

Visualización y descarga en Explorer

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

API

Se trata de la sección desde la que buscar toda la ayuda y las explicaciones sobre como programar para obtener el resultado que queremos

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Study Cases

Global Forest Change

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Study Cases

Global Water Occurence

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Study Cases

Digital Earth Australia (DEA) Shorelines & bathymetry

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
  • Presentación del profesor y del LAST-EBD
  • Introducción a Google Earth Engine
  • Introducción al Code-Editor
  • Introducción a Javascript

Día 1

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Code Editor

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Scripts

// Esto es un comentario de una línea
print('Hello world!');

/* 
Esto es la apertura de un comentario multilinea

var saludo = 'Hello GEE world!';
print(saludo);

Esto es el cierre de un comentario multilinea

*/

var number = 99;
print('El número es ' + number);

var lista = [0,1,2,3,4,5];
print('La lista es: ', lista);

var lista2 = [6, 7, 8, 9, 10];
var lista3 = lista.concat(lista2);

lista.forEach(function(i) {
  print(i + 1)
});

print(lista3);

var Objeto = {
  name: 'Diego',
  notaMental: 'puh', 
  edad: 43, 
  hobbies: ['Mountain Bike', 'surf', 'llorar']
};

print('Dict:', Objeto);

// Function
var greet = function(name) {
    return 'Hello ' + name;
};
print(greet('World'));

Javascript Basico

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Scripts

var huelva_buffer = huelva.buffer(50000)
var sevilla_buffer = sevilla.buffer(50000)
var marisma_buffer = marisma.buffer(25000)

Map.addLayer(huelva_buffer, {color:'red'})
Map.addLayer(sevilla_buffer, {color:'blue'})


// Compute the intersection, display it in green.
var intersection = huelva_buffer.intersection(sevilla_buffer);
Map.addLayer(intersection, {color: '00FF00'}, 'intersection');

// Compute the union, display it in magenta.
var union = huelva_buffer.union(sevilla_buffer, ee.ErrorMargin(1));
Map.addLayer(union, {color: 'FF00FF'}, 'union');

// Compute the difference, display in yellow.
var diff1 = huelva_buffer.difference(sevilla_buffer, ee.ErrorMargin(1));
Map.addLayer(diff1, {color: 'FFFF00'}, 'diff1');

// Compute symmetric difference, display in black.
var symDiff = huelva_buffer.symmetricDifference(sevilla_buffer).symmetricDifference(marisma_buffer, ee.ErrorMargin(1));
Map.addLayer(symDiff, {color: '000000'}, 'symmetric difference');

print('El area de la marisma es', marisma.area())
print('El centroide se encuentra en', marisma.centroid())

Map.addLayer(marisma.centroid(), {}, 'Centroide')

Geometries

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Scripts

//cargamos el datset como variable
var dataset = ee.Image('CGIAR/SRTM90_V4');

//seleccionamos la banda 'elevation'
var elevation = dataset.select('elevation');

//usamos las herramientas slope y aspect de la api disponibles en ee.Terrain (buscar en Docs)
var slope = ee.Terrain.slope(elevation);
var aspect = ee.Terrain.aspect(elevation);

//Añadimos el mapa y cargamos los rasters con su visualización. Cuidado de cargar la capa que es y cambiar los máximos y mínimos
Map.setCenter(-5.8598, 36.8841, 10);
Map.addLayer(elevation, {min: 0, max: 3000, palette: ['green', 'yellow', 'orange', 'brown', 'white']}, 'elevation');
Map.addLayer(slope, {min: 0, max: 45, palette: ['white', 'red']}, 'slope');
Map.addLayer(aspect, {min: 0, max: 360, palette: ['yellow', 'red', 'green', 'purple']}, 'aspect');

Terrain

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Cálculo de Índices

  • Zonal Statistics
  • Image Calculations
  • Reducer and NDVI 

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
// IMPORTS

//Aquí tenemos que crear un polígono como geometría al que llamaremos roi para hacer el Zona Statistics (lineas 23-29) var roi: "poligono"
//También tenemos que importar el shapefile de Andalucía, al que llamremos andalucia (linea 35). Está en mis assets, se llamaría así: var andalucia: 'users/digdgeografo/curso_GEE/Andalucia'
//Es interesante ver como podemos compartir los datos/archivos que subamos simplemente con la id que tiene en nuestros assets

//cargamos el datset como variable
var dataset = ee.Image('CGIAR/SRTM90_V4');

//seleccionamos la banda 'elevation'
var elevation = dataset.select('elevation');

//usamos las herramientas slope y aspect de la api disponibles en ee.Terrain (buscar en Docs)
var slope = ee.Terrain.slope(elevation);
var aspect = ee.Terrain.aspect(elevation);

//creamos una imagen compuesta con las 3 variables
var full = ee.Image.cat([elevation, slope, aspect]);

//Añadimos el mapa y cargamos los rasters con su visualización. Cuidado de cargar la capa que es y cambiar los máximos y mínimos
Map.setCenter(-5.8598, 36.8841, 10);
//Map.addLayer(elevation, {min: 0, max: 3000, palette: ['green', 'yellow', 'orange', 'brown', 'white']}, 'elevation');
//Map.addLayer(slope, {min: 0, max: 45, palette: ['white', 'red']}, 'slope');
//Map.addLayer(aspect, {min: 0, max: 360, palette: ['yellow', 'red', 'green', 'purple']}, 'aspect');
Map.addLayer(full, {min: 0, max:40, bands:['slope'], palette:['white', 'red']}, 'full_terrain');


//ESTADISTICAS ZONALES A UN ROI
var roiStats = full.reduceRegion({
  reducer: ee.Reducer.max(),
  geometry: roi,
  scale: 90,
  maxPixels: 1e9
});
print(roiStats)


//Estadisticas zonales a un municipio
var Almonte = andalucia.filter("nombre == 'Almonte'");
Map.addLayer(Almonte, {color: 'green'}, 'Almonte');

var AlmonteStats = full.reduceRegion({
  reducer: ee.Reducer.median(),
  geometry: Almonte,
  scale: 90,
  maxPixels: 1e9
});
print(AlmonteStats);


//Estadísticas zonales a la selección
var filtro = ee.Filter.inList('nombre', ['Almonte', 'Monachil', 'Cazorla']);
var munis = andalucia.filter(filtro);
Map.addLayer(munis, {color: 'purple'}, 'Municipios selected');

var selStats = full.select('elevation').reduceRegions({
    collection: munis.select(['nombre']),
    reducer: ee.Reducer.mean(),
    scale: 30})
    
print(selStats);

//con estas lineas vamos a visualizar todos los municipios sin relleno
var empty = ee.Image().byte();
// Paint all the polygon edges with the same number and width, display.
var outline = empty.paint({
  featureCollection: andalucia,
  //color: 5,
  width: 2
});
Map.addLayer(outline, {palette: 'black'}, 'edges');

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
// IMPORTS
var geometry: Point (-6.21, 36.53) //Punto centrado en la facultad
//Aquí tenemos que crear un punto, lo usaremos para situarlo sobre la marisma (o la zona que queramos y que sea esa la que se cargue).
//Luego lo usaremos para hacer un buffer y un clip con el (lineas 8 y 54). Le dejaremos el nombre de geometry . 

//Seleccionamos las imágenes Landsat en DNs (raw images) para aplicar el simpleComposite y reducir la colección  de Landsat con la imagen más limpia del año
var landsat = ee.ImageCollection("LANDSAT/LC08/C01/T1")
    .filterDate('2019-01-01', '2020-01-01')
    .filterBounds(geometry)

var composite = ee.Algorithms.Landsat.simpleComposite({
  collection: landsat,
  asFloat: true
})


// Compute NDVI 3 ways.
// Method 1)
var b5 = composite.select("B5")
var b4 = composite.select("B4")
var ndvi_1 = b5.subtract(b4).divide(b5.add(b4))

// Method 2)
var ndvi_2 = composite.normalizedDifference(["B5", "B4"])

// Method 3)
var ndvi_3 = composite.expression("(b5 - b4) / (b5 + b4)", {
    b5: composite.select("B5"),
    b4: composite.select("B4")
})

//Aqui estamos calculando la diferencia entre 2 métodos para calcular el ndvi
var dif = ndvi_1.subtract(ndvi_2)

Map.addLayer(ndvi_1, {min:-0.2, max:0.8} , "NDVI")

Map.addLayer(dif, {min:-0.2, max:0.2} , "NDVI DIFF")

Map.centerObject(geometry, 10) 

// Calculate Modified Normalized Difference Water Index (MNDWI)
var mndwi = composite.normalizedDifference(['B3', 'B6']).rename(['mndwi']); 

// For more complex indices, you can use the expression() function
var savi = composite.expression(
    '1.5 * ((NIR - RED) / (NIR + RED + 0.5))', {
      'NIR': composite.select('B5'),
      'RED': composite.select('B4'),
}).rename('savi');

//var rgbVis = {min: 0.0, max: 350, bands: ['B5', 'B4', 'B3']};
var ndviVis = {min:0, max:1, palette: ['white', 'green']}
var ndwiVis = {min:0, max:0.5, palette: ['white', 'blue']}

Map.addLayer(mndwi.clip(geometry.buffer(25000), ndwiVis, 'mndwi')) //en la misma linea añadimos el indice y le aplicamos la mascara y el recorte
Map.addLayer(savi, ndviVis, 'savi') 

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
// IMPORTS
// Solo hay que crear un polígono con el área que queremos exportar. Le dejamos el nombre geometry (línea 37)

// Load an image collection, filtered so it's not too much data.
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
  .filterDate('2021-01-01', '2021-12-31')
  //Aqui filtraríamos por path y row
  //.filter(ee.Filter.eq('WRS_PATH', 202)) 
  //.filter(ee.Filter.eq('WRS_ROW', 32));

// Compute the median in each band, each pixel.
// Band names are B1_median, B2_median, etc.
var ndvi = collection.map(function(image) {
  return image.select().addBands(image.normalizedDifference(['B5', 'B4']));
});

var median = ndvi.reduce(ee.Reducer.median());
var medianRGB = collection.reduce(ee.Reducer.median());

//paleta y parametros de visualización (diccionario) para el NDVI
var vis = {min: 0, max: 1, palette: [
  '0000FF', 'F8ECE0', 'FCD163', '66A000', '207401',
  '056201', '004C00', '023B01', '012E01', '011301'
]};

// The output is an Image.  Add it to the map.
var vis_param = {min: 500, max: 4500, bands: ['B5_median', 'B4_median', 'B3_median'], 'vis':vis, gamma: 1.6};
Map.centerObject(geometry, 8);
Map.addLayer(median, vis);
Map.addLayer(medianRGB,vis_param, 'RGB');


//Export to Image Drive
Export.image.toDrive({
  image: median,
  description: 'NDVI_L8_2017_median',
  scale: 30, //tamaño de pixel que queremos de salida.
  region: geometry,
  fileFormat: 'GeoTIFF',
  crs: 'EPSG:25830', //CRS de salida, nos permite reproyectar
  folder: 'Curso_GEE_UCA' //si la carpeta no existiera la crearía. También podríamos exportar a Google Cloud o los Assets
  //maxPixels: 2000000000
});

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Vamos a realizar una composición de NDVI Multitemporal para ver la estacionalidad de los cultivos

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
// Solo hay que crear un polígono con el área que queremos analizar. Le dejamos el nombre geometry. 
// la idea es elegir una zona con muchos cultivos. En el desierto se ve muy bonito.

//Año 2016

var inv_16 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2016-01-01', '2016-03-31')
                  .select('NDVI').max();

var prim_16 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2016-04-01', '2016-06-30')
                  .select('NDVI').max();

var ver_16 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2016-07-01', '2016-09-30')
                  .select('NDVI').max();
//Año 2017

var inv_17 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2017-01-01', '2017-03-31')
                  .select('NDVI').max();

var prim_17 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2017-04-01', '2017-06-30')
                  .select('NDVI').max();

var ver_17 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2017-07-01', '2017-09-30')
                  .select('NDVI').max();
//Año 2018

var inv_18 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2018-01-01', '2018-03-31')
                  .select('NDVI').max();

var prim_18 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2018-04-01', '2018-06-30')
                  .select('NDVI').max();

var ver_18 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2018-07-01', '2018-09-30')
                  .select('NDVI').max();
//Año 2019
                  
var inv_19 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2019-01-01', '2019-03-31')
                  .select('NDVI').max()//.reduce(ee.Reducer.percentile([95]))

var prim_19 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2019-04-01', '2019-06-30')
                  .select('NDVI').max()//reduce(ee.Reducer.percentile([95]))

var ver_19 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2019-07-01', '2019-09-30')
                  .select('NDVI').max()//reduce(ee.Reducer.percentile([95]))
                  
//Año 2020
                  
var inv_20 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2020-01-01', '2020-03-31')
                  .select('NDVI').max()//.reduce(ee.Reducer.percentile([95]))

var prim_20 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2020-04-01', '2020-06-30')
                  .select('NDVI').max()//reduce(ee.Reducer.percentile([95]))

var ver_20 = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI')
                  .filterDate('2020-07-01', '2020-09-30')
                  .select('NDVI').max()//reduce(ee.Reducer.percentile([95]))
                  
                  
//Composite
                  
var inv = ee.Image.cat(inv_16, inv_17, inv_18, inv_19, inv_20).reduce(ee.Reducer.median())

var prim = ee.Image.cat(prim_16, prim_17, prim_18, prim_19, prim_20).reduce(ee.Reducer.median())

var ver = ee.Image.cat(ver_16, ver_17, ver_18, ver_19, ver_20).reduce(ee.Reducer.median())

var compo = ee.Image.cat(inv, prim, ver)



var year16 = ee.Image.cat(inv_16, prim_16, ver_16).clip(geometry); //si no hacemos clip tenemos el mundo entero
var year17 = ee.Image.cat(inv_17, prim_17, ver_17).clip(geometry);
var year18 = ee.Image.cat(inv_18, prim_18, ver_18).clip(geometry);

//Aqui aplicamos un umbral a la de 2016 para que solo nos uestre los valores con el ndvi mayor de 0.25
var mean = year16.reduce(ee.Reducer.mean())
var mask = mean.gt(0.25);
var year_2016_masked = year16.mask(mask);
//var collection = ee.ImageCollection(year16).merge(year17).merge(year18).merge(year19);


Map.centerObject(geometry, 9);
Map.addLayer(year_2016_masked, {'min': 0.1, 'max': 0.7}, '2016');
//Map.addLayer(geometry, {opacity: 0.7}, 'geometria');
//Map.addLayer(year17, {'min': 0.1, 'max': 0.7}, '2017');
//Map.addLayer(year18, {'min': 0.1, 'max': 0.7}, '2018');
Map.addLayer(compo, {'min': 0.1, 'max': 0.7}, 'Composite');

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Vamos a combinar datos Sentinel 1 a lo largo de un periodo de tiempo largo para ver las rutas marítimas más utilizadas

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
//Aqui tan solo creamos una geometría con la zona a la que queremos que nos haga zoom el mapa
//Le dejamos el nombre geometry (linea 81)

//var l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR");

// Function to cloud mask from the pixel_qa band of Landsat 8 SR data.
function maskL8sr(image) {
  // Bits 3 and 5 are cloud shadow and cloud, respectively.
  var cloudShadowBitMask = 1 << 3;
  var cloudsBitMask = 1 << 5;

  // Get the pixel QA band.
  var qa = image.select('pixel_qa');

  // Both flags should be set to zero, indicating clear conditions.
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
      .and(qa.bitwiseAnd(cloudsBitMask).eq(0));

  // Return the masked image, scaled to reflectance, without the QA bands.
  return image.updateMask(mask).divide(10000)
      .select("B[0-9]*")
      .copyProperties(image, ["system:time_start"]);
}

// Map the function over one year of data.
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
    .filterDate('2020-01-01', '2020-12-31')
    .map(maskL8sr)

var composite = collection.median();

// Display the results.


// Get the median over time, in each band, in each pixel.
//var median = l8.filterDate('2020-01-01', '2020-12-31').median();
// Make a handy variable of visualization parameters.
var visParams = {bands: ['B6', 'B5', 'B4'], min: 100, max: 3500};

// Load or import the Hansen et al. forest change dataset.
var hansenImage = ee.Image('UMD/hansen/global_forest_change_2015');

// Select the land/water mask.
var datamask = hansenImage.select('datamask');

// Create a binary mask.
var mask = datamask.eq(1);
//var mask = datamask.eq(1);

// Update the composite mask with the water mask.
var maskedComposite = composite.updateMask(mask);
//Map.addLayer(maskedComposite, visParams, 'masked');


// Make a water image out of the mask.
var water = mask.not();
var land = mask.eq(1);

// Mask water with itself to mask all the zeros (non-water).
water = water.mask(water);
land = land.mask(land);

// Load the Sentinel-1 ImageCollection.
var sentinel1 = ee.ImageCollection('COPERNICUS/S1_GRD');

// Filter by metadata properties.
var vh_2020 = sentinel1
  // Filter to get images with VH polarization.
  .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
  // Filter to get images collected in interferometric wide swath mode.
  .filter(ee.Filter.eq('instrumentMode', 'IW'))
  .filterDate("2020-01-01","2020-12-31");

// Filter to get images from different look angles.
var vhAscending = vh_2020.filter(ee.Filter.eq('orbitProperties_pass', 'ASCENDING'));
var vhDescending = vh_2020.filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'));

var radar_2020 = vhAscending.select('VH').merge(vhDescending.select('VH')).max().mask(water);


// Map composite over the Channel
Map.centerObject(geometry, 12);
Map.addLayer(radar_2020, {min: -15, max: 0}, 'Radar Merge 2020');


composite = composite.mask(land);
Map.addLayer(composite, {bands: ['B5', 'B4', 'B3'], min: 0, max: 0.3}, 'Landsat composite');

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)
  • Geemap & Google Colabs

Día 2

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Librería de Python basada en la API de GEE y en la librería de mapas Leaflet

Curso Teledetección y Calidad del Agua

Teledetección y Calidad del Agua

Diego García Díaz
diegogarcia@ebd.csic.es
Curso de Doctorado. Universidad de Cádiz. 
Facultad de Ciencias del Mar (6-10 de marzo de 2023)

Recursos sobre GEE y Python:

deck

By Diego García Díaz

deck

  • 265