Mostrando entradas con la etiqueta OpenStreetMap. Mostrar todas las entradas
Mostrando entradas con la etiqueta OpenStreetMap. Mostrar todas las entradas

lunes, 18 de septiembre de 2017

Mapas TMS en QGIS: OpenTopoMap.

Los mapas online son una forma de acceder a diversa cartografía muy cotidiana en nuestros días. A través de servicios alojados en servidores es posible visualizar y/o descargar cualquier mapa que alguien haya tenido a bien publicar. Los servicios de visualización WMS/WMTS o de descarga WFS son ya conocidos y hemos tratado sobre ellos en muchos artículos, además de ser la base para obtener mapas y datos de forma remota, de forma que es habitual que se encuentren integrados en los principales softwares para el manejo de información geográfica.
Los mapas TMS (Tile Map Service) que hoy nos ocupan son otra variante de estos servicios que permiten el acceso online a imágenes remotas. Por decirlo de forma rápida, un servidor que aloja teselas o mosaicos (tiles) de un mapa puede ser llamado por el usuario en forma de peticiones a través de las aplicaciones apropiadas para ser visualizado directamente en su dispositivo.
En este artículo vamos a usar unos de esos servidores (OpenTopoMap) y hacerle nuestra petición de imágenes a través de nuestra aplicación (QGIS). En las últimas versiones del programa (a partir de la 2.18) está tarea se ha facilitado enormemente pues se ha implementado de manera nativa la posibilidad de leer mapas TMS.

En la propia web de OpenTopoMap encontramos lo primero que necesitamos:
OpenTopoMap nos ofrece la dirección URL a través de la que podemos acceder a los mosaicos de  sus imágenes:

{a|b|c}.tile.opentopomap.org/{z}/{x}/{y}.png
  • Las tres letras (a b c) corresponden a los tres servidores disponibles para acceder a las teselas, de forma que al hacer nuestra petición debemos escoger uno de ellos.
  • La letra Z corresponde al zoom o escala al que vamos a hacer la petición, ya que todos estos mapas online normalmente contienen varios niveles en los que las imágenes son diferentes y van variando según el nivel de detalle que se requiera.
  • Y las letras X e Y se corresponden a la longitud y latitud de la tesela individual según la numeración que haya establecido el propio servidor.
Tras esta explicación muy básica podemos probar con la siguiente petición:
https://a.tile.opentopomap.org/14/8695/5583.png
Hemos elegido el servidor a, el nivel de zoom 14, y la tesela de coordenadas x=8695 e y=5583. Si introducimos esta dirección en nuestro navegador de internet obtenemos el mosaico:
El navegador nos devuelve una imagen en formato png, normalmente de 256x256 pixels de tamaño, de la zona correspondiente a las coordenadas x-y introducidas y con la escala correspondiente al nivel de zoom elegido.
Por tanto, un simple cambio añadiendo un número más a la cifra de la X nos devolverá la tesela contigua:

Baste esta breve y ruda explicación para tener un concepto básico del funcionamiento de los Tile Map Service y vamos ahora con la segunda parte del artículo: cargar mapas TMS en QGIS. El programa tiene el acceso a la herramienta en el panel del explorador (cuadrado verde en la imagen):
En la columna izquierda tenemos el panel de capas o el panel del explorador, dependiendo la pestaña activa (en rojo). Si no os aparece podéis hacer click derecho sobre la barra de botones superior y se os abrirá el selector de paneles para activarlo (en amarillo).
Evidentemente las peticiones individuales de mosaicos que hemos visto más arriba no tienen ninguna utilidad a la hora de querer visualizar amplias vistas de mapas, ni tendrían la agilidad necesaria para moverse ni trabajar. Por ello la dirección que se utiliza para configurar el servicio es la siguiente:
http://c.tile.opentopomap.org/{z}/{x}/{y}.png
Sin peticiones individuales, sino con la fórmula genérica que nos permita acceder de manera automática a todos los mosaicos del mapa. Recordad que tenemos tres servidores disponibles (a b c) que podéis ir probando en caso de que alguno de ellos no os diera buen resultado.
Hacemos click derecho sobre Tile Server (XYZ) y pulsamos New Connection... Introducimos la dirección en la nueva ventana y le damos un nombre al mapa en la siguiente. Aceptamos.
La conexión al mapa queda hecha y disponible en el árbol de conexiones de nuestro panel del explorador. Click derecho para opciones y con Añadir capa el mapa se carga en pantalla y se añade a nuestro panel de capas.

Nota: el mapa se nos ha mostrado un tanto errático y remolón refrescando la caché de imágenes cuando nos desplazamos o hacemos zoom, de forma que deja en blanco áreas que ha mostrado en una vista anterior y nos obliga a volver a mover el mapa para reconectar. Me ha pasado con los tres servidores por lo que deduzco que es cosa del propio mapa, ya que con otras cartografías no nos pasa, por lo que no parece problema de QGIS.

Aunque las "principales" cartografías ya están implementadas en diversos complementos de QGIS como QuickMapServices u OpenLayers, ahí os dejo unas cuantas direcciones de ejemplo para que podáis probar y añadirlas en el visor nativo de QGIS (testadas y funcionando). Saludos.
bergfex_osm: http://maps.bergfex.at/osm/standard/{z}/{x}/{y}.jpg

ESRI ArcGis standard
https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}

Google Terrain
https://mt1.google.com/vt/lyrs=p&x={x}&y={y}&z={z}

opnvkarte: http://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png

Strava cycling: http://globalheat.strava.com/tiles/cycling/color1/{z}/{x}/{y}.png  
sobre Google SAT: http://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}

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.

jueves, 28 de julio de 2016

OpenFietsMap: otra versión de OSM.

Hablamos hoy de otro de los productos de mapas derivados de OpenStreetMap. Esta vez, con origen holandés, se trata de OpenFietsMap. Como bien se explica en su página principal el mapa es compatible con los gps Garmin y con OruxMap en Android, y nos ofrece las clásicas versiones tanto de escritorio (para BaseCamp) como la versión de archivo para copiar directamente en el gps.
Especialmente pensado como un mapa ruteable para ciclistas y con una cobertura europea, las descargas están organizadas en diferentes zonas que podremos seleccionar. Así por ejemplo, si nos interesa España, accederemos al enlace Europe donde podemos encontrar una gigantesca descarga para instalar en BaseCamp (9 Gigas comprimido, 12 Gigas descomprimido) que engloba Europa entera, o los diferentes archivos fragmentados para cada zona europea preparados para enviar directamente al gps.
A fecha de este artículo se observa que la última actualización del mapa ofrecida es de Enero. Desconozco la frecuencia de actualizaciones.
En la web (en inglés) se ofrecen además sobradas explicaciones e instrucciones de la manera de proceder, que es por otra parte la clásica en este tipo de descargas (tanto para Windows como para Mac). También las propiedades del mapa y sus características (por ejemplo no tiene vista 3D ni datos de altura y tampoco es imprimible).
Hemos descargado a modo de prueba la imagen IMG correspondiente a España (la descarga de toda Europa para BaseCamp nos ha parecido excesiva) y la hemos colocado en nuestro gps virtual del pen drive para verlo en BaseCamp (en las unidades modernas de Garmin podemos renombrar el archivo descargado gmapsupp.img con el nombre que deseemos a fin de poder llevar varias zonas).
La web cuenta además con interesantes enlaces e información más avanzada acerca del mundillo de los TYP y cómo podemos cambiar el aspecto visual del mapa para adaptarlo a nuestro gusto.
Ejemplo de las capacidades de ruteo del mapa.
En definitiva otro producto derivado de la información OSM al alcance de todos y que todos podemos probar. Es ya cuestión estética o de una mejor adaptación de la información a nuestra actividad principal que acabemos decidiendo el más acorde a nuestras necesidades. Un saludo!

lunes, 28 de septiembre de 2015

Capas para Google Earth.

Gracias a un comentario de Javier, amigo y tocayo del blog, cuando hablamos en su día de agregar servicios WMS a Google Earth, hoy traemos hasta Cartografía Digital una web que nos proporciona un buen listado de mapas en forma de capas para superponer en Google Earth. Google Earth Map Overlays nos facilita, con un simple registro, más de 50 mapas diferentes que poder abrir sobre la base de Google Earth: la mayoría la forman los diferentes mapas de OpenStreetMap, pero también están los de Google, Here Nokia o Bing, o algunos mapas europeos (incluyendo OpenTopoMap que vimos en este artículo) o de cobertura mundial. En su web tenemos variados ejemplos de cómo se visualiza cada una de las capas, así como la posibilidad de descargar las capas KML individualmente o como un lote KMZ que incluye todas las disponibles.

El archivo que contiene todas las capas disponibles se llama map-overlays-for-google-earth-combined.kmz y, al ser simplemente enlaces de red a los mapas correspondientes, ocupa solamente 3 Kb. Lo descargamos y lo ejecutamos con lo que, si tenemos Google Earth instalado en nuestro pc, se nos abre automáticamente cargando el archivo en nuestros lugares temporales.
Conjunto de mapas de Google Earth Map Overlays cargados temporalmente bajo el epígrafe general Map Overlays. En la imagen, OpenTopoMap para la zona de Europa activado.
Ahora, si queremos tenerlos siempre disponibles en nuestro Google Earth, simplemente con el botón derecho sobre Map Overlays, pinchamos en Añadir a mis sitios. Por supuesto las capas por defecto que trae Google Earth (carreteras, lugares, etiquetas, fotografías, relieve etc...) quedan siempre disponibles para utilizar con estos mapas.
Ejemplo con mapa Thunderforest Lanscape cargado y varias capas de Google activadas.
También podemos ajustar la transparencia de nuestra capa con la barra disponible debajo de la lista de mapas, ya que todas vienen por defecto con una opacidad del 100%.
Lo cierto es que la utilidad de estas capas es tremenda y nos permiten ver algunos de nuestros mapas favoritos en 3D junto con las capas tradicionales de Google Earth. Esto sirve tanto para facilitarnos mucho la gestión de rutas, el análisis de datos o para completar la visión cartográfica en aquellas zonas que otros mapas poseen mayor información que el propio Earth.
Ejemplo de la capa mundial de relieve de Maps-For-Free en la zona de España.
Sin duda un gran trabajo esta recopilación, y un obligatorio a tener incluido para aquellos que usemos muy a menudo el excepcional Google Earth, al que estas capas aportan un valor añadido extraordinario. Os dejo con un GIF animado en el que puede verse la apariencia de distintos mapas de este lote desde un mismo punto de vista.


jueves, 27 de agosto de 2015

OpenTopoMap en BaseCamp y Garmin.

Hace un tiempo vimos en este artículo cómo disponer en BaseCamp y en los dispositivos Garmin de la cartografía libre de OpenStreetMap (OSM). A través de la web alternativaslibres podíamos descargar el archivo ejecutable necesario para instalar el mapa en nuestro pc y tenerlo disponible en BaseCamp (y, por tanto, en nuestro GPS Garmin) o el lote de archivos necesario para pegarlo directamente en el dispositivo sin necesidad de pasar por BaseCamp. Además son archivos de buena parte del mundo y siempre actualizados, de forma que recogen siempre las últimas modificaciones del servidor de OSM.
Hoy vamos a hacer los mismo con OpenTopoMap, que es una variante de los mapas OSM con un estilo más topográfico, disponibles para la zona Europa, y que cuentan con una edición para dispositivos Garmin.
Mapa web de OpenTopoMap con algunas funciones clásicas y varias capas (entre ellas OSM que viene muy bien para comparar diferencias). Marcado con círculo rojo el enlace a los mapas para Garmin.
En la esquina superior derecha del visor tenemos el enlace a la Garmin Edition de estos mapas. En ella disponemos, tras una breve explicación y unas capturas de imagen, de una lista de los países o regiones disponibles para descarga, con la fecha de la última actualización de la base de datos OSM, y los enlaces para descarga (tanto para la instalación directa en el dispositivo Garmin como para la instalación en PC y poder abrirlos en BaseCamp).
Web de descarga de OpenTopoMap para Garmin.
Columna amarilla: muestra en el mapa el terreno que abarca el mapa seleccionado. Columna morada: centra en el mapa el mapa seleccionado. Columna verde: nombre del mapa y fecha de última actualización. Columna rosa: descarga para meter directamente en el GPS y tamaño de la misma. Columna azul: descargas para PC y tamaño (instalador si elegimos Win y archivos sueltos si elegimos PC)
Queremos instalar los mapas en nuestro PC y tenerlos disponibles en BaseCamp, por tanto pinchamos en este caso sobre el ejecutable para Windows correspondiente a Spain. Se nos descarga el archivo único OpenTopoMap-Spain.exe que a fecha de este artículo tiene un tamaño de 281 megas.
Ejecutamos el archivo para instalarlo y seguimos las instrucciones como con cualquier programa convencional y que no tienen ningún problema. A la hora de elegir directorio donde instalar OpenTopoMap yo he dejado el que sale por defecto (desconozco si por cambiarlo puede dar algún error y que BaseCamp no lo reconozca).
Una vez terminada la instalación tenemos nuestro directorio creado con todas las partes (archivos .img de Garmin) que forman el mapa, el archivo .typ de estética del mismo y, muy importante, un desisntalador por si alguna vez queremos eliminar el mapa del PC.

Ahora es el momento de comprobar que OpenTopoMap está disponible en nuestra lista de mapas cuando abrimos BaseCamp.
OpenTopoMap en pantalla,  reconocido por BaseCamp en el desplegable de mapas y configurado al máximo detalle.
Ya tenemos OpenTopoMap funcionando en BaseCamp. Ya podemos crear waypoints, tracks o rutas sobre él (comprobado que es perfectamente ruteable incluso por caminos). En cambio el mapa no contiene valores de altura por lo que ni tracks, ni rutas, ni waypoints muestran perfiles o dato de altitud (una lástima que alguien que tenga el mapa podrá confirmarnos).

Para tener el mapa en nuestro GPS Garmin tenemos dos opciones:
1.- Desde el propio Basecamp, con nuestro GPS conectado, menú Mapas/Instalar mapas con lo que MapInstall se arranca y se procede como con cualquier otro mapa (incluso instalando sólo algunas zonas si queremos).
MapInstall con nuestro Garmin Montana 650 reconocido y la lista de mapas disponibles en Basecamp para instalar en el GPS. Como no queremos instalar los 3 sino sólo OpenTopoMap pulsamos en Personalizar...
En la lista marcamos OpenTopoMap con lo que el texto cambia a SE INSTALARÁ y continuamos el proceso. Si queremos instalar solamente algunas partes del mapa pulsaremos en Instalación avanzada/parcial...
OpenTopoMap con las 36 partes de que se compone. Seleccionamos (botón izquierdo del ratón) o deseleccionamos (botón derecho) las partes a instalar y continuamos el proceso. El botón de ayuda nos explica cómo hacerlo. 
2.- Copiando los archivos en el GPS. Como vimos más arriba, OpenTopoMaps, nos da la opción de descargar el mapa en el formato listo para pegar en el dispositivo. Yo recomiendo hacerlo por BaseCamp por mil razones (tendremos el mapa en el programa, lo lee mucho más rápido que desde la memoria del GPS, etc...), pero si por cualquier motivo no queréis o no podéis usar BaseCamp, debemos descargar el enlace preparado para instalar directamente en el Garmin.


Se nos descarga un archivo comprimido zip de nombre spain_garmin.zip (532 megas) que contiene tres archivos: spain.img (el mapa), spain_contours.img (las curvas de nivel) y un readme.txt que aunque está en alemán, viene a decir que copiemos los dos archivos .img en la memoria externa del GPS, dentro de la carpeta Garmin. 



Hecho esto, arrancamos nuestro Garmin y comprobamos que ambos mapas están en nuestra lista, apareciendo por separado pues pueden activarse o desactivarse en pantalla individualmente (podemos ver sólo el mapa, sólo las curvas o todo junto con las curvas superpuestas. Curvas que a su vez nos sirven para superponer sobre cualquier otro mapa u ortofoto).
Este es pues todo el proceso, tan sencillo que ni merece un artículo tan largo como el mío, pero bueno, espero no se os haya hecho aburrido y más vale pecar por exceso que por defecto en una explicación. Explorad a vuestro gusto el mapa en BaseCamp o en el GPS, comparadlo con el OSM tradicional, y no olvidéis que los mapas OSM van mejorando con el tiempo, por lo que pasado un tiempo prudencial lo suyo sería volverlos a descargar para tenerlos con las últimas incorporaciones de cartografía.

Os dejo con unas capturas de pantalla del Montana 650 para que veáis el aspecto de este OpenTopoMap en el GPS. Pinchad para ampliar.
Capturas a 800 m, 2 kms y 3 kms con curvas de nivel desactivadas.
Capturas a 500, 200 y 80 metros de zoom con curvas de nivel activadas..
Idénticas capturas con el mapa OSM tradicional de alternativaslibres para que comparéis estéticas.
PD: en el archivo de texto en alemán que viene con los mapas se dice que para dispositivos Garmin más antiguos (Legend, Vista, etc..) debemos renombrar el mapa como "GMAPSUPP.img" y meterlo en la tarjeta SD, dentro de la carpeta "Garmin". Y dice también que "por desgracia, los viejos dispositivos de Garmin pueden cargar sólo un archivo de mapa, por lo que no hay líneas de contorno adicionales" (o sea, no podremos tener mapa y curvas de nivel a un tiempo).