sábado, 25 de marzo de 2017

Calcular orientación o dirección de líneas en QGIS

Al hacer adqusición de datos geofísicos en el mar, la embarcación debe realizar una serie de "líneas de adquisición" las cuáles por lo general son un conjunto de rutas paralelas entre si y otras perpendículares. En muchos casos se planifican para que sean norte-sur y este-oeste. Cada una de estas líneas es indentificada para facilitar el acceso a los datos asociados a ellas.

Recientemente recibí unas líneas de adqusición que formaban una cuadrícula, con variaciones debido a que las embarcaciones no pueden mantener un rumbo exacto durante su navegación. Estas líneas tenían un inconveniente, en realidad eran un conjunto muy grande de segmentos, cada segmento era un objeto espacial. La tarea que debía hacer era que cada línea se convirtiera en un objeto único en lugar de un conjunto de objetos. La primero que se me ocurrió hacer fue seleccionar las líneas de acuerdo a su orientación para luego unirlas. Sin embargo, primero debía saber la dirección de cada línea o segmenteo. Esto lo pude hacer incorporando un campo nuevo en el que se introdujo automáticamente el valor de la orientación o dirección de las líneas. La solución la obtuve aquí y a continuación les dejo la expresión que deben usar en el campo nuevo para optener la dirección de las líneas.
case
when yat(-1)-yat(0) < 0 or yat(-1)-yat(0) > 0 then 
(atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + 
(180 *
(((yat(-1)-yat(0)) < 0) + 
(((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)
))
when ((yat(-1)-yat(0)) = 0 and (xat(-1) - xat(0)) >0) then 90
when ((yat(-1)-yat(0)) = 0 and (xat(-1) - xat(0)) <0) then 270
end
 Posteriormente publicaré el resto del procedimiento con el que solucioné mi problema. 

miércoles, 1 de febrero de 2017

MSP GEOTRANS: Una herramienta de código abierto para transformación de coordenadas

MSP (Mensuration Services Program) GEOTRANS (Geographic Translator) es una aplicació que permite convertir facilmente coordenadas geográficas entre una gran variedad de sistemas de coordenadas, proyecciones y datums. Geotrans corre en Microsoft Windows y Linux. También está disponible una versión para Android que es capaz de realizar un subconjunto de las conversiones soportadas por las versiones de Windows y Linux.
Para descargar la aplicación debes dirigirte a http://earth-info.nga.mil/GandG/geotrans/.
También está disponible en los repositorios actuales de Debian y sus derivados como Canaima y Ubuntu. Por lo que puedes instalarlo mediante el siguiente comando en un terminal:

sudo apt-get install geotranz



Crear base de datos espaciales local Spatialite con QGIS

Trabajar con bases de datos espaciales locales tiene grandes ventajas, una de las que más me gusta es la de poder contener en un solo archivo una gran cantidad de capas, a diferencia de los comúnmente usados shapefiles, que por cada capa existen diversos archivos.
A continuación explicaré lo sencillo que es crear una base de datos local Spatialite en QGIS.
Primero debes verificar que tienes el Panel del Explorador activo.

Si este panel no se encuentra activo, puedes habilitarlo haciendo clic derecho sobre la barra de herramientas y selecciona Panel del Explorador. Otra vía para hacerlo es ir a la barra de herramientas y seleccionar en el menú la opción “Ver” y luego “Páneles”.
Una vez activo el Panel de Explorador nos deplazamos hasta el final con el cursor hasta que podamos observar diferentes opciones de conexión.


Se nos mostrará la opción Spatialite. Al hacer clic derecho se tendremos la opción de conectar a una base de datos ya existente y la de crear una base de datos nueva. Bastará con hacer clic sobre la última opción, seleccionar la ubicación y el nombre de la base de datos nueva. De esta forma tendremos nuestra base de datos lista para importar nuestros archivos vectoriales.