jueves, 30 de marzo de 2017

Perfil topográfico en QGIS.

Vamos hoy con uno de los procesos más utilizados en este mundillo cartográfico: generar un perfil topográfico. ¿Qué es un perfil topográfico? Un perfil topográfico o corte topográfico es una representación del relieve del terreno que se obtiene cortando transversalmente las líneas de un mapa de curvas de nivel, o mapa topográfico.
Este perfil podemos generarlo a partir de cualquier línea sobre el terreno: un río, una carretera, un track de una ruta, una línea dibujada a mano alzada, etc... De sobra conocidos por todos, los perfiles nos dan una idea rápida y exacta de los desniveles del terreno en relación a su distancia, y son de utilidad cotidiana para hacernos una buena idea de las dificultades del terreno en lo relativo a pendientes.
Para elaborar nuestro perfil vamos a utilizar esta vez QGIS, al que debemos previamente instalar el complemento necesario para esta función: Profile tool. 
Una vez instalado de la forma habitual desde el administrados de complementos de QGIS, preparamos los elementos necesarios en el programa, a saber: un archivo de relieve y una línea vectorial de la que queremos extraer el perfil. En este ejemplo vamos a utilizar un track de GPS en formato gpx.
QGIS con los elementos necesarios cargados: track gpx y archivo de relieve da la misma zona.
En el ejemplo hemos cargado también el mapa de Google para que resulte más visual.
Abrimos el complemento Profile tool, disponible en el menú Complementos.

Con el complemento abierto y la capa del archivo de relieve seleccionada (1), pulsamos Add Layer (2) para que el MDT se añada como capa fuente de datos disponible (3).

Dado que queremos extraer el perfil a partir de una polilínea ya cargada (nuestro track), seleccionamos Selected polyline en la opción del complemento:

Y con la capa de nuestro track seleccionada pulsamos sobre la línea del recorrido para seleccionarla y que el perfil sea generado en la ventana del complemento:

A partir de aquí podéis investigar las diferentes opciones de configuración que Profile tool tiene, la mayoría de ellas accesibles con el botón derecho sobre la ventana de perfil...
... y entre las que se encuentra la opción Export... que nos abre la ventana que nos permite guardar el perfil en una gran variedad de formatos de imagen, SVG o incluso tabla de datos CSV. La tabla con los datos de elevación y distancia de cada punto de la polilínea también la tenemos disponible en la pestaña Table del complemento, con algunas opciones muy útiles como generar una capa temporal con todos los puntos del recorrido, o copiar al portapapeles en modo texto esos datos, coordenadas incluidas.







La otra gran opción del complemento Profile tool es generar los perfiles a partir del dibujado de una polilínea a mano alzada, lo que podemos utilizar si no disponemos de un vectorial para cargar en pantalla. De esta forma podemos generar instantáneamente perfiles siguiendo el trazo de un río sobre un mapa, o cualquier recorrido que nos interese.
Para ello seleccionaremos Temporary polyline en el complemento y procedemos a hacer clicks de ratón sobre el mapa generando la línea. Haciendo doble click en el último punto la línea queda completa y el perfil aparece en la ventana de Profile tool.

En definitiva un proceso sencillo, cotidiano y de mucha utilidad que, si estamos trabajando con QGIS, podemos generar en pocos pasos gracias a este complemento y la utilización de una capa de relieve con una línea vectorial. Obviamente su utilidad puede ser mayor en casos de vectoriales que no tengan integradas altitudes, y pienso que de la combinación entre la resolución de nuestro MDT y la cantidad de puntos dibujados (o la configuración del sampleado en vectores ya hechos) podremos obtener perfiles más o menos detallados.
Ejemplo de extracción de perfil topográfico de un arroyo a partir de los vectoriales SHP de la BTN25 del IGN.
PD: No he conseguido exportar a través del botón Save as en ninguno de los tres formatos que ofrece. También observo distancias del eje X en extraño formato en algunas pruebas, lo que nos deja una sensación agridulce del complemento. Si os animáis a probarlo podéis comentar si os pasa lo mismo. Saludos!

lunes, 27 de marzo de 2017

Botón derecho en SASPlanet.

Volvemos hoy con uno de nuestros programas favoritos para explicar algunas funciones que probablemente utilicemos con menor frecuencia, pero que pueden sernos de alguna utilidad para el manejo y comprensión de SASPlanet. Son aquellas a las que tenemos acceso desde el botón derecho del ratón que, como todo usuario informático conoce, suele ocultar funciones difícilmente localizables de otra forma.
Al pinchar con el botón derecho sobre cualquier punto de un mapa en pantalla obtenemos el siguiente menú:

Vamos a desarrollar un poco las diferentes posibilidades:

- Add Placemark. Se trata de un simple acceso rápido a la función de crear un placemark (waypoint) en el lugar exacto donde hayamos hecho click derecho. El programa nos abre el editor de placemarks para completar la información y añadirlo a nuestra base.

- Center With Zoom. El programa nos centra la vista sobre el lugar elegido y al nivel de zoom elegido.

- Copy to Clipboard. Este menú contiene en su interior un ramillete de opciones relacionadas con copiar alguna información al portapapeles para poder ser utilizada posteriormente. 
Como vemos, el primer grupo se refiere a direcciones URL de algunos de los principales proveedores de cartografía (Google, Bing, OSM...). Elegimos el nuestro y habremos copiado en nuestro portapapeles una dirección web que podremos pegar en nuestro navegador, el cual nos dirigirá a nuestra zona del mapa directamente en el visor de mapas del proveedor.
También podríamos usar la URL copiada para enviarla por correo o compartirla por cualquier medio que nos sirva para indicar la zona del mapa que queramos.

En el ejemplo de pantalla hemos hecho click sobre el Museu Comarcal de Olot y seleccionado la opción URL to Google Maps. El texto invisible copiado en nuestro portapapeles sería:
http://maps.google.com/?ie=UTF8&ll=42.1811917066922,2.48938296006706&spn=57.249013,100.371094&t=h&z=15
Copiando esto en la barra de direcciones de nuestro navegador se nos carga la web de Google Maps (modo satélite) con la zona y el zoom aproximado de nuestro lienzo SASPlanet:
Y así con el resto de proveedores disponibles.

Un segundo grupo comienza con la opción URL to Primary Map Tile. Con esta opción copiamos en el portapapeles la URL correspondiente a la tesela del mapa sobre la que hayamos hecho click derecho, obteniendo su dirección en el servidor. Para el mismo caso de antes el texto obtenido sería:
http://www.ign.es/wms-inspire/mapa-raster?TRANSPARENT=true&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&STYLES=default&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fpng&LAYERS=fondo,mtn_rasterizado&BGCOLOR=0xFFFFFF&SRS=EPSG%3A4326&BBOX=2.482910156250000,42.176513671875002,2.493896484375000,42.187500000000000&WIDTH=256&HEIGHT=256
Lo que se corresponde con lo que se denomina una petición Get Map al servidor de las imágenes, y que los que nos seguís ya sabéis que tiene mucho que ver con la estructura que necesitamos para visualizar las imágenes de un servicio WMS.

Las siguientes opciones del menú nos permiten obtener y copiar al portapapeles las coordenadas del punto que pinchemos (Ej: N42°10'52,29" E2°29'21,77"), la imagen física de la tesela seleccionada para pegarla en el editor de imágenes que usemos (Primary Map Tile) o la ruta a la imagen guardada en cache en nuestro PC (Pathname to Tile in Cache) (Ej: E:\SAS.Planet.Release.160606\cache\Spain TOPO\z16\16\x16610\12\y12544.png).

- Show Primary Map Tile. Esta función simplemente nos abre la tesela que elijamos en el visor de imágenes por defecto de nuestro PC.

- Open Primary Map Tile Folder. Nos abre en el explorador de carpetas de nuestro pc la carpeta que contiene la imágen en cache sobre la que hayamos hecho la petición.

- Additional Operations. Este menú también encierra varias opciones:
podemos conseguir la altitud del punto seleccionado a partir de dos proveedores globales (GTOPO o SRTM), obviamente con una fiabilidad aproximada ya que son datos mundiales sin la precisión necesaria (1 km o 90 metros según vemos).
La siguiente opción, Images available, nos abre un buscador de imágenes disponibles de la zona a partir de proveedores como ESRI o Bing, e incluso de una buena lista de satélites. Ofrece además en la ventana bastante información técnica o las URL hacia la imagen del proveedor. Sinceramente, nos parece una herramienta compleja de manipular, pero que no deja de intrigarnos por la posible utilidad que se nos pueda estar escapando.
Listado de imágenes y proveedores disponibles en la zona, con información de fecha o URL a la imagen del proveedor.
Por último la opción Current and Forecast Metereology nos abre en pantalla un pequeño navegador con abundante información meteorológica ofrecida por un portal americano y centrada en el área de nuestro click.

- Tras dos opciones para eliminar o descargar individualmente las teselas en la cache...
- la última opción de nuestro menú botón derecho es Map Info. Gracias a ella obtenemos información adicional sobre el mapa en el caso de que tenga configurada alguna información u archivo suplementario (por ejemplo, una leyenda).

Si, además del mapa principal, tuviéramos cargada alguna cartografía más como capa, el menú se ajusta para ofrecer también las opciones disponibles sobre la capa correspondiente.






Y si el click derecho lo hiciéramos sobre algún placemark presente en pantalla (waypoints, track, polígono) se habilita un menú más completo con posibilidades sobre ellos que ya tratamos en este artículo (vídeo incluido).








En definitiva, lo que para muchos usuarios pueden parecer utilidades poco útiles (valga la redundancia), para otros pueden suponer la solución sencilla a una operación engorrosa. Nunca se saben las necesidades de cada cual y nos parece genial conocerlas y que se encuentren disponibles. Saludos.

jueves, 9 de marzo de 2017

Mapa del Mes: TopoSanabria para Garmin.

Presentamos nuestro Mapa del Mes de marzo: TopoSanabria, un mapa topográfico vectorial para BaseCamp y dispositivos Garmin compatibles. 
Marco negro mostrando la extensión del mapa.
Su cobertura territorial comprende el Parque Natural del Lago de Sanabria, en la provincia de Zamora, con un pequeño margen alrededor del mismo que facilite una mejor ubicación espacial. Al igual que el resto de nuestros mapas para Garmin, TopoSanabria cuenta con las siguientes características generales:
- Mapa ruteable y con capacidades Active Routing, adaptando su recorrido a distintas vías dependiendo la actividad seleccionada.
- Mapa con datos de relieve, lo que permite conocer la altitud de tracks o waypoints, así como obtener perfiles de recorrido u observar el mapa en la vista 3D.
- Elaborado con los datos más actuales disponibles a la fecha de creación, lo que garantiza un contenido lo más ajustado posible a la realidad del terreno.

La fuente de datos del mapa es, en su práctica totalidad, la BTN25 del IGN completada con algunos datos extraídos de OpenStreetMap y unas pocas pinceladas de CartoCiudad. Todos los mencionados conjuntos de datos cuentan con licencia Creative Commons que permite su utilización libre para cualquier uso con la simple cita de la propiedad de los mismos. Muchas gracias a todos por su trabajo y por poner la información a nuestra alcance.

Dado que el terreno que abarca TopoSanabria es un área más reducida de lo habitual, hemos optado por hacer un mapa mucho más detallado en algunos aspectos. Así contamos por ejemplo con las curvas de nivel cada 10 metros originales de la BTN25, y hemos adaptado la resolución del relieve a los mismos 10 metros a partir del MDT05 que el mismo IGN nos ofrece. Igualmente las escalas de cada capa del mapa han sido reducidas, proporcionando mayor detalle en líneas y polígonos a zooms más altos. Todo ello repercute en un mayor tamaño de archivo final que es perfectamente asumible por el menor terreno cubierto como hemos mencionado y que nos ofrece, a cambio, una más alta fiabilidad del terreno, reflejada en una teórica mejor precisión a la hora de calcular alturas o perfiles topográficos sobre el mapa.

TopoSanabria servirá sin duda también para mostrar nuestra forma de trabajo, y para que aquellos que no conozcáis nuestros productos, tengáis una idea aproximada de cómo son los mapas para Garmin de nuestra CartoTienda.
(La diferencia son algunas probaturas y un control de calidad final más relajado buscando vuestra colaboración).

El lote para descarga (19 megas) incluye:
- Autoinstalable para BaseCamp (Windows o Mac).
- Archivo IMG del mapa para copia directa en el dispositivo Garmin.
- Archivo de texto LÉEME con breves instrucciones.

No nos alargaremos más sobre el contenido del mapa, su diferente información ni las características de la misma. Al ser totalmente gratuito es mucho mejor que todos aquellos que podáis necesitar un mapa detallado y actual de esta zona lo probéis personalmente y saquéis vuestras conclusiones.
Puedes descargar TopoSanabria en nuestra sección Mapa del Mes.

Desde Cartografía Digital esperamos que TopoSanabria os sea de utilidad y por supuesto no dudéis en compartirlo con todos vuestros conocidos ni en dejarnos los comentarios u observaciones que consideréis oportuno, y que siempre son bienvenidas para mejorar. Muchas gracias.

martes, 7 de marzo de 2017

Obtener datos OSM en QGIS.

Como sabemos OpenStreetMap (OSM) es una interesante fuente de datos geográficos. A pesar de que su contenido es muy variable y dependiente de lo habitada o frecuentada que sea una zona, y a pesar también de que se podría discutir bastante sobre el control y el rigor de muchos de los datos que los usuarios suben, a día de hoy es una base muy aprovechable cuando se trata de obtener datos para nuestros trabajos o representaciones de todo tipo.
Es precisamente por ese cierto caos de información, unido a un listado de categorías realmente amplio, por lo que a menudo se hace imprescindible clasificar y discriminar los datos que se ofrecen para obtener justamente aquello que necesitemos.

En el artículo de hoy, y con ayuda de QGIS, vamos a mostrar cómo descargar la información vectorial disponible en OpenStreetMap y cómo filtrarla para obtener datos individualizados.

Abrimos el programa QGIS. Lo primero que necesitamos es decidir la zona de terreno cuyos datos nos interesan; esto teóricamente lo podemos hacer cargando en pantalla cualquier mapa, objeto vectorial o cualquier referencia espacial que nos centre la vista sobre nuestro área de interés. Para evitar posteriores problemas de proyecciones entre nuestro objeto-referencia y los datos de OSM yo os recomiendo utilizar directamente el complemento OpenLayers, disponible en el repositorio de QGIS y que nos permite cargar en el programa las cartografías de los grandes productores mundiales como Google, Bing u OSM entre otros.
Una vez instalado este imprescindible complemento lo tendremos disponible en el menú Web de QGIS. Lo utilizamos y cargamos la modalidad del mapa OSM que queramos:
A continuación nos movemos por el mapa encuadrando nuestro área de interés. Para este caso práctico nosotros vamos a elegir la ciudad de León.
Nuestro área de interés -núcleo urbano de la ciudad de León- encuadrado en la vista de QGIS.
Momento ahora de usar las utilidades para gestionar datos OSM que QGIS trae por defecto en sus últimas versiones, y que podemos encontrar bajo el menú Vectorial. Como es obvio comenzamos por la descarga de datos:

Se nos abre la ventana gestora de la descarga de datos, muy sencilla:
Disponemos de tres opciones: a partir del lienzo del mapa, a partir de una capa cargada en QGIS, o introducir manualmente las coordenadas de la zona a descargar. Usaremos la primera opción, para lo que previamente hemos encuadrado en el lienzo la zona de nuestro interés. En archivo de salida simplemente damos un nombre y una ubicación al archivo de descarga.
Terminada nuestra descarga, cuyo tiempo y tamaño dependerá de la zona a descargar, se nos ha generado un archivo con el nombre dado y extensión .osm que es la clásica para las descargas vectoriales desde OpenStreetMap y se trata de un archivo vectorial con estructura XML.
Este archivo sería ya perfectamente visible en QGIS, que nos permite su carga como capa vectorial, pudiendo elegir los elementos a cargar (puntos, áreas, polígonos).
Archivo .osm generado por la descarga y abierto en bruto en QGIS.
Cada grupo de elementos contiene ya su tabla de atributos estructurada con los datos de OSM, por lo que en un proceso manual podríamos utilizarlos, clasificarlos o discriminarlos a voluntad.

Sin embargo, nos interesa mucho más obtener un archivo de base de datos con el que sea mucho más fácil trabajar en QGIS y realizar las distintas operaciones sobre datos geográficos que necesitemos. Para ello usamos la segunda función del menú: importar topología a partir de XML.
En Archivo de entrada cargamos nuestro archivo .osm de la descarga. El resto de parámetros se rellenan por defecto
 (aunque podemos modificarlos): archivo DB de salida y conexión SpatialLite (magnífica utilidad con la que siempre tendremos disponibles los datos a través de carga de capa vectorial de base espacial).
Listo nuestro archivo con extensión .db procedemos a importar los datos mediante la tercera herramienta del menú: exportar topología a SpatialLite.
En archivo de base de datos de entrada seleccionamos nuestro archivo .db. A continuación podemos escoger el tipo de fenómeno a exportar (punto, polilínea o polígono). Pulsando el botón Cargar de la base de datos se nos muestran en pantalla todas las categorías presentes en los datos. Seleccionamos aquellas que queramos importar (o todas) y dejamos la casilla Cargar en la vista del mapa cuando se termine activada para que los datos se carguen en el lienzo de nuestro proyecto.
El número de etiquetas que seleccionemos configurará lo completa que será la tabla de atributos de los elementos importados. Para este ejemplo nosotros queremos discriminar los puntos clasificados como supermercados en OSM; además queremos contar con la información del nombre de la tienda si la tuviera. Por tanto en las etiquetas marcamos los campos shop y name.
Aceptamos y QGIS nos importa todos los puntos de la base de datos OSM en la capa Leon_points; como sólo estamos interesados en los supermercados abrimos su tabla de atributos y notamos que algunos están etiquetados como supermarket...
... por lo que hacemos una consulta a la base de datos usando una expresión...
El programa nos devuelve, seleccionados en amarillo en pantalla y seleccionados también en la tabla de atributos, aquellos puntos cuya etiqueta en la categoría shop es igual a supermarket.

Ahora ya podríamos exportar nuestra selección como archivo vectorial shape y conservar nuestra solicitud (click derecho sobre la capa y Guardar como... marcando la casilla 'exportar sólo datos seleccionados' en la ventana de exportación a SHP). Y trabajar con aquellos datos de OSM que nos interesaban de la mejor manera posible.
Es muy importante para saber qué datos podemos conseguir desde OSM conocer el etiquetado que se utiliza en dicha cartografía, por lo que recomendamos dar un buen repaso o tener siempre a mano el catálogo de claves y valores que se utilizan habitualmente en OSM. Solo así podremos saber, por ejemplo, que la etiqueta path corresponde a sendero, track a camino, etc, etc... y podremos hacer nuestras búsquedas con buenos resultados.
Otro ejemplo, esta vez sobre las polilíneas de la base de datos, y posterior consulta highway=pedestrian sobre las mismas para discriminar aquellas calles catalogadas como peatonales en OSM y colocarlas sobre ortofoto Google.
El etiquetado de OSM es bastante abrumador y extensivo (véase aquí una muestra solamente para la clase highway) y a menudo no se respeta (o se completa muy básicamente) por parte de algunos editores. En cualquier caso creemos que este proceso es una absoluta maravilla para obtener datos individuales y clasificados de la magnífica fuente OSM. Un saludo y gracias por compartir.