Importación de datos de OpenStreetMap en PostGIS
El proyecto OpenStreetMap (OSM) es un proyecto mundial colaborativo cuyo objetivo es crear cartografía con una licencia libre que pueda ser descargada y utilizada para cualquier propósito con la única condición de citar su procedencia y que los productos derivados de ella dispongan de una licencia igual o compatible. Dado el carácter voluntario del proyecto, la cobertura de información varía por zonas. No obstante, su base de datos guarda una inmensa cantidad de geodatos que crece constantemente. Para hacernos una idea, a finales de febrero de 2013 el archivo Planet.osm que se genera semanalmente con los datos del proyecto (todos los nodos, vías y relaciones que conforman el mapa) almacenado en formato XML contenía más de 370 GB sin comprimir.
En esta entrada vamos a explicar cómo importar los datos de un archivo .osm en una base de datos espacial PostGIS. Existen multiples maneras de realizarlo pero en este caso voy ha utilizar osm2pgsql.
Pestaña de exportación de datos en la web de OpenStreetMap
Osm2pgsql es una aplicación sencilla de utilizar que importa los datos provenientes de OpenStreetMap (.osm) a una base de datos PostgreSQL/PostGIS. Realiza una conversión con pérdida, es decir, importa los atributos de cada elemento del mapa a partir las etiquetas que están definidas en el archivo de configuración default.style (por tanto solo importa los atributos recogidos en este archivo, no todos los disponibles) y convierte los nodos y vías a puntos, líneas y polígonos pero sin conservar las posibles relaciones entre ellos.
Proceso
Lo primero que debemos hacer es descargar los datos de nuestra zona de interés en formato OSM. Para ello hay dos opciones: ir a la la propia web del OSM y utilizar el menú exportar en donde obtendremos un archivo en formato OpenStreetMap XML, o utilizar el servicio que ofrece Geofabrik donde se puede descargar los archivos de datos agrupados por países. Yo utilizaré esta última opción.
La descarga la podemos realizar a través del navegador o directamente abriendo nuestra terminal o consola y escribiendo:
wget -O - http://download.geofabrik.de/osm/europe/spain.osm.bz2 bzcat > spain.osm
Una vez descargado nuestro archivo y descomprimido (esto último no es estrictamente necesario, como veremos más abajo), creamos en PostgreSQL una base de datos espacial que en nuestro caso llamaremos osm. Tras ello, es el momento de utilizar osm2pgsql.
De nuevo en el terminal ejecutamos el siguiente comando:
osm2pgsql --slim -H localhost -U postgres -d osm -E 4326 ./spain.osm
Donde:
-
- –slim indica el modo de arranque del osm2pgsql (normal o slim). Muy recomendable para archivos grandes. Dejar por defecto.
- -H localhost es la dirección IP del equipo donde está albergada de la base de datos: localhost.
- -U postgres se refiere al usuario de la base de datos: postgres
- -d osm especifica el nombre de la base de datos donde se volcarán los datos: osm
- -E EPSG: 4326 es un parámetro opcional que he introducido para reproyectar los datos al sistema de coordenadas WGS84 Lat Lon.
- ./spain.osm es el directorio y nombre del fichero donde osm2pgsql debe buscar el archivo .osm original. Este también puede estar en formato bzip2, por ejemplo miarchivo.osm.bz2, ya que osm2pgsql permite descomprimir al vuelo.
Podemos ver todas las opciones disponibles con:
osm2pgsql --help
Estos son los parámetros por defecto. Osm2pgsql exportará a nuestra base de datos PostGIS todos aquellos atributos o etiquetas referenciadas en el archivo default.style (en el caso de Ubuntu este se encuentra en el directorio /usr/share/osm2pgsql. Si trabajamos en Windows el archivo se suele hallar en C:/Program Files/share/default.style).
Los atributos de los datos OSM están formado por centenares de etiquetas o tags. Cada elemento gráfico se clasifica generalmente con al menos una de estas etiquetas. Osm2pgsql utilizará en la importación estos atributos para crear tantos campos como etiquetas queramos importar y que serán indicadas en el archivo default.style. Por supuesto, este archivo se puede abrir desde un editor de texto plano y modificarle para añadir o eliminar etiquetas en nuestra importación.

En este caso, se han añadido cuatro etiquetas más el archivo default.style referente a las velocidades máximas de circulación en carreteras y otras vías.
El tiempo de importación variará dependiendo del área elegida y la densidad de datos disponibles, así como las características del ordenador. A modo de orientación en un equipo Intel Core 2 Quad CPU Q6600 2.40GHz × 4 el proceso de importación para toda España con la reproyección a EPSG:4326 de los datos tardó unas 2:30 horas (a fecha de publicación de este artículo).
Una vez terminado el proceso, la base de datos estará poblada con la información geográfica importada y lista para ser utilizada. En la imagen inferior puedes ver la selección de todas las carreteras, caminos y sendas (highway=*) de España -excepto las Islas Canarias- tras realizar una consulta previa con Quantum GIS.

Consulta en QGIS de nuestra bases de datos PostGIS con la red de carreteras y caminos de España, excepto las Islas Canarias, provenientes de OSM.

GIS Project Manager con más de 15 años de experiencia en el campo de los Sistemas de Información Geográfica (GIS) participando en proyectos aplicados al transporte y movilidad, los servicios urbanos, el medio ambiente y el patrimonio.