Reclasificación mediante la calculadora de rásters en QGIS

Logo QGISLa calculadora de rasters permite reproducir la funcionalidad de los algoritmos de procesamiento de rasters. En esta ocasión voy a reproducir la reclasificación de los valores de un raster en diferentes rangos. Es decir la transformación de una escala numérica contínua a una escala numérica discreta. En QGIS se puede encontrar la calculadora en el Menú "Raster/Raster Calculator". Y se requiere tener la capa cargada en la vista.

Para este ejemplo emplearé una capa de temperatura media con valores desde -1.3 a 27.8 grados (Figura 1) para obtener una capa con valores discretos (Figura 2).

Capa raster originalCapa raster reclasificada

Los rangos serán definidos por intervalos conformados por múltiplos de 5 grados. Los rangos aplicables a este ejemplo serán:

  • rango 1) menores o iguales a 0 serán igual a 0
  • rango 2) >0 hasta 5 serán igual a 5
  • rango 3) >5 hasta 10 serán igual a 10
  • rango 4) >10 hasta 15 serán igual a 15
  • rango 5) >15 hasta 20 serán igual a 20
  • rango 6) >20 hasta 25 serán igual a 25
  • rango 7) >25 serán igual a 30

La estructura básica de este cálculo está conformada por tres tipos de cálculos:

Se requiere estructurar las condiciones que deben cumplirse en cada rango de valores. Esto quiere decir que es necesario operadores de comparación y operadores condicionales. En nuestro caso se utilizarán tres tipos de condiciones.

  • Para el rango uno: Todos los valores del raster que sean menores o iguales a 0 se representa de la siguiente forma
"Raster" <= 0
  • Para el último rango: Todos los valores del raster que sean mayores a 25 se representa de la siguiente forma
"Raster" > 25

 Para los rangos intermedios: Todos los valores mayores al límite inferior y menores o giaules al límite superior se escribe de la siguiente forma. En este caso se requiere identificar los pixeles que cumplan con dos condiciones basicas. En esta ocasión es necesario emplear el condicional "AND" para concatenar las dos condiciones.

("Raster" > 0) AND ("Raster" <= 5)
("Raster" > 5) AND ("Raster" <= 10)
("Raster" > 10) AND ("Raster" <= 15)
("Raster" > 15) AND ("Raster" <= 20)
("Raster" > 20) AND ("Raster" <= 25)

 Es necesario asignar el nuevo valor a cada rango. Para ello vamos a emplear el operador de multiplicación (*) en cada estructura de condiconales definidas. En nuestro ejemplo quedaria asi:

("Raster" <= 0)*0
(("Raster" > 0) AND ("Raster" <= 5))*5
(("Raster" > 5) AND ("Raster" <= 10))*10
(("Raster" > 10) AND ("Raster" <= 15))*15
(("Raster" > 15) AND ("Raster" <= 20))*20
(("Raster" > 20) AND ("Raster" <= 25))*25
("Raster" > 25)*30

 Ya en este punto se debe unir todas estas expresiones en una sola y para eso se empleará el operador de suma. La expresión quedará de la siguiente forma. NOTA: Es importante utilizar los paréntesis para agrupar las operaciones y así definir el orden de las operaciones.

("Raster" <= 0)*0 + (("Raster" > 0) AND ("Raster" <= 5))*5 + (("Raster" > 5) AND ("Raster" <= 10))*10+ (("Raster" > 10) AND ("Raster" <= 15))*15 + (("Raster" > 15) AND ("Raster" <= 20))*20 + (("Raster" > 20) AND ("Raster" <= 25))*25 + ("Raster" > 25)*30

Finalmente ingresamos la operación construida en la calculadora de rasters (Figura 3). Es importante que la palabra raster de la expresión sea reemplazada por el nombre del raster que se muestre cuando se abre la calculadora. En este ejemplo será:

("Raster@1" <= 0)*0 + (("Raster@1" > 0) AND ("Raster@1" <= 5))*5+ (("Raster@1" > 5) AND ("Raster@1" <= 10))*10 + (("Raster@1" > 10) AND ("Raster@1" <= 15))*15 + (("Raster@1" > 15) AND ("Raster@1" <= 20))*20 + (("Raster@1" > 20) AND ("Raster@1" <= 25))*25 + ("Raster@1" > 25)*30

 Ventana Raster calculator de QGIS

Para completar el ejemplo mostraré el resultado obtenido mediante este procedimiento. La figura 4 muestra el perfil de un corte representado por la línea roja sobre el mapa. En color azul se muestra la línea que representa los valores de la capa reclasificada y en rojo los valores originales.


Compártelo si te fue útil.

Comentarios   

+1 #7 Gabriel Gaona 09-07-2017 23:59
Cito a martin lopez:
excelente aporte, sin embargo como puedo esta reclasificación aplicarla a una capa vectoria de poligonos y se reclasifique en el valor mas frecuente en cada poligono (moda)


De la misma manera, para capas vectoriales se puede utilizar la misma lógica en la calculadora de campos. También puedes utilizar expresiones SQL del tipo CASE + WHEN + THEN + ELSE: Aquí tienes un ejemplo de esto https://gis.stackexchange.com/a/236641

La moda podrías obtenerla usando la función mayority() o en su defecto una función Python personalizada.
Citar
+1 #6 martin lopez 07-06-2017 22:42
excelente aporte, sin embargo como puedo esta reclasificación aplicarla a una capa vectoria de poligonos y se reclasifique en el valor mas frecuente en cada poligono (moda)
Citar
+1 #5 rube 19-10-2016 04:07
muy bueno, me sirvió bastante
Saludos
Citar
0 #4 Gabriel Gaona 09-09-2016 22:47
Cito a JESSIT MAMANI:
HOLA TENGO UN PROBLEMA NO RESULTO QUISIERA AYUDA CON URGENCIA TENGO UNA BASE DE DATOS DE CATASTRO Y LA ENLACE CON QGIS AHORA, TENGO LOTES QUE TIENEN VARIOS DUEÑOS Y SOLO ME MUESTRA AL PRIMERO


Jessit,
No entiendo tu pregunta. ¿Es una base de datos relacional? Quizá dependa de como estás haciendo tu consulta, pero no puedo ayudarte mucho si no tengo detalles de lo que intentas hacer.
Citar
+2 #3 JESSIT MAMANI 09-09-2016 16:54
HOLA TENGO UN PROBLEMA NO RESULTO QUISIERA AYUDA CON URGENCIA TENGO UNA BASE DE DATOS DE CATASTRO Y LA ENLACE CON QGIS AHORA, TENGO LOTES QUE TIENEN VARIOS DUEÑOS Y SOLO ME MUESTRA AL PRIMERO
Citar
+1 #2 Francisco 04-05-2016 14:06
Muy buen aporte, con esto, qgis no tiene límites.
Citar
+1 #1 Juan Carlos Jerez 18-02-2016 10:44
Gracias :lol: ....
Citar

Escribir un comentario


Código de seguridad
Refescar