Oct 202012
 

OpenStreetMap (OSM) es una iniciativa para la construcción de una base de datos de información geográfica en la que miles de voluntarios participan desinteresadamente, añadiendo y actualizando permanentemente los datos geográficos y puntos de interés en todo el mundo.

En este artículo vamos a presentar la estructura y contenido de la base de datos OSM.

Descarga de la base de datos

Hay varias maneras de obtener la información de la base de datos de OpenStreetMap. Por una parte, es posible descargarla como un único fichero Planet.osm. Este fichero se actualiza con una periodicidad semanal, y se ofrece en los formatos  PBF (efficient binary) y OSM XML. Pero se trata de un fichero de gran tamaño (16 GB en forma de fichero XML comprimido, 250 GB expandido).

También están disponibles extractos limitados por contenido o por el área geográfica que cubren. En concreto, dede http://downloads.cloudmade.com/ es posible descargarse extractos por país. Estos extractos se actualizan cada seis meses, por lo que pueden ser válidos para la mayoría de las aplicaciones.

Cloudmade ofrece extractos completos para cada país, y también extractos filtrados por el tipo de contenido (datos gráficos, POI) en distintos formatos (OSM XML, ESRI shapefiles, Adobe Illustrator).

En este artículo vamos a descargar y analizar el extracto completo en formato OSM XML correspondiente a España. El fichero comprimido se llama ‘spain.osm.bz2’ y ocupa 382 MB, y tras ser expandido ocupa 5.2 GB.

Estructura de los datos OSM

Los datos OSM son un conjunto de tres tipos de elementos: nodos, relaciones y vias, a los que se les asignan atributos (tags).

Un nodo es simplemente un par de coordenadas (latitud, longitud) que definen una localización en el mapa. Los tags asociados permiten saber si se trata de una ciudad, un restaurante, un hospital,… Un ejemplo de nodo en la base de datos que hemos descargado es el siguiente:

Como vemos, el tag “place” identifica el nodo como una ciudad (“town”), y el tag “name” indica que se trata de Avilés.

Por su parte, los tags “is_in”, “is_in:province_code” y “is_in:municipality” contienen la clasificación jerárquica de la población dentro de un municipio, provincia, etc.

Otros tags, como “population”, dan información adicional sobre el nodo.

Una vía es una serie ordenada de nodos que define una calle, camino, carretera o autopista. Por ejemplo:

Los atributos “ref” que aparecen en los elementos <nd> de la vía son referencias a los nodos que la componen.

El tag “highway” indica el tipo de vía, en este caso “residential” indica que es una calle de un núcleo urbano.

Una relación es un conjunto de nodos que constituyen una entidad geográfica. Por ejemplo:

En un primer análisis, contabilizamos los totales de nodos, vías y relaciones existentes en el fichero descargado, así como los totales de los distintos tipos de tags asociados a cada uno de ellos:

Num Nodos sin tags: 22.250.376
Num Nodos con tags: 1.645.305
Num Vias: 1.417.368
Num Relaciones: 40.743

Como podemos observar, el número más elevado de elementos corresponde a nodos que simplemente contienen coordenadas, sin ningún tag adicional asociado. Las series ordenadas de estos nodos constituyen las vías. El siguiente tipo de elemento en volumen son los nodos con tags asociados, seguidos de las vías y de las relaciones. En cuanto a los tags asociados a elementos de tipo nodo, hay más de 1.100 tipos distintos. Los totales de los tags más frecuentes en el fichero analizado, son:

Tags asociados a nodos
Total Tag
914566 source
713940 name
601865 source:date
582752 source:name
572751 note
554660 source:file
551245 place
534754 is_in:state
534740 note:es
534710 is_in:state_code
534705 ngbe:id
etc…

 

El tag “place”

De entre los tags asociados a nodos, el tag “place” identifica elementos geográficos. Si contabilizamos los totales de los distintos valores asignados a los tags de tipo “place”, obtenemos:

Valores del tag “place”
Total Place
524294 locality
14468 hamlet
9365 village
3229 suburb
1126 town
981 isolated_dwelling
245 island
146 islet
103 city
53 county
43 region
9 isolated_dewlling
9 state
9 vicinity
5 farm
3 location
2 baserria
2 lo
1 country
etc…

“locality” se utiliza para añadir una denominación a cualquier localización geográfica. Por ejemplo:

Por su parte, “hamlet” (aldea), “village” (pueblo), “town” (ciudad), etc. identifican los nodos como correspondientes a núcleos de población

El tag “amenity”

Otro tag interesante es el tag “amenity”. Contabilizando los distintos valores asignados a este tag en el fichero analizado, obtenemos:

 

Total Amenity
9218 fuel
6651 restaurant
5556 parking
4875 school
3603 bank
3147 bar
3061 place_of_worship
2779 pharmacy
2563 cafe
2010 pub
1991 recycling
1787 drinking_water
1710 bench
1445 telephone
1039 fast_food
838 post_box
800 fountain
673 hospital
597 police
etc…

Por lo que hemos visto, podemos concluir que, aunque no está exenta de errores y carece de una estructura robusta y sistemática que los evite, la base de datos de OSM constituye una valiosa fuente de información geográfica.

 Publicado por en 12:27 pm

 Deja un comentario

(requerido)

(requerido)