Reclasificar ráster usando reglas de reclasificación: módulo r.reclass de GRASS en QGIS

El módulo r.reclass de GRASS en QGIS permite crear una nueva capa ráster cuyos valores de categoría están basados sobre aquellas de un mapa ráster existente. En la publicación anterior se consideró, de manera arbitraría, la segregación de áreas de un ráster NDVI basado en una tabla de color para ráster, definida por usuario, usando GRASS en QGIS. Aunque arbitrarías, las reglas de color arrojaron resultados cercanos a la realidad porque se escogieron con base a la literatura. Sin embargo, por premura (ya que lo que se estaba probando eran procedimientos), en la publicación anterior se obviaron algunas convecciones que se utilizan en estos casos (por ejemplo, la referida a los colores magenta cuando se empleó el color cyan donde se debió usar un tono más oscuro del primero). No obstante, asumiendo como válidas las premisas que aquí se señalan:

Normalized Difference Vegetation Index

se asume esta nueva regla de color (los códigos de colores ahora se comentan para mejor interpretación):

-0.5   24:24:100  #dark blue; aguas profundas
0.00   0:0:255    #blue; aguas superficiales
0.30 255:0:255    #magenta; suelo
0.75  24:100:24   #dark green; vegetación "poco vigorosa"
1.00   0:255:0    #green; vegetación "vigorosa"

y se obtiene lo siguiente con el módulo r.colors.rules:

lo cual se ajusta a lo esperado y se va a usar como regla de reclasificación (excluyendo aspectos detectados en la imagen como nubes, humo producto de incendios de vegetación y la sombra que en ambos casos se proyecta).

Cuando se ejecuta el módulo r.rport en esta imagen (modificador para reportar valores en hectáreas), para determinar las estadísticas del ráster, se obtiene lo siguiente:

con intervalos de NDVI entre -1 y 1 (valores en punto flotante) que representan 215 clases. Sin embargo, la reclasificación con el módulo r.reclass sólo es posible con valores enteros por lo que si el ráster tiene valores en punto flotante estos se redondearán a la baja y, por la naturaleza de los valores de NDVI, se obtendría un ráster de salida sólo con valores de -1 y 0. Para solventar este problema es necesario multiplicar los ND en cada píxel por un factor constante a fin de disminuir los errores de redondeo. Esto se puede hacer con álgebra de mapas pero el módulo r.recode también ejecuta la tarea. Con este último, el archivo de recodificación es:

-1.:-0.5:-1000.:-500.  #blue dark; aguas profundas
-0.5:0.:-500.:0.       #blue; aguas superficiales
0.:0.3:0.0:300.        #magenta; suelo
0.3:0.75:300.:750.     #dark green; vegetación "poco vigorosa"
0.75:1.0:750.:1000.    #green; vegetación "vigorosa"

que produce un ráster con valores de “NDVI” entre -1000 y 1000 (verificados con r.report) y cuyo esquema de color es ahora:

-500   24:24:100  #dark blue; aguas profundas
0      0:0:255    #blue; aguas superficiales
300    255:0:255  #magenta; suelo
750    24:100:24  #dark green; vegetación "poco vigorosa"
1000   0:255:0    #green; vegetación "vigorosa"

La visualización del mismo (NDVI_esc_recode) es idéntica a aquella con valores entre -1.0 y 1.0 por lo cual no es necesario incluirla aquí.

Ahora sólo basta clasificar el NDVI_esc_recode con el módulo r.reclass. El archivo de reclasificación será:

-1000 thru -500 = 1  aguas profundas
 -500 thru    0 = 2  aguas superficiales
    0 thru  300 = 3  suelo
  300 thru  750 = 4  vegetacion "poco vigorosa"
  750 thru 1000 = 5  vegetacion "vigorosa"

y el ráster de salida NDVI_esc_reclass. Un r.report de éste último arroja lo siguiente:

y la visualización con la “rampa” de color siguiente:

1   24:24:100  #dark blue; aguas profundas
2      0:0:255    #blue; aguas superficiales
3    255:0:255  #magenta; suelo
4    24:100:24  #dark green; vegetación "poco vigorosa"
5   0:255:0    #green; vegetación "vigorosa"

da lugar a:

Una visualización del ráster NDVI_esc, con la “rampa” Normalized Difference Vegetation Index Color del módulo r.colors.table, señala el siguiente resultado:

Esto parece indicar que no existe ninguna relación entre “rampa de colores” y clasificación. Los clases deben ser “afinadas” de otra manera o esto tiene un bug (estoy usando la versión unstable 1.9.90-Alpha de QGIS).

Esta entrada fue publicada en GRASS, QGIS, SIG, Software Libre, Teledetección. Guarda el enlace permanente.

6 respuestas a Reclasificar ráster usando reglas de reclasificación: módulo r.reclass de GRASS en QGIS

  1. hola, se que es un post viejo pero estoy tratando de usar recode, tengo unos archivos raster de NDVI de una zona costera (en el cual tengo valores por abajo de -1), me interesa volver nulos los valores por debajo de 0 (que seria el agua) y dejar el resto de valores intactos, ¿podrías asesorarme? Gracias.

    • Eso es sencillo en GRASS. Con r.mapcalc usas una regla (tu_raster <= 0) para que todos los valores por debajo de cero te los convierta en null(). Sería algo así:

      .
      r.mapcalc new_raster="if(tu_raster <= 0, null(), tu_raster)"
      .
      

      Se interpreta así: "si tu raster es menor o igual que cero coloque null(); en caso contrario coloque el valor de tu raster".

  2. Ana A dijo:

    Hola, José. Le consulto. Calculé el NDVI de una imagen Lansat con QGIS. Cómo podría calcular el área ocupada por los rangos de valores del raster NDVI? Como muestra el ejemplo: http://i.stack.imgur.com/9qGRe.jpg

    Muchas gracias

  3. Ana A dijo:

    Hola José, estuve tratando de interpretar el script que modifico, pero no tengo conocimiento de programación. Podría por favor explicar, con un ejemplo, como obtener las áreas y sus porcentajes utilizando dicho script y como ejecutarlo.
    Muchas Gracias

  4. Will Quenta dijo:

    Tengo una pregunta. Cómo puedo llegar a reclasificar con polígonos un ráster sólo de un área de interés que ha sido confundida con otro tipo de de cobertura.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s