Cómo obtener un ráster de dirección de un vector según la convención de la rosa de los vientos

En el artículo anterior se consideró la forma de obtener dos rásteres con values aleatorios en QGIS con el fin de ser usados para obtener un ráster que refleje la dirección de un vector según la convención de la rosa de los vientos. En álgebra vectorial la representación de un vector en coordenadas polares considera que los ángulos comienzan a medirse en sentido contrario a las agujas del reloj a partir de la parte positiva del eje de las abscisas en un sistema cartesiano de coordenadas. En cambio, en los SIG, los ángulos se miden en el sentido de las agujas del reloj y a partir de la porción positiva del eje de las ordenadas; tal como se aprecia en la imagen siguiente:

viento1

Tomando en cuenta dichas convenciones, verificadas a través de una hoja de cálculo, el álgebra de mapas debería funcionar con las siguientes expresiones:

("grid1@1" = 0)*("grid2@1" >= 0)*0+
("grid1@1" = 0)*("grid2@1" < 0)*180+
("grid1@1" > 0)*("grid2@1" = 0)*90+
("grid1@1" < 0)*("grid2@1" = 0)*270+
("grid1@1" > 0)*("grid2@1" > 0) *(90+atan ("grid2@1" / "grid1@1" )*(180/3.14159265358979))+
("grid1@1" > 0)*("grid2@1" < 0) *(90+atan ("grid2@1" / "grid1@1" )*(180/3.14159265358979))+
("grid1@1" < 0)*("grid2@1" < 0) *(270+atan ("grid2@1" / "grid1@1" )*(180/3.14159265358979))+
("grid1@1" < 0)*("grid2@1" > 0) *(270+atan ("grid2@1" / "grid1@1" )*(180/3.14159265358979))

tomando en cuenta lo que pasa en los puntos singulares, es decir, cuando “grid1@1” = 0 (división por cero). Cuando se aplican estas condiciones en el raster calculator, para obtener el ráster que hemos llamado viento1.tif, se obtiene el resultado que se encuentra en la imagen siguiente:

viento2

Se ha incrementado el zoom para visualizar mejor que existen zonas coloreadas que sólo son posibles si en esos píxeles hubiese transparencia. Por defecto, eso sólo ocurre cuando se tienen “no data” en el ráster. Esto se verifica con la herramienta de información; tal como se detalla en la imagen y está presente precisamente en el caso de las singularidades, es decir, cuando “grid1@1” = 0 (división por cero).

Antes de intentar cualquier otra cosa vamos a corroborar que la dirección viene correctamente expresada para cualquier punto diferente a los singulares (0, 180). Para ello, vamos muestrear diferentes combinaciones pertenecientes a los cuatro cuadrantes. Los resultados fueron los siguientes:

viento3

que coinciden exactamente con los producidos a través de la hoja de cálculo. Ahora vamos a obtener un ráster, viento2.tif, con el código siguiente en el raster calculator:

("grid1@1" = 0)*("grid2@1" > 0)*0+
("grid1@1" = 0)*("grid2@1" < 0)*180+
("grid1@1" > 0)*("grid2@1" = 0)*90+
("grid1@1" < 0)*("grid2@1" = 0)*270+
("grid1@1" != 0)*("grid2@1" != 0)*(-100)

La imagen a continuación da cuenta de que produce los valores que faltan en viento1.tif que corresponden a los puntos singulares (naranja claro son 0, los amarillos 90, los verdes son 180, los azules son 270 y los rojos -100):

viento4

No obstante, es imposible combinar ambos rásteres, viento1.tif y viento2.tif, en uno sólo. Por alguna razón, el álgebra de mapas donde alguno de ellos incluya “no data” no puede realizarse en el raster calculator de QGIS. Trataremos de resolver este problema dentro de QGIS (sin apelar a GRASS o lenguaje R); tema de un post próximo.

Esta entrada fue publicada en QGIS, SIG, Software Libre. Guarda el enlace permanente.

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