En este ejemplo se hace una clasificación No-Supervisada con gvSIG y Sextante y después solo se extrae la cobertura de interés por ejemplo los cuerpos de agua.
Un poco de teoría. Existen diferentes métodos o técnicas que permiten extraer los elementos presentes en una imagen. Para nuestro caso hablo de las cobertura en una imagen de satélite. Esos métodos de clasificación se agrupan en dos: supervisados y no supervisados, a nivel general.
Veamos los pasos.
1- Abrimos gvSIG y cargamos nuestra imagen de satélite. Para este ejercicio utilizo una imagen Landsat, realizo una composición RGB(432).
2- Abrimos Sextante y buscamos Herramientas de análisis para capas raster/Clasificación no supervisada(clustering)...
3- La configuramos así, en la pestaña Parámetros recomiendo seleccionar tres bandas, para este ejercicio la 4, la 3 y la 2. En numero de clases tomo 10 pero dependiendo de la imagen pueden ser menos o mas. Solo tener en cuenta que es mejor que el clasificador agrupe lo mas acertado posible y esto se logra con un buen trio de bandas y suficientes clases. En otras palabras si mi me interesan tres clases de la imagen es mejor clasificarla en 7 y después escoger la clases que me forma mis elementos de interés.
4- en la pestaña Parámetros Región de Análisis la opción que mejor resultado me proporcionado es utilizar la extensión de otra capa, después de esto pulsamos el botón aceptar.
5- Una muestra del resultado.
Entendiendo un poco, los que tenemos es una capa resultado que agrupa en 10 clases los pixeles de las bandas 4,3 y 2 que participan en el proceso. A cada clase le asigna un numero como identificador y sobre los cuales podemos hacer diferentes operaciones.
Hagamos el ejercicio de extraer los cuerpos de agua con ayuda de la calculadora raster. procedemos así,
1- Teniendo nuestra capa resultado activa, seleccionamos el botón de información (botón con letra i de color blanco sobre un circulo azul) y picamos lo que consideramos como cuerpo de agua. así podremos saber cual es el valor del pixel asignado a esta clase. Para nuestro ejemplo ahora sabemos que los cuerpos de agua tiene el valor 1
2- En Sextante buscamos Herramientas de calculo para capas raster/calculadora de mapas...
3- Escribimos la sintaxis para extraer el valor. Esto realmente se puede hacer de otras formas pero quiero que veas la alternativa con el condicional if(), básicamente funciona así, if(condición, proceso 1, proceso 2), el proceso 1 se ejecuta si la condición es verdadera de lo contrario (osea si la condición es falsa) se ejecuta el proceso 2. Nuestro condicional quedaría como , if(Agregados Band 1 == 1, 1, 0). Puedes anidar varios condicionales.
4- Podemos observar el resultado. De una forma muy rápida se extrajo el cuerpo de agua, aunque en el resultado muestra otras zona que seguramente no lo son, esto se puede mejorar con otra combinación de bandas, o aumentando el numero de clases, también puedes vectorizar y eliminar los polígonos que no necesitas.
Saludos y espero que les sirva...
Tarea: Trata de hacerlo con mas coberturas anidando por ejemplo dos condicionales, te explico como.
if(condición1, proceso 1, if(condición2, proceso 3, proceso 4)proceso 2), el proceso 1 se ejecuta si la condición1 es verdadera de lo contrario (osea si la condición1 es falsa) se evalúa la condición2, si esta es verdadera se ejecuta el proceso 3 y si la condición 2 es falsa se ejecuta el proceso 4.
Dejo un vídeo para mayor facilidad
[1] http://es.wikipedia.org/wiki/Reconocimiento_de_patrones
Un poco de teoría. Existen diferentes métodos o técnicas que permiten extraer los elementos presentes en una imagen. Para nuestro caso hablo de las cobertura en una imagen de satélite. Esos métodos de clasificación se agrupan en dos: supervisados y no supervisados, a nivel general.
Clasificación supervisada[1]
Este tipo de clasificación supone que
se tiene un conocimiento de la zona, osea somos capaces de
proporcionar o indicar cuales son la muestras (pixeles en diferentes
bandas) para entrenar el algoritmo. Luego del entrenamiento el
clasificador es capaz de determinar a que grupo o clase pertenecen el
resto de elementos (pixeles), y así generar una capa que representa,
por ejemplos las coberturas de una zona.
Clasificación no supervisada[1]
A diferencia de la supervisada se
supone que no contamos con conocimiento de la zona, por lo que no
podríamos entrenar los algoritmos para la clasificación
supervisada. En general en este tipo de clasificación parte de la
propiedades estadísticas y de vecindad que tiene la información
(pixeles en diferentes bandas) y se van agrupando formando clases de
manera iterativa. La clasificación no supervisada se la suele llamar
también clustering(agrupamiento).
1- Abrimos gvSIG y cargamos nuestra imagen de satélite. Para este ejercicio utilizo una imagen Landsat, realizo una composición RGB(432).
2- Abrimos Sextante y buscamos Herramientas de análisis para capas raster/Clasificación no supervisada(clustering)...
3- La configuramos así, en la pestaña Parámetros recomiendo seleccionar tres bandas, para este ejercicio la 4, la 3 y la 2. En numero de clases tomo 10 pero dependiendo de la imagen pueden ser menos o mas. Solo tener en cuenta que es mejor que el clasificador agrupe lo mas acertado posible y esto se logra con un buen trio de bandas y suficientes clases. En otras palabras si mi me interesan tres clases de la imagen es mejor clasificarla en 7 y después escoger la clases que me forma mis elementos de interés.
4- en la pestaña Parámetros Región de Análisis la opción que mejor resultado me proporcionado es utilizar la extensión de otra capa, después de esto pulsamos el botón aceptar.
5- Una muestra del resultado.
Entendiendo un poco, los que tenemos es una capa resultado que agrupa en 10 clases los pixeles de las bandas 4,3 y 2 que participan en el proceso. A cada clase le asigna un numero como identificador y sobre los cuales podemos hacer diferentes operaciones.
Hagamos el ejercicio de extraer los cuerpos de agua con ayuda de la calculadora raster. procedemos así,
1- Teniendo nuestra capa resultado activa, seleccionamos el botón de información (botón con letra i de color blanco sobre un circulo azul) y picamos lo que consideramos como cuerpo de agua. así podremos saber cual es el valor del pixel asignado a esta clase. Para nuestro ejemplo ahora sabemos que los cuerpos de agua tiene el valor 1
2- En Sextante buscamos Herramientas de calculo para capas raster/calculadora de mapas...
3- Escribimos la sintaxis para extraer el valor. Esto realmente se puede hacer de otras formas pero quiero que veas la alternativa con el condicional if(), básicamente funciona así, if(condición, proceso 1, proceso 2), el proceso 1 se ejecuta si la condición es verdadera de lo contrario (osea si la condición es falsa) se ejecuta el proceso 2. Nuestro condicional quedaría como , if(Agregados Band 1 == 1, 1, 0). Puedes anidar varios condicionales.
4- Podemos observar el resultado. De una forma muy rápida se extrajo el cuerpo de agua, aunque en el resultado muestra otras zona que seguramente no lo son, esto se puede mejorar con otra combinación de bandas, o aumentando el numero de clases, también puedes vectorizar y eliminar los polígonos que no necesitas.
Saludos y espero que les sirva...
Tarea: Trata de hacerlo con mas coberturas anidando por ejemplo dos condicionales, te explico como.
if(condición1, proceso 1, if(condición2, proceso 3, proceso 4)proceso 2), el proceso 1 se ejecuta si la condición1 es verdadera de lo contrario (osea si la condición1 es falsa) se evalúa la condición2, si esta es verdadera se ejecuta el proceso 3 y si la condición 2 es falsa se ejecuta el proceso 4.
Dejo un vídeo para mayor facilidad
[1] http://es.wikipedia.org/wiki/Reconocimiento_de_patrones