Resumen - SIGTE

Anuncio
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
Cosas que hacer en compañía de OpenStreetMap
Alexandre Busquets, Laura Olivas, Pep Sitjar, Toni Hernández
Servicio de Sistemas de Información Geográfica y Teledetección (SIGTE), Facultat de
Lletres, Universitat de Girona, Plaça Ferrater i Mora, 1, 17071 Girona, [email protected].
(1)
RESUMEN
OpenStreetMap es mucho más que una colección e datos. En este
artículo veremos, en primer lugar, que datos podemos descargar de
OpenStreetMap y como los podemos descargar de manera totalmente
personalizada y siguiendo criterios totalmente customatizables. Además
de la descarga veremos otras herramientas que añaden valor a OSM ya
sea como Editores, Importadores a bases de datos, servicios de
geolocalización, Renderización de imágenes, algoritmos de routing, etc.
Palabras clave: osm, descarga, importacion a bases de datos,
renderización, routing
ABSTRACT
OpenStreetmap is more than a mere collection of data. In this article we
will see, not only what kind of data is available to download, but how to
download it. Trom pre-generating extracts to customizable queries using
OSM API's. Besides we will introduce a set of free tools that we can use
on top of osm data allowing us to give osm data new uses and
possibilities like importing data to spacial databases, rendering images,
routing applications, etc.
Key words: osm, download, import to database, rendering, routing
INTRODUCCIÓN
Este estudio de las cosas que podemos hacer en compañía de OpenStreetMap
surge de la necesidad del SIGTE, como servicio dentro de la Universitat de Girona,
de ofrecer a la comunidad universitaria nuevos servicios cartográficos basados en
datos libres y, más concretamente, en OpenStreetMap: desde la elaboración de
mapas en formato papel hasta aplicaciones informáticas como la publicación de
mapas, renderizado de capas personalizadas, routing, etc.
En este artículo veremos que posibilidades nos brida OpenStreetMap y cuales son
las principales herramientas que permiten operar con esos datos. Las herramientas
que aparecen en este artículo se pueden agrupar en función de los siguiente usos:
- Datos disponibles y vías de descarga. Desde datos pre-generados hasta la
descarga más personalizada en tiempo real
- Posibilidades para la generación y edición de datos
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
- Publicación en la red de mapas personalizados mostrando cartografía de OSM
- Importación de datos OSM a bases de datos
- Renderización de imágenes a partir de estilos definidos por el usuario
- Routing
- Programación avanzada de aplicaciones
1. Datos disponibles y descarga.
Existen tres tipos de ficheros listos para ser descargados.
-planet.osm. Este fichero, que ocupa alrededor de 26Gb en formato comprimido
(pbf), contiene toda la cartografía de OpenStreetMap para todo el planeta y se
genera semanalmente.
-history.osm. Este fichero (39Gb en formato comprimido) se genera con menos
frecuencia que el fichero planet y contiene toda la historia de la base de datos de
OSM. Este fichero, por lo tanto, contiene tanto las inserciones de nodos como las
modificaciones y eliminaciones. Con este fichero, pues, podemos reproducir la
cartografía existente de OSM en una fecha concreta del pasado.
-Ficheros diff . Debido al gran volumen de datos manejados en OpenStreetMap,
existen una serie de ficheros diferenciales (.diff) que contienen las modificaciones de
la base de datos llevadas a cabo durante un período de tiempo concreto
(inserciones, modificaciones, eliminaciones). OpenStreetMap genera estos ficheros
diferenciales cada minuto, cada hora y cada día. Aplicando el contenido de estos
ficheros diferenciales podemos mantener nuestros datos actualizados de manera
más cómoda y eficiente.
Si lo que queremos es llevar a cabo descargas más personalizadas (por país,
región, ciudad, etc) podemos descargar extractos pregenerados de la base de datos
original. Estos extractos se pueden descargar desde sitios de terceros que OSM
pone a nuestra disposición en su wiki (http://wiki.openstreetmap.org/wiki/Planet.osm).
Pero si todavía queremos personalizar más nuestras descargas (por zonas más
concretas o por la tipología de les entidades como carreteras principales, parques,
etc), OSM nos ofrece también la posibilidad de utilizar sus API’s (Xpai, Overpass
API) que gracias a su interfaz REST permiten la descarga de esos datos mediante la
generación de URL’s.
Veamos un ejemplo de petición para cada API.
Xapi: Descarga de datos por bounding box. Petición HTTP:
http://open.mapquestapi.com/xapi/api/0.6/*[bbox=2.79,41.96,2.84,41.99]
Overpass API: Descarga de datos por proximidad a las entidades con nobre
Bonn
Petición basada en un formulario con lenguaje propio de la API.
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
node["name"="Bonn"];
node
(around:1000)
["name"="Gielgen"];
out body;
2. Generación y edición de datos.
OSM es un proyecto colaborativo para crear y proveer datos geográficos libres a nivel
mundial. La principal manera de participar en esta iniciativa es editando el mapa ya
sea capturando los datos geográficos a través de dispositivos GPS y móvil o
utilizando otras fuentes de datos abiertas. Actualmente, los datos OpenStreetMap
están bajo licencia Open Database Licence (ODbL). Esto significa que el usuario es
libre de copiar, distribuir y adaptar los datos como sea necesario, pero siempre
manteniendo la misma licencia.
Editar el mapa de OpenStreetMap es el proceso de realizar cambios en los datos
geográficos existentes como por ejemplo, añadir nuevas vías, introducir puntos de
interés (POIs) que no estén presentes en el mapa, definir las características para
cada elemento, o incluso modificar los datos en el caso que sean incorrectos. Al
tratarse de un proyecto de mapeo colaborativo (también llamado crowdsourcing),
cada usuario es libre de incorporar la información que considere necesaria, siempre
que se respeten una serie de normalizaciones consensuadas por la comunidad OSM.
Debido a su naturaleza, el mapa de OpenStreetMap tiene un nivel de detalle
normalmente muy alto. Cada elemento del mapa tiene asociada una o varias
etiquetas (o tags) que nos dan las características espaciales del objeto concreto.
Contienen información acerca el tipo de elemento que hemos dibujado (si se trata de
una autopista, un sendero, un árbol, un museo…), características físicas (número de
carriles de una vía, tipo de superficie del suelo,…), u otra información adicional. En la
página wiki Map Features se recogen una serie de recomendaciones sobre cómo
etiquetar los elementos geográficos para que el mapa pueda ser interpretado
correctamente.
Figura1. Flujo recomendado. Fuente: Map Compare. Geofabrik tools
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
Para empezar a colaborar en el proyecto OpenStreetMap es necesario registrarse en
la página principal (http://www.openstreetmap.org). El flujo de trabajo para generar
datos OpenStreetMap es el siguiente:
1. Captura y adquisición de datos: Es posible utilizar tanto fuentes datos abiertas
como generando nosotros mismos la información geográfica.
2. Generación y edición de datos: Existen distintos editores para introducir
información a la base de datos de OpenStreetMap.
3. Etiquetado de los datos: Es una parte muy importante del proceso de edición de
los datos. Se trata de añadir las etiquetas o propiedades de los elementos que hemos
dibujado para poder interpretar la información del mapa.
4. Generación el mapa: Es la última fase de la edición, en la que una vez dibujados o
modificados los elementos del mapa, deberemos validar los cambios y subirlos a la
base de datos de OpenStreetMap.
A continuación se presentan las características de los principales editores
OpenStreetMap. En la wiki de OSM aparece una lista más completa de los editores
(http://wiki.openstreetmap.org/wiki/Editing):
· Editor web Potlacth: Editor online disponible en la web de OpenStreetMap.
Permite realizar ediciones simples y de forma rápida ya que los cambios
se almacenan directamente al servidor de OpenStreetMap. Dispone de
herramientas básicas para la edición de elementos, así como el etiquetado
de los mismos.
· Editor avanzado JOSM: Es el editor offline más utilizado ya que permite
crear tanto ediciones básicas como más complejas. Permite cargar tracks
GPS propios o externos, guardar conjuntos de datos en formato .osm (sin
subirlos al servidor), añadir cartografía base de otras fuentes de datos
permitidas, añadir extensiones, validar la topología de los datos, etc.
· Merkaartor: Es un editor de OSM para Unix, Windows y Mac. Tiene algunas
funcionalidades que otros editores no tienen como la transparencia de los
elementos.
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
Tabla 1: Principales editores
Pros
Potlacth
JOSM
•
Muy intuitivo y fácil de utilizar.
Curva de aprendizaje baja
•
Permite realizar ediciones
sencillas desde la web.
•
Los cambios se actualizan
directamente al servidor
OpenStreetMap
Contras
•
No permite realizar una edición
avanzada de los elementos del
mapa
•
No permite modificar grandes
conjuntos de datos
•
No es posible trabajar offline
•
Posibilidad de utilizar tracks
GPS como una nueva capa
•
Disponible en varios idiomas
•
Dispone de un modo de edición
básica y avanzada
•
Requiere instalación del
software
•
Posibilidad de editar los datos
en modo offline
•
Curva de aprendizaje más alta
•
•
Posibilidad de añadir cartografía
base de otras fuentes de datos
abiertas
La actualización de las
modificaciones realizadas en el
mapa no es inmediata.
•
Permite modificar grandes
conjuntos de datos
•
Posibilidad de introducir
fotografías y grabaciones de
voz realizadas en el trabajo de
campo
•
Dispone de una herramienta
para la validación topológica y
de etiquetado de los datos.
•
Permite la resolución de
conflictos en el caso que dos
usuarios estén editando los
mismos datos simultáneamente
•
Disponible en varios idiomas
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
•
•
Merkaartor
•
•
Tiene algunas características
únicas como la transparencia de
los elementos
Posibilidad de añadir cartografía
base de otras fuentes de datos
permitidas
Los estilos de las etiquetas se
pueden modificar
•
En desarrollo, no hay una
versión estable
•
Curva de aprendizaje media
•
No disponible en castellano
•
Menos popular que JOSM
•
Requiere instalación del
software
Posibilidad de guardar los
mapas renderizados en
formato .svg y .bmp.
3. Publicación en la red de mapas personalizados.
La publicación en la red de mapas es una de las tareas más habituales que se
llevan a cabo sobre datos OSM. Gracias a herramientas libres como Leaflet u
OpenLayers (por citar dos de las más extendidas) podemos, en pocas líneas de
código, generar mapas para nuestras páginas web, blogs, etc . Estas herramientas
están desarrolladas en código Javascript que se ejecuta en la parte cliente, por lo
que estos mapas no tienen ningún requerimiento en la parte servidor y se pueden
aplicar a cualquier página de la red.
A continuación se muestra el código necesario para, haciendo uso de la API de
Leaflet, generar un mapa que muestre la cartografía de OSM con la vista inicial que
le indiquemos (nivel de zoom y coordenadas iniciales del mapa).
Figura 2. Mapa web con LeafLet
Como se aprecia en el código, solo es necesario cambiar un par de líneas para
obtener nuestro propio mapa en el que podemos mostrar nuestra empresa, negocio,
etc.
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
4. Importación de datos OSM a bases de datos
Existen varias herramientas para la importación de datos en formato .osm a bases
de datos. Las principales son osm2pgsql, osmosis, imposm y nominatim. Estas
herramientas están pensadas para organizar los datos (dentro de las bases de datos)
siguiendo unos esquemas diseñados para unos usos muy concretos. Por ejemplo, las
herramientas osm2pgsql y imposm está diseñadas para que generen unas bases de
datos muy eficientes de caras a la renderización. Otras herramientas como
nominatim generan un esquema diseñado para la geocodificación, etc. Cada
herramienta, pues, genera un esquema.
Las características principales de estos esquemas son tres:
Que sean actualizables. Un esquema actualizable es aquel que permite aplicar
ficheros .diff. De este modo es posible mantener la base de datos actualizada.
Que contengan geometrías predefinidas. Dentro de la base de datos, las
geometrías pueden estar ya calculadas, o bien, pueden estar almacenadas en forma
de nodos y relaciones entre nodos. En este segundo caso, antes de representar cada
geometría, ésta debe antes ser calculada a partir de esos nodos y relaciones.
Que contenga todos los atributos (integral). En la base de datos de OSM existen
algunos atributos relacionados con los usuarios editores. Estos atributos no tienen
ningún uso, por ejemplo, si lo que queremos hacer es renderizar esos datos. Por esta
razón, algunas herramientas descartan estos atributos durante el proceso de
instalación.
En la siguiente tabla se muestran las principales herramientas de importación de
datos .osm junto con sus características más importantes. Algunas herramientas
como osmosis (una especie de navaja suiza para formatos .osm) permite utilizar más
de un esquema.
Tabla 2: Herramientas de importación.
Herramienta
Uso
Schema
Uso de Diff
osm2pgsql
osmosis
osmosis
imposm
osm2pgsql
Renderizar
Mirroring
Análisis
Renderizar
Geocoding
osm2pgsql
apidb
pgnapshot
imposm
nominatim
Sí
Sí
Sí
No
Sí
Geometrías
pregeneradas
Sí
No
Sí
Sí
Sí
Integral
No
Sí
No
No
Sí
Dos de las herramientas más utilizadas son : osm2pgsql y imposm. Como se ve en
la tabla 1, ambas fueron concebidas para la renderización de imágenes, motivo por el
cual, contienen las geometrías predefinidas. Cada una de esas herramientas dispone
de un fichero de configuración que permite flexibilizar (hasta cierto punto) la
importación. En el caso de osm2pgsql disponemos del fichero default.style. Su
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
equivalente para imposm es defaultmapping.py. En términos generales, estos
ficheros permiten indicar qué clase de atributos queremos importar a qué tabla.
El siguiente ejemplo muestra una porción del fichero defaultmapping.py en el que
se indica que deseamos importar, en la tabla towers, las entidades cuyo nombre sea
igual a towers y que además tengan en el atributo man_made alguno de los valores
tower, water_tower. También estamos indicando que deseamos crear en nuestra
tabla tower un nuevo atributo de tipo entero con el contenido del atributo height .
towers = Points(
name = 'towers',
mapping = {'man_made': ('tower', 'water_tower')
}
fields = (
('height', Integer()),
)
)
5. Renderización y estilos
La renderización es la conversión de los datos a imagen. Durante el proceso de
renderización se definen qué datos incluir en la imagen (en función de sus atributos),
y su estilo (color, grosor, color del borde, simbología, escala del mapa en la que debe
aparecer un elemento, escala del mapa en la que debe desaparecer, etc). La
complejidad de la renderización de datos OSM viene determinada principalmente por
tres factores: la complejidad de cada estilo, la gran variedad de elementos distintos
que contiene OSM y, en tercer lugar, el hecho de que cada nivel de zoom (hasta 22)
puede tener asignados unos estilos propios para cada elemento del mapa. Es fácil
pues, imaginar el esfuerzo requerido durante la renderización.
La herramienta utilizada para este proceso es mapnik (disponible tanto en
sistemas windows como linux).
Mapnik, además de incorporar unos estilos muy versátiles, nos da la posibilidad de
particionar las imágenes generadas en teselas para agilizar el tránsito en la red. De
este modo las imágenes transferidas son de menor tamaño y la navegación del mapa
gana fluidez. Mapnik reconoce formatos de entrada muy diversos (PostGIS, shp, tiff,
formatos OGR, GDAL, raster, etc) y permite generar imágenes de salida en formato
png, jpg, pdf, svg, tiff, etc.
Si bien la generación de estilos es un proceso muy laborioso existen herramientas
como TileMill que permiten agilizar esos procesos mediante una interfaz gráfica y
amigable. Tilemill, incluye en su instalación a mapnik como motor de renderizado.
Dentro de TileMill podemos cargar el proyecto OSMBright que contiene unos
estilos para OpenStreetMap ya definidos. De este modo, podemos personalizar
nuestros datos partiendo ya de una definición previa y centrándonos únicamente en
los elementos que queremos destacar o customizar.
6. Routing
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
Actualmente existen muchas herramientas para el cálculo de rutas óptimas mediante
datos de OpenStreetMap tanto para dispositivos de sobremesa como para
dispositivos móviles y tanto para entornos de red como en entornos offline.
Una de las herramientas más fáciles de utilizar para un usuario medio es osm2po.
Osm2po es una herramienta desarrollada en Java (multiplataforma) que permite,
mediante la ejecución de sencillos comandos, la importación de datos .osm y la
creación de un servicio web para atender las peticiones de cálculos de ruta óptimas
en un entorno web tal y como se aprecia en la siguiente imagen.
Figura 1: osm2po. Interfaz web.
Otra herramienta, para un perfil de usuario un poco más avanzado, es
osm2pgrouting. Osm2pgrouting, disponible en sistemas linux, permite importar
datos .osm a una base de datos PostgreSQL/PostGIS. Además genera la estructura
de grafo (como una tabla más) necesaria para el cálculo de rutas optimas. Al
disponer del grafo podemos modificar los costes asociados a las conexiones entre
nodos y, de este modo, personalizar las rutas según las necesidades en cada caso.
Osm2pgrouting requiere, además, de una base de datos de tipo PostGIS, las
funciones de pgRouting. pgRouting extiende una base de datos espacial
PostgreSQL/PostGIS para incluir la funcionalidad de cálculo de rutas.
7. Herramientas avanzadas
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Servicio de Sistemas de Información Geográfica y Teledetección
VII Jornadas de SIG Libre
Además de las herramientas vistas en este artículo, existe toda una serie de
herramientas disponibles para usuarios con perfiles de programación. Estas
herramientas (librerías, widgets y frameworks) permiten desarrollar nuevas
aplicaciones en distintos lenguajes de programación.
Entre algunas de estas herramientas encontramos:
Librerías para distintos lenguajes de programación.
Java, Perl, PHP, PHP, Python, R, Ruby
imposm parser, osmread, J2memap, libosm,
libOSM, libosmscout, libRoadNav, MapJumper,
osm4routing, OSMLib, OsmSharp....
Widgets. Elementos incrustables en aplicaciones.
BruTile, COSMCtrl, Halcyon, JXMapViewer, JmapViewer,
JXMapKit, kogutowicz, libchamplain, Mapsforge...
Frameworks. Entornos de desarrollo.
CloudMade, Osmium, Osmosis, OSMNavigation, libOSM
CONCLUSIONES
Como hemos ido viendo a lo largo de este articulo, OpenStreetMap es algo más
que una colección de datos que podemos descargar de la red.
Además de la propia descarga y edición de datos, existen herramientas que
permiten dar a OSM un recorrido mucho más amplio permitiendo la posibilidad de
generar distintas aplicaciones, tanto online como offline, con componente espacial
libre. Ente estas aplicaciones destacan las herramientas de renderización de
imágenes con mapnik, tilemill y osmbright y las herramientas para el cálculo de rutas
optimas muy habituales en la industria automovilística.
El estado de evolución de la cartografía OpenStreetMap ha favorecido la aparición
de nuevas herramientas, cuyo resultado ha enriquecido más si cabe el valor
intrínseco de la propia cartografía. Algo muy habitual en los proyectos colaborativos
de software Libre.
Plaça Ferrater Mora 1, 17071 Girona
Tel. 972 41 80 39, Fax. 972 41 82 30
[email protected] http://www.sigte.udg.edu/jornadassiglibre/
Descargar