lunes, 9 de septiembre de 2019

Importar fotos georreferenciadas con QGIS.

Importar a nuestro lienzo de QGIS una serie de fotos con datos de localización es ahora una tarea tan rápida como sencilla gracias a la herramienta o algoritmo que el programa contiene de forma nativa. 

1.- Seleccionamos el algoritmo "Importar fotos geoetiquetadas".
Esto podemos hacerlo desde la caja de herramientas de procesos o desde el buscador general (Locator Bar) de la esquina inferior izquierda del programa. Escribiendo la expresión "importar" ya se nos filtran todos los algoritmos relacionados y nos es muy sencillo localizarlos. Doble click para activarlo.

2.- Configurar la ventana del algoritmo.
No tiene ningún misterio. Simplemente seleccionamos la carpeta que contiene las imágenes geolocalizadas y ya podemos ejecutarlo.
El algoritmo contiene otras opciones que podríamos usar como escanear recursivamente (incluyendo subcarpetas). Por defecto las imágenes se cargan en una capa temporal, pero podemos dejar guardadas las imágenes en un archivo físico al mismo tiempo. Lo mismo con aquellas imágenes sin datos geo (por defecto no se cargan).
Ejemplo de algoritmo ejecutado. Se han cargado 4 fotos geoetiquetadas pertenecientes a la carpeta de referencia en una capa temporal, y se muestra el aviso de no carga de otras 2 fotos de la carpeta sin datos de localización.
3.- Procesamiento posterior.
Ahora ya podemos comprobar la exactitud de la carga sobre mapa o guardar la capa temporal en el formato que queramos (las capas temporales se pierden al cerrar QGIS, aunque el propio programa nos avisaría al hacerlo).
Una opción muy interesante es usar la propia imagen importada como símbolo de la ubicación de las imágenes en el mapa (que por defecto se cargan con un marcador sencillo). Para ello aprovecharemos que la tabla de atributos creada por el programa al importar las imágenes contiene un campo con la ruta al archivo de la fotografía (si es que está todo pensado...).

Y aprovecharemos también que una de las posibilidades de simbología es asignar un marcador de relleno, dentro del cual podemos configurar un relleno de imagen ráster.
En la ruta a la imagen ráster que queremos usar de relleno, utilizamos la opción de suplantación de datos para seleccionar el campo photo que contiene la ruta a las imágenes, de forma que cada elemento se ve rellenado con su imagen correspondiente.
Luego simplemente es cuestión de ajustar tamaños proporcionales de símbolo, añadir un marco diferenciador o escoger la forma que nos parezca más apropiada para concluir el proceso y disponer de nuestros iconos personalizados al gusto.

P.D: Si necesitas asignar datos de localización a fotografías que no los tengan te recomendamos el software GeoSetter, un magnífico programa del cual elaboramos un vídeo explicativo en su momento.

lunes, 2 de septiembre de 2019

Point Cluster en QGIS: agrupación de puntos.

A partir de la versión 3 de QGIS tenemos la posibilidad de aplicar una nueva simbología a las capas de puntos. Se trata del famoso método Point Cluster que consiste en agrupar aquellos puntos situados a una determinada distancia unos de otros, en función de la escala de visualización y la distancia que se defina, en un punto único (o clúster) acompañado del rótulo que informa del número de puntos que lo forman.
Como una imagen vale más que mil palabras y estoy seguro que habéis visto esta simbología en muchos mapas, valga este GIF animado para entender de un plumazo la teoría:
Ejemplo con entidades bancarias de la isla de Mallorca.
A medida que vamos aumentando el zoom sobre la isla los clúster se van disgregando en clúster más pequeños que representan una cantidad menor de puntos. Cuando la escala es suficiente -según la distancia prefijada- y un clúster ya no representa más que un solo punto, deja de ser un clúster para convertirse en un elemento puntual individual.
Este sistema es especialmente útil en aquellos casos que queremos mantener el mapa lo suficientemente limpio de información a escalas en las que ya hay demasiada. A medida que la escala aumenta y disponemos de más terreno sobre el que representar información, los clúster se van disgregando proporcionalmente para no saturar el mapa con demasiados elementos. Obviamente es algo más absurdo para mapas fijos, pero de gran ayuda en mapas multiescala para web (o incluso simplemente para organizar nuestro lienzo en grandes proyectos). Resumida brevemente la teoría vamos a la práctica.

1.- Abrimos QGIS y cargamos una capa vectorial de puntos.
Pueden ser muy diversas las temáticas objeto. Nosotros hemos elegido para este artículo las cimas de la isla de Gran Canaria extraídas de OSM. Cargamos también la imagen Google de fondo como mera cuestión estética.

2.- Abrir el panel de estilo de capas.
Esto podemos hacerlo desde el icono del árbol de capas o pulsando F7, lo que nos abre panel acoplado al margen derecho del lienzo y sincronizado con la capa seleccionada. También podríamos acceder, en ventana flotante como siempre, desde las propiedades de la capa.... simbología.

3.- Configurar las opciones de simbología.
En el panel de estilos seleccionamos la opción Agrupación de puntos. La simbología de los elementos cambia automáticamente a los clúster por defecto.

Ahora tenemos todo el control de simbología, tanto de los elementos clúster como de los elementos individuales una vez desagrupados del clúster a cierta escala.

Tras unas sencillas modificaciones en cada categoría de símbolos y en la distancia de agrupamiento de clúster que más nos guste, lo tenemos hecho:

Este sería un proceso básico con símbolo único que por supuesto podemos mejorar o completar dependiendo de la información disponible en los atributos de los puntos. En este caso, como disponemos de la altitud de cada cima, podríamos usar una simbología basada en reglas para los elementos individuales que se van disgregando del clúster al aumentar escala.
Ejemplo con tres reglas de simbología diferentes para cimas sin dato de altitud, cimas con menos de 1000 metros y cimas con más de 1000 metros.
También podríamos por ejemplo añadir un etiquetado dependiente de la escala o cualquier otro parámetro habitual que consideremos oportuno para una correcta y proporcional representación de los elementos en el entorno de un visionado coherente a cada nivel de zoom. Saludos y hasta la próxima.

viernes, 30 de agosto de 2019

QGIS complementos: Track Profile to Web.

Uno de los complementos para QGIS que nos ha resultado más útil y atractivo últimamente es Track Profile to Web, o lo que es lo mismo generar un perfil de un track en formato web. Su repositorio de código está disponible en GitHub y podemos instalarlo con facilidad desde el Administrador de complementos de QGIS de la manera habitual.
Complemento disponible a través del administrador de QGIS.
¿Qué hace Track Profile to Web?
El complemento permite seleccionar una línea vectorial con valores de altitud y crear un perfil de elevación interactivo. Dicho perfil puede exportarse como un solo archivo html o como una combinación de dos archivos (html+geojson). De esta forma podemos integrar de manera muy sencilla este perfil interactivo en una página web.
Muchos de los que nos leéis, aficionados a la cartografía pero también a los dispositivos GPS, habréis imaginado inmediatamente una primera utilidad de este complemento: generar perfiles de nuestras rutas en un mapa interactivo que podemos utilizar en las descripciones de los recorridos. Yo pensé lo mismo, así que vamos con ello.

1.- Abrimos QGIS y cargamos nuestro track en formato GPX.
Aquí es bueno puntualizar que si el track ya está limpio de puntos aberrantes, picos de altitud y esas cosas que todos solemos limpiar en el track definitivo, mucho mejor para un resultado final a publicar. Para este ejemplo vamos a utilizar el track de la subida al Pico Sacro realizado por la Gata con Botas.
Track GPX cargado. No es necesario aplicarle simbología pues el complemento tiene la suya propia.
2.- Abrimos el complemento Track Profile to Web.
Esto podemos hacerlo desde el menú Web de QGIS o desde el icono del complemento que se crea en la barra de botones al instalarlo.
En cualquiera de los casos se nos abrirá la ventana principal del complemento que contiene todas las opciones de configuración del mapa de salida y que son bastante intuitivas.
La configuración es muy sencilla: una pestaña para seleccionar el track sobre el que vamos a trabajar y otra pestaña para seleccionar un mapa base (1), la zona de configuración avanzada (2) en la que podemos cambiar entre otras opciones los colores, grosores y transparencias del perfil o marcador (también la ubicación del perfil en el mapa), y un botón para generar la Preview del resultado en la parte inferior de la ventana (3).
Respecto al mapa base se nos ofrecen, en el momento de escribir este artículo, cinco posibilidades: OpenTopoMap, OpenStreetMap Standard, Wikimedia, y las imágenes aéreas de Google o ESRI.  Creemos que el usuario puede añadir un mapa base en formato tiles, o al menos eso deducimos de la expresión 'insert your tile here' de la pestaña BaseMap, pero no hemos adivinado cómo hacerlo. Configurado todo a nuestro gusto podemos ejecutar el Update Preview para comprobar el aspecto del resultado.
Ya podemos interactuar con el perfil en la ventana de previsualización, obteniendo distancias y alturas en una combinación sincronizada entre el punto de track y el mapa base. También podemos hacer zoom o seleccionar un tramo en la ventana del perfil para visualizarlo en detalle sobre el mapa. Se activan también los botones inferiores que nos permiten abrir la visualización en nuestro navegador (1) y exportar el resultado en html o html+geojson (track) (2).
Si no disponéis de un sitio web al que subir el archivo HTML podéis ejecutarlo en local para visualizar todo el resultado final de una forma cómoda. Os dejo un archivo Perfil_web.html por si queréis probarlo. Y si disponemos de un sitio web sólo tenemos que cargarle dicho archivo HTML para que nuestro perfil de ruta interactivo esté disponible en nuestra web. Nosotros hemos probado a subir el HTML al host cutre que usamos para pruebas, y quizá por eso mismo algunas características del mapa (selección de tramo de perfil, recorrido del ratón por línea de perfil, etc...) no funcionan. Si hacéis las probaturas oportunas en una web decente ya nos comentáis si todo funciona correctamente.

Hemos intentado también subir el código HTML resultante a esta plantilla Blogger pero imagino que no es del todo compatible y sólo se nos muestra la parte del perfil... como es molona la dejamos. Saludos!

QGIS Track Profile 2 Web
Total Length: 0Max Elevation: 0Min Elevation: 0

jueves, 1 de agosto de 2019

El Catastro en tu Garmin desde QGIS.

No es extraño que de vez en cuando algún paisano con un GPS Garmin me pregunte cómo podría usar el cacharro para localizar una finca del pueblo, ya que aprovechando que conoce los datos de la finca y se ha gastado unas perras en el dispositivo, le parece la combinación más lógica que el GPS le guíe hasta ella. Pero claro... le falta el mapa de parcelas en el Garmin!!

Hay mil formas de hacerlo... nosotros vamos a solucionarlo con un breve artículo con el que podremos llevar un plano del Catastro en nuestro Garmin en menos de cinco minutos. Para ello usaremos QGIS 3.4.6 y su complemento GarminCustomMap. Arrancamos QGIS, cargamos el servicio WMS del Catastro y nos ubicamos en la zona de nuestro interés:

El complemento GarminCustomMap exporta la zona de canvas, esto es, el área visible en pantalla. Si no lo tienes instalado puedes encontrarlo y hacerlo fácilmente como siempre desde el Administrador de complementos.

Una vez instalado lo tendremos disponible en el menú Complementos o desde el icono que se crea al efecto en la barra de botones.

Lo primero que nos pide el complemento es el nombre y la ubicación donde vamos a guardar nuestro archivo KMZ (el formato de los CustomMaps de Garmin).
A continuación la ventana principal del complemento que contiene importante información sobre el formato KMZ para Garmin (límite de teselas y tamaños que permite) que os recomiendo leer. Para nuestro ejemplo dejamos todo por defecto y aceptamos para crear el KMZ.

En breves segundos nos salta aviso de que el KMZ ha sido exportado. En este caso sencillo tiene un tamaño de 200 Kb (una sola tesela) y lo primero que hacemos es ejecutarlo en Google Earth para comprobar su integridad.
Nuestro KMZ en Google Earth al que hemos aplicado un poco de transparencia para comprobar su perfecta ubicación.
Solamente nos resta copiar nuestro archivo Parcela296.kmz en la carpeta adecuada de nuestro GPS Garmin, que no es otra que la carpeta CustomMaps (siempre preferible en la SD externa si disponemos de ella).
Y la comprobación en el propio Garmin:
Ya podemos salir en busca de la parcela, reconocer su perímetro, hacer mediciones aproximadas, marcar mojones... En cinco minutos del Catastro a nuestro Garmin. Saludos.
Y si queremos ayudarnos con una orto de fondo, mejor que mejor.
PD: Para disponer en QGIS del servicio WMS del Catastro podéis usar las siguientes URL:
Catastro: http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx
Catastro INSPIRE: http://ovc.catastro.meh.es/cartografia/INSPIRE/spadgcwms.aspx

lunes, 29 de julio de 2019

GPS Virtual para BaseCamp.

Una de las principales herramientas que podemos utilizar si habitualmente trasteamos con mapas en BaseCamp es un GPS Virtual. En nuestro caso es un compañero diario que siempre tenemos cerca del PC, y aunque cada vez que nos preguntan por ello remitimos al excelente articulo de los amigos de BikerTravesía, hemos decidido elaborar una entrada sencilla de referencia.

¿Qué es un GPS Virtual?
Podemos definirlo como un dispositivo emulador de un GPS Garmin que funciona virtualmente en el programa BaseCamp, visualizando su contenido como si tuviéramos conectado un GPS Garmin real.

¿Qué utilidad tiene?
La principal ventaja de un GPS Virtual es la posibilidad de visualizar y trabajar en el programa BaseCamp con todos aquellos archivos compatibles con un GPS Garmin (mapas, tracks, waypoints) sin necesidad de conectar nuestro dispositivo real al programa. De especial utilidad resulta la posibilidad de usar los mapas JNX (BirdsEye) de usuario creados por nosotros mismos de forma totalmente gratuita.

¿Qué necesitamos para crear un GPS Virtual?
Para elaborar nuestro GPS Virtual sólo necesitamos un pendrive USB. Desconozco si hay limitaciones, pero nosotros hemos comprobado que funciona con capacidades desde 2 hasta 64 Gigas, y tanto en formato de archivos FAT32 como NTFS. Desconozco también su funcionamiento y compatibilidad en entorno Mac, pues somos usuarios Windows.

¿Qué debe contener el GPS Virtual?
Simplemente debemos emular la estructura de carpetas de un GPS Garmin convencional, y que es la siguiente:
  • Una carpeta de nombre Garmin en la raíz del pendrive. Los archivos de mapa Garmin en formato IMG deben de ir dentro de esta carpeta.
  • Varias subcarpetas dentro de la citada carpeta Garmin con las siguientes finalidades:
    1. Carpeta GPX: contendrá los archivos GPX de tracks y waypoints.
    2. Carpeta CustomMaps: contendrá los mapas personalizados ráster en formato KMZ.
    3. Carpeta BirdsEye: contendrá los mapas ráster en formato JNX.

Estructura típica de nuestro unidad pendrive USB haciendo de GPS Virtual.
No hay ningún problema en que el pendrive contenga otros archivos o carpetas en su raíz.
¿Cómo lo usamos en BaseCamp?
Una vez configurada la estructura de carpetas del GPS Virtual y teniéndolo conectado a nuestro PC, arrancamos el programa BaseCamp para que nos reconozca el dispositivo en su Biblioteca.
BaseCamp reconoce nuestro pendrive como una unidad más y muestra los mapas IMG sueltos en el directorio Garmin (en este caso Picos de Europa) y una carpeta denominada Datos de usuario que contiene el resto de los elementos.
Para ilustrar este artículo he introducido en las diferentes carpetas del GPS Virtual un archivo del tipo correspondiente: un track en la carpeta GPX, un archivo KMZ ráster en la carpeta CustomMaps y un archivo JNX en la carpeta BirdsEye
Volvemos a arrancar BaseCamp para comprobar que los archivos se visualizan en la Biblioteca dentro de la carpeta Datos de usuario de nuestro GPS Virtual.
Ampliación de la zona del árbol de datos mostrando los elementos de las tres carpetas del GPS Virtual
bajo la mismo categoría genérica Datos de usuario (es sencillo diferenciarlos por su icono).
Los archivos de mapa CustomMaps (KMZ) y BirdsEye (JNX) son tratados por el programa como mapas de fondo o superposiciones, por lo que para visualizarse siempre necesitan tener un mapa que cubra su misma zona seleccionado en la pestaña de mapas principal de BaseCamp. En la imagen superior visualizamos el fondo Alicante_LIDAR porque tenemos seleccionado como mapa principal TopoValencia. También podemos elegir si visualizamos o no estos mapas usando la pestaña inferior del programa Mostrar superposiciones/Ocultar superposiciones.

¿Cómo traspasamos el contenido del GPS Virtual a BaseCamp?
A menudo nos interesará disponer en nuestro PC de alguno de estos elementos que hemos previsualizado a través de nuestro GPS Virtual, de forma que al abrir BaseCamp los tengamos disponibles en el programa sin necesidad de volver a pinchar nuestro pendrive.
Para ello crearemos una lista nueva en el programa (destino del archivo) y con el botón derecho del ratón sobre el archivo que nos interese, usaremos la opción Enviar a...
Hemos creado la lista llamada JNX dentro de la carpeta Valencia de nuestra Biblioteca de BaseCamp,
que será la que seleccionemos en la ventana emergente como destino de nuestro archivo Alicante_LIDAR.jnx
De esta forma, y una vez desconectado el GPS Virtual del PC, nuestro JNX queda disponible en la lista destino para poder ser utilizado sin necesidad de volver a conectar el pendrive virtual.

En definitiva una herramienta que para nosotros que bicheamos bastante con mapas en BaseCamp es de uso cotidiano. Gracias a ella podemos previsualizar rápidamente algún JNX que hayamos creado, algún mapa IMG que nos pueda interesar, o simplemente una ortofoto rápida en KMZ para preparar una ruta sin necesidad de sobrecargar la Biblioteca de BaseCamp con mucho contenido (BaseCamp es un poco torpe en la gestión de demasiadas carpetas y listas, no conviene forzarle con demasiadas).

PD 1: en algunos lugares hemos leído que para que el GPS Virtual funcionara correctamente era necesario que contuviera en su carpeta Garmin el archivo GarminDevice.xml, que es el archivo identificador del modelo GPS que corresponda (y que lo podemos encontrar en nuestro Garmin). Nosotros también lo pensábamos, pero tras las pruebas de este artículo concluimos que dicho archivo no es necesario (basta con la citada carpeta Garmin en la raíz) y su presencia lo único que modifica es que BaseCamp lo identifique en el árbol de carpetas como el modelo GPS Garmin correspondiente.
Ejemplo de un GPS Virtual con archivo GarminDevice.xml perteneciente a un Garmin Montana 650.
PD 2: la conexión USB del GPS Virtual no es lo más veloz de este mundo, y dependiendo de la cantidad de archivos que tengamos en él y su tamaño puede tardar un poco en refrescar cuando lo conectemos a BaseCamp. En cualquier caso al GPS Garmin le sucede lo mismo, y para mi sigue siendo infinitamente más cómodo en mis probaturas utilizar un pendrive.
PD 3: otros usuarios utilizan incluso una tarjeta SD conectada al PC a través de un lector de tarjetas USB, de forma que esta misma tarjeta puede ser la que luego insertemos en nuestro GPS una vez transferidos los datos o mapas que necesitemos.