Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
Título de la Publicación: Texto Normal | 1.
Protocolo para la clasificación de la cobertura forestal de mosaicos satelitales del sensor LANDSAT
Publicado por Deutsche Gesellschaft für Internationale Zusammenarbeit (GIZ) GmbH
Domicilios de la empresa
Bonn y Eschborn, Alemania Programa Regional Reducción de Emisiones por Deforestación y Degradación de Bosques en Centroamérica y República Dominicana (REDD/CCAD-GIZ) Agencia de la GIZ Bulevar Orden de Malta, Casa de la Cooperación Alemana Urbanización Santa Elena, Antiguo Cuscatlán, La Libertad El Salvador, C.A. Tel +503 2121-5100 Fax +503 2121-5101 E-Mail [email protected] www.giz.de www.reddccadgiz.org Versión Octubre 2018 Diseño Oscar Rodríguez, Asesor Técnico en Comunicación Estratégica Programa Regional REDD/CCAD-GIZ [email protected] Créditos fotográficos Todas las fotos: Programa Regional REDD/CCAD-GIZ Autores Omar Orellana Díaz Consultor, Especialista en Tecnologías de Información Geográfica Supervisión Abner Jiménez, Especialista Sectorial Programa Regional REDD/CCAD-GIZ [email protected] Componente Monitoreo Forestal La GIZ es responsable del contenido de la presente publicación. El Programa Regional Reducción de Emisiones de la Deforestación y Degradación de Bosques en Centroamérica y República Dominicana (REDD III) es un programa financiado por el Ministerio Federal de Desarrollo Económico y Cooperación de Alemania (BMZ) y ejecutado por la GIZ en coordinación con la Comisión Centroamericana de Ambiente y Desarrollo (CCAD).
Protocolo para la clasificación de la cobertura forestal de mosaicos satelitales del sensor Landsat By Programa Regional Programa Regional Reducción de Emisiones por Deforestación y Degradación de Bosques en Centroamérica y República Dominicana (REDD/CCAD-GIZ) is licensed under a Creative Commons Reconocimiento-NoComercial 4.0 Internacional License Creado a partir de la obra en www.reddccadgiz.org
TABLA DE CONTENIDO
I. ACRÓNIMOS .......................................................................................................... 3
II. Introducción .............................................................................................................. 4
III. RESUMEN Y DESCRIPCIÓN DEL SCRIP ........................................................ 5
IV. DIAGRANA DE FLUJO DEL PROCESO ........................................................... 6
V. METOLOGÍA PARA LA CLASIFICACIÓN DE LA COBERTURA FORESTAL
7
5.1. Pasos previos al proceso de clasificación .......................................................... 7
5.2. Asignación de muestras para el entrenamiento .................................................. 8
5.2.1. Configurar los campos de las muestras para cada cobertura ...................... 8
5.2.2. Asignar muestras sobre el mosaico a clasificar .......................................... 9
5.2.3. Ver la información de las colecciones de puntos de muestra ................... 10
5.2.4. Mover o borrar un punto de muestra ........................................................ 10
5.2.5. Borrar una colección de puntos de muestra .............................................. 11
5.2.6. Unión de las colecciones de muestras ...................................................... 11
5.3. Nombres de bandas más utilizadas para la clasificación ................................. 12
5.4. Selección de bandas de Landsat 8 y asignación de nombres ........................... 13
5.5. Aplicar la función de selección de bandas y asignar lista de nombres ............ 13
5.6. Creación de relaciones de bandas .................................................................... 13
5.7. Integrar mosaico original con las relaciones de bandas ................................... 14
5.8. Lista de todas las bandas del mosaico a clasificar ........................................... 14
5.9. Crear las regiones de entrenamiento ................................................................ 15
5.10. Entrenar las muestras en base al algoritmo .................................................. 15
5.11. Clasificar el mosaico en base a las muestras entrenadas .............................. 16
5.12. Visualizar la clasificación ............................................................................ 17
5.13. Exportar la clasificación a la nube de Google Drive .................................... 17
5.14. Descargar de la clasificación de la nube de Google drive............................ 19
5.15. Script completo ............................................................................................ 20
VI. BIBLIOGRAFÍA ................................................................................................. 23
VII. ANEXOS ............................................................................................................. 24
TABLA DE FIGURAS
Figura 1. Ícono de asignación de puntos de muestra ........................................................ 8
Figura 2. Configuración de Campos de los puntos de muestras ....................................... 8
Figura 3. Forma de crear nuevas colecciones de muestras ............................................... 9
Figura 4. Visualización de los puntos de muestra ............................................................ 9
Figura 5. Importación automática de los puntos de muestra al inicio del script ............ 10
Figura 6. Información de las colecciones de puntos de muestra .................................... 10
Figura 7. Forma de borrar o mover un punto ................................................................. 10
Figura 8. Borrar toda la colección de puntos de muestras .............................................. 11
Figura 9. unión de las colecciones de puntos de muestras ............................................. 11
Figura 10. Lista de nombres de las bandas ..................................................................... 12
Figura 11. Función para le selección y renombre de bandas .......................................... 13
Figura 12. Aplicación de función para la selección de bandas del mosaico y asignación
de nuevos nombres ......................................................................................................... 13
Figura 13. Relaciones de bandas .................................................................................... 14
Figura 14. Programación de mosaico multibandas ......................................................... 14
Figura 15 Construcción de listado de nombres de bandas para clasificar. ..................... 14
Figura 16. Configuración de las regiones de entrenamiento .......................................... 15
Figura 17.Configuración del algoritmo de engtrenamiento............................................ 15
Figura 18. Algoritmos de clasificación en GEE ............................................................. 16
Figura 19. Configuración de la clasificación de la cobertura ......................................... 16
Figura 20. Configuración de visualización de la clasificación ....................................... 17
Figura 21. Vista de la clasificación en la ventana de visualización del editor de código17
Figura 22. Programación para la descarga del mosaico libre de nube ........................... 18
Figura 23. Pasos para correr la descarga de la clasificación. ......................................... 18
Figura 24. Ventana de características de exportación del mosaico ................................ 19
Figura 25. Descargar clasificación de la nube de GD y ejemplo de visualización en un
SIG .................................................................................................................................. 19
I. ACRÓNIMOS
FAO: Organización de las Naciones Unidas para la Alimentación y la Agricultura
GD: Google Drive
GEE: Google Earth Engine
KML: Keyhole Markup Language
LANDSAT: LAND = tierra y SAT = satélite
REDD+ = Reducción de Emisiones por Deforestación y Degradación de los Bosques
SIG: Sistema de Información Geográfica
TIF: Tagged Image Format (formato de imagen)
TOA: Tope de la Atmosfera
II. INTRODUCCIÓN
El monitoreo de los bosques se ha convertido en un tema clave en los procesos de
elaboración de políticas de desarrollo y ambiente, tanto a niveles nacionales como
internacionales; esto, mediante la recopilación, análisis y divulgación de los datos
relacionados con los bosques y la producción de información y conocimiento a intervalos
regulares que permitan la detección de los cambios y dinámica de las tierras forestales en
el tiempo (FAO, 2012).
El éxito del monitoreo implica generar datos confiables a un bajo costos y con poco
recurso para lograr la sostenibilidad de estos procesos en los países en vías de desarrollo.
Lograr este desafío implica el uso de nuevas técnicas de procesamientos de información
espacial y el uso de nuevas herramientas que requieran menos tiempo y esfuerzo para el
logro de resultados de calidad en tiempo casi real (IDEAM, s. f.).
En respuesta a estas necesidades surge la iniciativa de crear Google Earth Engine (GEE),
una plataforma informática que permite a los usuarios ejecutar análisis geoespaciales en
la infraestructura de Google en tiempo récord. Esta plataforma de seguimiento online y
libre ha puesto a disposición del público colecciones numerosas de imágenes satelitales
actuales e históricas a nivel mundial, almacenando datos satelitales en petabytes (1015
bytes) y permitiendo que las herramientas de alto rendimiento analicen e interpreten ésta
en tiempos reducidos. Por otra parte, la integración de múltiples algoritmos
especializados ha hecho posible, por primera vez en la historia, procesar vastas cantidades
de imágenes satelitales de manera rápida y precisa para obtener productos de calidad con
poco esfuerzo («Google Earth Engine», 2018).
En este manual se detalla el uso de esta potente herramienta para clasificar mosaicos de
imágenes satelitales de Landsat y la aplicación de algoritmos de clasificación para obtener
un mapa de cobertura de la tierra (bosque, no bosque y agua, en este ejemplo); este mapa
es producto de una clasificación supervisada, asignando muestras que el especialista o
interprete debe asignar e ir corriendo el modelo hasta que el mapa se vea confiable y se
adapte a lo que se quiere clasificar.
III. RESUMEN Y DESCRIPCIÓN DEL SCRIP
El presente manual describe todo el proceso necesario para realizar una clasificación de
la cobertura forestal (bosque y no bosque), mismo que puede ser adaptado para la cantidad
de categorías de cobertura y uso que el usuario quiera obtener, siempre y cuando las
categorías tengan características que permitan de manera espectral ser separadas.
La explicación de este manual en la construcción de este script parte del hecho de que el
usuario ya sabe construir mosaicos libres de nube (siempre se incluye el código de
programación en el script porque se necesita como base para la clasificación, sin embargo,
no se explica dado a que esto se incluye en el manual para la construcción de mosaicos
libres de nube).
Los insumos y requerimientos para este script son los siguientes:
✓ Mosaico libre de nubes (se necesita el límite de área de estudio).
✓ Haber leído el manual de Introducción a Google Earth Engine (GEE).
✓ Haber leído el manual de fundamentos básicos de Java Script.
✓ Haber construido el mosaico a clasificar con el manual para la construcción de
mosaicos libres de nube
La construcción de este script se basa prácticamente en dos secciones (SECCIÓN A y
SECCIÓN B) la primera que es construir el mosaico libre de nubes y la segunda que es
clasificar ese mosaico en tres clases de cobertura (bosque, no bosque, agua). La
SECCIÓN A es repetición y toda la explicación se encuentra en el manual que antes se
menciona, sin embargo, este en resumen hace uso de un límite del área de estudio, una
colección de imágenes del sensor landsat y un algoritmo que construye el manual.
La SECCIÓN B hace uso del mosaico libre de nubes, la asignación manual de muestras
de las tres categorías y un algoritmo de clasificación para obtener una capa de cobertura
forestal que posteriormente es descargada para los fines que el usuario requiera y pueda
hacer cualquier análisis en cualquier SIG.
NOTA: El script completo en formato texto se encuentra al final para copiarlo y pegarlo
en el editor de código del editor de código (los puntos de muestras no están incluidos
usted como usuario debe asignarlas)
IV. DIAGRANA DE FLUJO DEL PROCESO
Límite del área
de estudio
Colecciones de
imágenes Satélite
Servidores
Internet
Usuario
especialista en
GEE
Algoritmos
especializados
GEE
Mosaico libre
de nubes
Muestra de
cobertura
Clasificación
de la cobertura
forestal
Nube de
Google Drive
Clasificación
descargada utilizada
por otros usuarios de
SIG
V. METOLOGÍA PARA LA CLASIFICACIÓN DE LA
COBERTURA FORESTAL
5.1. Pasos previos al proceso de clasificación Antes de entrar en lleno en este script se debe conocer en manual para construir
mosaicos libres de nube, donde se hace uso del límite del área de estudio, de una
colección de imágenes y de un algoritmo para construir el mosaico corregido al tope
de la atmósfera. La SECCIÓN A de este script contiene el código necesario, sin
embargo, la explicación parte de que ya se sabe construir. Se agrega aquí la primera
sección de manera informativa.
5.2. Asignación de muestras para el entrenamiento De manera visual en el mosaico se asignan muestras para las categorías que se quieren
clasificar. Para crear estas muestras se debe dar clic en el símbolo de posición en la
parte superior izquierda de la ventana de visualización. Al dar clic se desplegará una
ventanita con las opciones para configurar esa geometría (punto)
Figura 1. Ícono de asignación de puntos de muestra
5.2.1. Configurar los campos de las muestras para cada cobertura
Al dar clic en el simbolo de configuración del paso anterior se despliega una ventana
con todas la opciones que se deben configurar. Se d ebe asignar el nombre de cada
categoría (Bosque, No_Bosque o Agua), en import as (importar como) se debe
seleccionar la opcion FeauteCollection, después en las propiedades se debe asignar un
nombre (ejemplo: clase, id, cobertura, etc) de columna que contendrá los valores de las
categorías (este nombre debe ser el mismo en todas las categorías que se creen), en la
sección de valor debe asignarse un número con el que se identificará cada categoría (ej.
Bosque = 1, No_bosque = 2, Agua = 3).
Figura 2. Configuración de Campos de los puntos de muestras
Asignar nombre de la categoría
Seleccionar FeauteCollection
Escribir un nombre de las categorías (ej. Clase)
Mover el punto para asignar el color que desea por cada categoría
1
2
3 4 5
5 Asignar un valor con el que se identificará cada categoría
1
2
Cada vez que se va agregar una categoría debe darse clic en new layer y se configuran
los campos nuevamente para cada una de las que se vaya agregando.
Figura 3. Forma de crear nuevas colecciones de muestras
5.2.2. Asignar muestras sobre el mosaico a clasificar
Una vez configuradas las coberturas dar clic en el símbolo de ubicación y después clic en
la cobertura de la cual quiere asignar muestras, después ir al mosaico y asignar puntos
donde se observa con seguridad que esta presente la cobertura de la cual está asignando
las muestras. Hacer esto para cada categoría.
Figura 4. Visualización de los puntos de muestra
1
2
5.2.3. Ver la información de las colecciones de puntos de muestra
Cuando se asignan los puntos en la imagen, automáticamente se integra la información
de estos puntos en la parte superior del script
Figura 5. Importación automática de los puntos de muestra al inicio del script
Si da clic en la flechita de cada conjunto de puntos por cobertura, puede ver la información
detallada como se muestra en el caso de bosque a continuación
Figura 6. Información de las colecciones de puntos de muestra
5.2.4. Mover o borrar un punto de muestra
Para mover un punto mal ubicado se debe dar clic en el símbolo de la manito y con esta
manito dar clic en el punto que desea mover, después arrastrarlo al punto exacto donde
quiere que esté. Si se quiere eliminar ese punto entonces con la manito se selecciona ese
punto y a la derecha dar clic en Delete.
Figura 7. Forma de borrar o mover un punto
1
2
3
5.2.5. Borrar una colección de puntos de muestra
Para borrar una colección de puntos de muestras que no se desean tener en el script se
debe ir al inicio del mismo donde se encuentran todas las colecciones importadas y las
colecciones de puntos de muestra. Después se debe dar clic en la colección de muestras
que se quiere borrar y dar clic en el símbolo de borrado y después clic en Yes en la ventana
que se despliega y le pregunta que si está seguro que quiere borrar
Figura 8. Borrar toda la colección de puntos de muestras
5.2.6. Unión de las colecciones de muestras
Para tener todas las muestras en un solo archivo, es necesario unirlas. Para ello se utiliza
el constructor .merge y se va agregando cada colección de puntos de las coberturas. Dado
a que estas muestras se encuentran importadas de manera automática al inicio del script,
entonces al llamarlo se mostrará en color morado, de no mostrar ese color es por que no
se está escribiendo el nombre correcto de cara conjunto de puntos de muestra.
Figura 9. unión de las colecciones de puntos de muestras
1
2
5.3. Nombres de bandas más utilizadas para la clasificación Las bandas más utilizadas para las clasificaciones son las siguientes:
1. Azul (Blue)
2. Verde (Green)
3. Rojo (Red)
4. Infrarrojo cercano (NIR)
5. Infrarrojo medio (SWIR-1)
6. Infrarrojo térmico (TIR, TIR-1, TIR-2)
7. Infrarrojo medio2 (SWIR-2)
La correspondencia de estás bandas para Landsat 8 cambia respecto a los Landsat
anteriores como se muestra en la siguiente tabla.
Tabla 1. Correspondencia de bandas entre Landsat 7 y Landsat 8
Fuente: Tomado de « Blog SIG & Territorios», (2017)
Para mantener un orden lógico en el nombre de las bandas, las no y dado a que son 7, las
nombraremos del 1 al 7 anteponiendo el prefijo B.
Figura 10. Lista de nombres de las bandas
5.4. Selección de bandas de Landsat 8 y asignación de nombres De acuerdo a la sección anterior las 7 bandas utilizadas para mosaicos de Landat 8 en
orden ascendente serán las siguientes: 2, 3, 4, 5, 6, 10 y 7.
La función programada para esta tarea consistirá en tomar una imagen, y devolver las
mima con el listado de bandas anteriores seleccionado y después asignar en el mismo
orden el listado de las 7 bandas del 1 al 7.
Figura 11. Función para le selección y renombre de bandas
5.5. Aplicar la función de selección de bandas y asignar lista de
nombres Una vez teniendo el listado de nombres de bandas y la función para aplicarla, se procede
a llamar el mosaico que contiene todas las bandas para que seleccione las 7 bandas y las
renombre para seguir siendo utilizado en los siguientes pasos de la clasificación.
Figura 12. Aplicación de función para la selección de bandas del mosaico y asignación de nuevos nombres
5.6. Creación de relaciones de bandas Estas relaciones de bandas ayudan a normalizar la clasificación que se hará en los
siguientes pasos, pues este paso cosiste en crear índices que ayudan a los algoritmos a
contar mayor información para tomar la decisión de que cobertura asignar. Por lo general
son relaciones entre las bandas que más relación guardan con la clorofila o con la
cobertura boscosa, en este caso se utilizaran 7 relaciones, sin embargo, pueden utilizarse
muchas más; estas relaciones son: RED- NIR, NIR-SWIR1, NIR-TIR, NIR-SWIR2,
SWIR1- TIR, SWIR1- SWIR2 y TIR- SWIR2
Nombre del nuevo mosaico
Función del paso anterior
Mosaico con todas las bandas
Figura 13. Relaciones de bandas
5.7. Integrar mosaico original con las relaciones de bandas Este paso consiste en crear un nuevo mosaico multibandas que contenga tanto las bandas
del mosaico (las 7 bandas originales), más las 7 bandas creadas a partir de relaciones de
estas. Es decir, como salida tendremos un mosaico con 14 bandas. Para ir agregando
bandas a un mosaico se utiliza el constructor .addBands y el nombre de la variable que
contiene la banda que quiere agregar entre paréntesis.
Figura 14. Programación de mosaico multibandas
5.8. Lista de todas las bandas del mosaico a clasificar Este paso permite extraer los nombres de las bandas del mosaico multibandas que
contiene bandas del mosaico original (de 7 bandas) más las 7 relaciones de bandas, con
esto se pretende que al momento de aplicar el algoritmo de clasificación éste pueda tomar
decisiones en base a cada una de las 14 bandas por separado.
Figura 15 Construcción de listado de nombres de bandas para clasificar.
Mosaico de relaciones de bandas del paso anterior.
Constructor del listado de bandas con sus nombres
5.9. Crear las regiones de entrenamiento Consiste en extraer lo valores del mosaico multibandas en base a las clases de los puntos
de muestra. Se utiliza el constructor .sampleRegions, el mosaico, la unión de muestras y
la columna que contiene los valores de las coberturas (clase) y el tamaño de pixel de
salida.
Figura 16. Configuración de las regiones de entrenamiento
5.10. Entrenar las muestras en base al algoritmo En este paso se configura el algoritmo a utilizar para la clasificación, existe una gran
cantidad de algoritmos, sin embargo, los mas utilizados son el CART y el Random Forest.
En este ejemplo se utiliza el CART pero para utilizar el Random Forest (randomForest)
solamente se debe cambiar el nombre le algoritmo .cart por .randomForest y volver a
correr el script.
NOTA: Cada vez que se cambia el algoritmo los resultados tienden a cambiar, por ende,
se debe ir agregando más muestras para que el algoritmo aprenda y corrija la clasificación
cada vez que se corra el script.
Figura 17.Configuración del algoritmo de engtrenamiento
Mosaico multibandas del que se extraerán los valores
Constructor de regiones de muestras
Archivo de muestras para las regiones de entrenamiento
Columna de las muestras que contiene los valores de cada cobertura
Escala o tamaño del pixel de las muestras de entrenamiento
Método o algoritmo de entrenamiento
Constructor de firmas espectrales
Regiones de muestra para entrenar
Categorías a entrenar
Listado de bandas para entrenar
Para encontrar los nombres correctos de los algoritmos se pueden buscar en documentos
(Docs) escribiendo ee.Classifier y mostrará todos los algoritmos de clasificación. Cabe
destacar que la forma en que se entrenan los algoritmos en unos casos la configuración es
diferente.
Figura 18. Algoritmos de clasificación en GEE
5.11. Clasificar el mosaico en base a las muestras entrenadas Una vez entrenando las muestras en base al algoritmo que se quiere utilizar, se procede
hacer la clasificación. Aquí se utiliza el mosaico, el listado de bandas y las muestras
entrenadas con el algoritmo.
Figura 19. Configuración de la clasificación de la cobertura
Mosaico multibandas a clasificar
Nombres de las bandas sobre las que tomará decisiones para clasificar
Firmas espectrales basadas en el algoritmo de clasificación
5.12. Visualizar la clasificación Para ver los resultados de la clasificación se utiliza el constructor Map.addLayer, se
configura los valores a mostrar (1 Bosque, 2 No_Bosque, 3 Agua) después los colores en
código y el nombre de salida que mostrará en las capas de la ventana de visualización
Figura 20. Configuración de visualización de la clasificación
Figura 21. Vista de la clasificación en la ventana de visualización del editor de código
5.13. Exportar la clasificación a la nube de Google Drive Para descargar la clasificación, primero es necesario exportarlo a la nube de GD antes de
descargar a nuestra computadora, para ello se utiliza el constructor Export.image.toDrive
mismo que exporta la clasificación en base a los parámetros de salida que se le programen.
Primero se llama la clasificación a descargar, posteriormente se le escribe la descripción
que es el nombre que debe mostrar en las tareas de descarga y después el nombre del
archivo que será el mismo con el que se descargará a la nube de GD, por último se asigna
la escala de descarga (tamaño de pixel) y el máximo de pixeles a descargar, ya que si no
se le escribe este dato, el programa por defecto tiene un límite bajo de cantidad de pixeles
y no permite descargar mosaicos grandes.
Código menor en la clasificación
Código menor en la clasificación
Código color verde
Código color amarillo
Código color azul
Nombre a mostrar en el visor de capas
Archivo de la clasificación a visualizar
NOTA: Al momento de correr por última vez el script para descargar la clasificación es
necesario que este se vea completo en el visualizador ya que el exportador asume que
solamente debe descargar lo que muestra la pantalla de visualización, para esto si es
necesario desactivar el centrador de objetos si se ha programado; para ello se anteponen
dos plecas “//” y de esta manera ubiquemos el mosaico en la pantalla manual mente con
la manito y correrlo de nuevo para descargarlo tal como deseamos.
Figura 22. Programación para la descarga del mosaico libre de nube
Una vez que se haya programado la sección de descarga o exportación nos mostrará el
archivo en tareas (Tasks) listo para descargar, debemos de dar clic en RUN y
esperar a que termine la descarga para posteriormente ir a la nube de Google drive a
descargar
Figura 23. Pasos para correr la descarga de la clasificación.
Constructor
para exportar
clasificación
Mosaico de
clasificación a
descargar
Configuración de
máximo de pixeles
a descargar en el
mosaico de salida
Escala o tamaño de
pixel del mosaico
Nombre con el que
se exportará la
clasificación a GD
Nombre que
mostrará en las
tareas (donde se
debe correr para
descargar)
v v
2
1
Una vez dando clic en RUN se nos mostrará una nueva ventana con la información
del mosaico a descargar, donde debemos dar clic en Run y el mosaico empezará a
descargarse. Una vez finalizada la descarga puede ir a la nube de GD y descargar el
archivo que se exportó
Figura 24. Ventana de características de exportación del mosaico
5.14. Descargar de la clasificación de la nube de Google drive GEE exporta a la nube de GD dos archivos y les agrega varios ceros al nombre. Para
asegurar que se descargará toda la información se debe descargar el que más peso en MB
tiene. Al dar clic derecho se despliega una ventana de opciones, clic en descargar
Figura 25. Descargar clasificación de la nube de GD y ejemplo de visualización en un SIG
Vista del check de la
clasificación cuando
se ha exportado
1
2 Visualización de la clasificación en un SIG
5.15. Script completo
//SECCION A
//Esta sección es la de generación de mosaicos libres de nube
//Ir a Sección 2 para empezar la parte específica de clasificación de cobertura
//CARGAR LOS LÍMITES DEL ÁREA DE ESTUDIO
//Límite de la tabla dinámica de la nube de GD
var limite1 = ee.FeatureCollection("ft:1rpd6kIewFWHrgX84jKwW30jeazmuiQJgXg-Pv759");
//Límite de shapefile como tabla de la nube de GEE
var limite2 = ee.FeatureCollection("users/omarorellanahn/buffer_simplicado_hn_geo");
//VISUALIZAR LOS LÍMITES DEL ÁREA DE ESTUDIO
/*NOTA: Estos dos límites son la misma área geografica, sin embargo se agrega los dos
para mostrar que cualquiera de las dos formas puede ser utilizada*/
//Límite de la nube de Google Drive
Map.addLayer(limite1, {color: 'd63000'},'LIMITE_GD' ,false, 0.5);
//Límite de la nube de Google Earth Engine
Map.addLayer(limite2, {color: '6dd646'},'LIMITE_GEE',false, 0.5);
//LLAMAR COLLECCIONES DE IMÁGENES
//Landsat 5
var Landsat_5_1= ee.ImageCollection ("LANDSAT/LT5_L1T");
var Landsat_5_2= ee.ImageCollection ("LANDSAT/LT05/C01/T1");
var Landsat_5_3= ee.ImageCollection ("LANDSAT/LT05/C01/T1_TOA");
var Landsat_5_4= ee.ImageCollection ("LANDSAT/LT05/C01/T1_SR");
//Landsat 7
var Landsat_7_1= ee.ImageCollection ("LANDSAT/LE7_L1T");
var Landsat_7_2= ee.ImageCollection ("LANDSAT/LE07/C01/T1");
var Landsat_7_3= ee.ImageCollection ("LANDSAT/LE07/C01/T1_TOA");
var Landsat_7_4= ee.ImageCollection ("LANDSAT/LE07/C01/T1_SR");
//Landsat 8
var Landsat_8_1= ee.ImageCollection ("LANDSAT/LC8_L1T");
var Landsat_8_2= ee.ImageCollection ("LANDSAT/LC08/C01/T1");
var Landsat_8_3= ee.ImageCollection ("LANDSAT/LC08/C01/T1_TOA");
var Landsat_8_4= ee.ImageCollection ("LANDSAT/LC08/C01/T1_SR");
//FILTRAR LA COLECCIÓN DE IMAGENES
/*Filtros, primero hace un filtro por la fecha, segundo se hace con el límite
y tercero que seleccione solo las imágenes con un porcentaje de nubosidad menor a 30%*/
var Filtro2017_l8 = Landsat_8_2.filterDate('2016-01-01', '2018-10-14')
.filterBounds(limite1)
.filterMetadata('CLOUD_COVER', 'less_than', 30);
//IMPRIMIR EL RESULTADO DEL FILTRO
print(Filtro2017_l8);
//APLICAR ALGORITMO PARA CONSTRUIR EL MOSAICO CORREGIDO AL TOPE DE
LA ATMOSFERA
/*Aplicación de algoritmo para construcción de mosaico
eligiendo los pixeles con valores concentrados al percentil 50,
con un porcentaje de nubosidad del pixel de 10 y que elija máximo 40 imágenes para construirlo
*/
var m2017_l8 = ee.Algorithms.Landsat.simpleComposite(Filtro2017_l8, 50, 5, 40);
//CORTAR EL MOSAICO CON EL LÍMITE DEL ÁREA DE ESTUDIO
var m2017_l8_cortado = m2017_l8.clip(limite1);
//VISUALIZAR EL MOSAICO
//con una combinación de bandas en inflrarojo
Map.addLayer(m2017_l8_cortado,{'bands': ['B5', 'B6', 'B4'], 'min': 0, 'max':
128},'Mosaico_2012',false);
//CENTRAR EL ÁREA DE ESTUDIO
/*Para que cada vez que corra el script aunque esten en otro lugar pueda mosatrar su área de
estudio*/
Map.centerObject(limite1, 7);
//DESCARGAR EL MOSAICO
/*Para descargar una image o un mosaico en formato tif priero se exporta a Google Drive
de la siguiente manera*/
/*Export.image.toDrive
({image: m2017_l8_cortado.select(['B5', 'B6', 'B4']),
description: 'Mosaico_2017',
fileNamePrefix: 'Mosaico_2017_L8',
scale:30,
maxPixels: 1e12,});*/
//SECCION B
/*Aquí inician los pasos para el protocolo de clasificación asumiendo que ya se ha ledido el
protocolo*/
//de generación de mosaicos libres de nube
//UNIÓN DE MUESTRAS
//se utiliza el constructor .merge y se agrega una por una cada categoría
var muestras = Bosque.merge(No_Bosque).merge(Agua);
//RENOMBRAR Y SELECCIONAR BANDAS DE IMÁGENES NECESARIAS PARA LA
CLASIFICACIÓN
//Nomre de las bandas más utilizadas para la clasificación
var nombres_bandas = ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7' ];
//Selección de las bandas de Landsat 8
/*Dado aque Landsat 8 cuenta con una banda aerosol (B1) la vamos a excluir y hacerla como
Landsat 7*/
var L8 = function(image) {return image.select(['B2','B3','B4', 'B5', 'B6', 'B10','B7' ],
nombres_bandas);};
//Aplicar la función de seleccion de bandas y asignación de nombres
var m2017 = L8(m2017_l8_cortado);
//CREAR RELACIONES DE BANDAS PARA MEJORAR LA FUTURA CLASIFICACIÓN
/*Relacciones de bandas para construir nuevas bandas con algunas normalizaciones que
permiten resultados más precisos en las clasificaciones dado a que el algoritmo tiene
más información para aprender y decidir que cobertura asignar a cada pixel*/
var rat34_17 = m2017.select("B3").divide(m2017.select("B4"));
var rat45_17 = m2017.select("B4").divide(m2017.select("B5"));
var rat46_17 = m2017.select("B4").divide(m2017.select("B6"));
var rat47_17 = m2017.select("B4").divide(m2017.select("B7"));
var rat56_17 = m2017.select("B5").divide(m2017.select("B6"));
var rat57_17 = m2017.select("B5").divide(m2017.select("B7"));
var rat67_17 = m2017.select("B6").divide(m2017.select("B7"));
//CREAR MOSAICO MULTIBANDAS
/*Creacion de un mosaico que integra las bandas originales de la imagen con bandas
renombradas más todas las bandas generadas por las relaciones de bandas*/
var m2017_RB = m2017.addBands(rat34_17)
.addBands(rat45_17)
.addBands(rat46_17)
.addBands(rat47_17)
.addBands(rat56_17)
.addBands(rat57_17)
.addBands(rat67_17);
//LISTA DE RECONOCIMIENTO DE NOMBRES DE LAS BANDAS DEL MOSAICO
/*Esta sección permite extraer los nombres de las bandas para que en pasos posteriores el
algoritmo toe decisiones en base a los valores de cada una de las bandas por separado*/
var bands= m2017_RB.bandNames();
//REGIONES DE MUESTRA
// Superponer los puntos de muestras en el mosaico para hacer el entrenamiento.
var entrenamiento = m2017_RB.sampleRegions({
collection: muestras,
properties: ['clase'],
scale: 30
});
// Entrene a un clasificador CART con parámetros predeterminados.
var entrenando = ee.Classifier.cart().train(entrenamiento, 'clase', bands);
// Clasifica la imagen con las mismas bandas utilizadas para el entrenamiento.
var clasificacion = m2017_RB.select(bands).classify(entrenando);
//VISUALIZACIÓN DE LA CLASIFICACIÓN
Map.addLayer(clasificacion, {min: 1, max: 3, palette: ['34a726', 'fff046', '153dff']},
'classification');
//DESCARGA DE LA CLASIFICACIÓN
/*Para descargar un mosaico o clasificación primero se exporta a google drive
y despues de esta nube a nuestro computador*/
Export.image.toDrive
({image: clasificacion,
description: 'clasificacion',
fileNamePrefix: 'clasificacion2017',
scale:30,
maxPixels: 1e12,});
VI. BIBLIOGRAFÍA
FAO. (2012). Directrices voluntarias sobre monitoreo forestal nacional. Recuperado de
http://www.fao.org/forestry/38632-0b89fc0547b243713e7e5c6178c57a27.pdf
Google Earth Engine. (2018). Recuperado 17 de octubre de 2018, de
https://earthengine.google.com
IDEAM. (s. f.). Programa de Monitoreo y Seguimiento a los Bosques y Áreas Forestales
PMSB. Recuperado de
https://www.wavespartnership.org/sites/waves/files/documents/WAVES_Progra
ma-de-MonitoreoySeguimiento-a-los-Bosquesy%C3%A1reas-forestales-PMSB-
26%20sep.pdf
Utilizar las imágenes Landsat (gratuitas) en tu SIG | Blog SIG & Territorios. (2017).
Recuperado 20 de octubre de 2018, de
https://www.sigterritoires.fr/index.php/es/utilizar-las-imagenes-landsat-
gratuitas-en-tu-sig/
VII. ANEXOS
Función Descripción
Colecciones
ee.FeatureCollection
FeatureCollections se puede construir a partir de
los siguientes argumentos:
- Una cadena: se asume que es el nombre de una
colección.
- Una geometría única.
- Una sola característica.
- Una lista de características.
- Un objeto computado: reinterpretado como
una colección.
ee.Image
Un objeto para representar una imagen de GEE.
Este constructor acepta una variedad de
argumentos:
- Una cadena: un ID de activo de EarthEngine,
- Una cadena y un número - un ID y versión de
activo de EarthEngine,
- Un número o EEArray: crea una imagen
constante,
- Una lista: crea una imagen fuera de cada
elemento de la lista y las combina en una sola
imagen,
- Una ee.Image: devuelve el argumento,
- Nada: da como resultado una imagen
transparente vacía.
Geoproceso
.clip Recorta una imagen en una Geometría o
Característica.
.select Devuelve la colección de imágenes con las
bandas seleccionadas.
.merge
Fusiona dos colecciones en una sola. El
resultado tiene todos los elementos que estaban
en cualquier colección.
.randomColumn
Agrega una columna de números
pseudoaleatorios deterministas a una colección.
Los números son números de coma flotante de
precisión doble en el rango de 0.0 (inclusive) a
1.0 (exclusivo).
Filtros
.filter Aplicar un filtro a esta colección.
.filterDate Atajo para filtrar una colección por un rango de
fechas
.filterBounds
Atajo para filtrar una colección por
geometría. Los elementos de la colección con
una huella que no se interseca con los límites se
excluirán cuando se evalúe la colección.
ee.Filter.neq El filtro a metadatos no es igual al valor dado.
ee.Filter.and Combina dos o más filtros utilizando booleano
AND.
Función Descripción
.filterMetadata
Atajos para filtrar una colección por
metadatos. Esto es equivalente a this.filter
(ee.Filter.metadata (...)).
Operaciones
.sum
Reduce una colección de imágenes calculando
la suma de todos los valores en cada píxel en la
pila de todas las bandas coincidentes. Las
bandas se emparejan por nombre.
.divede Divide el primer valor por el segundo,
devolviendo 0 para la división por 0.
.mean
Reduce una colección de imágenes calculando
la media de todos los valores en cada píxel en la
pila de todas las bandas coincidentes.
.min Sobre una base de elementos, selecciona el
mínimo de los valores primero y segundo.
.multiply Sobre una base de elementos, multiplica el
primer valor por el segundo.
Algoritmos
ee.Algorithms.Terrain Calcula la pendiente, el aspecto y una
sombreada simple desde un DEM de terreno.
ee.Algorithms.Landsat.simpleComposite
Calcula un compuesto Landsat TOA a partir de
una colección de escenas en bruto Landsat.
Aplica la calibración estándar de TOA y luego
asigna una puntuación de nube a cada píxel
usando el algoritmo SimpleLandsatCloudScore.
Selecciona el rango más bajo posible de
puntajes de nube en cada punto y luego calcula
los valores de percentil por banda a partir de los
píxeles aceptados. Este algoritmo también
utiliza el algoritmo LandsatPathRowLimit para
seleccionar solo las escenas menos nubladas en
regiones donde hay más de max.
Clasficador
.Classifier.randomForest Crea un clasificador de Rifle Serial vacío, que
usa el algoritmo de bosque aleatorio.
.train
Entrena al Clusterer en una colección de
características, utilizando las propiedades
numéricas especificadas de cada característica
como datos de entrenamiento. La geometría de
las características se ignora.
.setOutputMode
Establece el modo de salida. El modo de salida
puede ser:
- CLASIFICACIÓN (predeterminado): la salida
es el número de clase.
- REGRESIÓN: La salida es el resultado de una
regresión estándar.
- PROBABILIDAD: La salida es la
probabilidad de que la clasificación sea
correcta.
No todos los tipos de clasificadores admiten los
modos REGRESSION y PROBABILITY.
Función Descripción
.classify Clasifica cada característica en una colección.
Diccionarios
.rename Renombrar elementos en un diccionario.
.map Mapea un algoritmo sobre una colección.
Operadores
.eq Sobre una base de elementos, devuelve 1 si el
primer valor es igual al segundo.
.gte Sobre una base de elementos, devuelve 1 si el
primer valor es mayor o igual que el segundo.
.lte En términos de elementos, devuelve 1 si el
primer valor es menor o igual que el segundo.
.and
Devuelve un 1 en cada posición de bit para el
cual los bits correspondientes de ambos
operandos son 1.
.not Invierte los valores de su operando.
.set Establecer un valor en un diccionario.
Análisis Espacial de Imágenes
.updateMask
Actualiza la máscara de una imagen en todas las
posiciones donde la máscara existente no es
cero. La imagen de salida conserva los
metadatos y la huella de la imagen de entrada.
.mask
Crea un subconjunto dividiendo cada posición
en una matriz de entrada que es paralela a un
elemento distinto de cero de la matriz de
máscara dada
.expression
Evalúa una expresión aritmética en una imagen,
posiblemente involucrando imágenes
adicionales.
.addBands
Devuelve una imagen que contiene todas las
bandas copiadas desde la primera entrada y
bandas seleccionadas desde la segunda entrada,
opcionalmente sobrescribiendo las bandas en la
primera imagen con el mismo nombre. La nueva
imagen tiene los metadatos y la huella de la
primera imagen de entrada.
.bandNames Devuelve una lista que contiene los nombres de
las bandas de una imagen.
.reducerRegions
Aplique un reductor sobre el área de cada
característica en la colección dada.
El reductor debe tener el mismo número de
entradas que la imagen de entrada tiene bandas.
.sampleRegions
Muestra los píxeles de una imagen en una o más
regiones, devolviéndolos como
FeatureCollection. Cada función de salida
tendrá 1 propiedad por banda en la imagen de
entrada, así como las propiedades especificadas
copiadas de la función de entrada. Tenga en
cuenta que las geometrías se ajustarán a los
centros de píxeles.
Función Descripción
.normalizedDifference
Calcula la diferencia normalizada entre dos
bandas. Si las bandas a usar no están
especificadas, usa las dos primeras bandas. La
diferencia normalizada se calcula como (primer
- segundo) / (primer + segundo).
Imprimir
Imprime en la ventana de la consola los
resultados de una operación o presental la
visualización de los metadatos de una colección
en específico.
Visualización de mapa
Map.addLayer Agrega un objeto al visor de EE dado al mapa
como una capa.
Map.centerObject Centra la vista del mapa en un objeto dado.
Descarga
Export.image.toDrive
Crea una tarea por lotes para exportar una
imagen como ráster a la unidad de Google
Drive.