Transformar ficheros osm de OpenStreetMap a Shapefile usando ogr2ogr de GDAL

Teniendo la descarga del fichero osm con los datos que queremos explicados en el anterior post, vamos a transformar estos datos en capas vectoriales con la que podemos trabajar en cualquier SIG o plataforma.

Existen webs como MyGeoData en la que puedes realizar ese tipo de transformaciones, pero si buscamos algo más personalizado y que nos permite su automatización, debemos de tirar de GDAL para transformar.

Para instalar GDAL en Windows, puede llevar un par de dolores de cabeza (o ir todo bien a la primera).

La forma que me funcionó mejor de todas es la que explican en este post: Cartometric.com – Install gdal on Windows

Por lo general hay varias opciones:

Lo que usaremos es la función de gdal: ogr2ogr,permite la transformación entre gran cantidad de formatos geo. En el manual de ogr2ogr podemos ver todas las opciones que contiene.

Para comprobar que todo te funciona tienes que poder ejecutar por consola un comando como: ogr2ogr –version. También aprovechamos para ir al directorio donde tenemos nuestro ficheros cities_europe.osm (he visto que luego he utilizado rutas absolutas a la hora de indicar donde están/queremos los ficheros, así que ir aquí no sería necesario para este caso)

2015-11-04 21_55_45-ogr2ogr

Ahora es cuando vamos a realizar la transformación el fichero osm a shape. El comando completo sería este:

ogr2ogr -f “Esri Shapefile” C:\temp\shp C:\temp\cities_europe.osm -overwrite -t_srs EPSG:4326 -nln cities_europe_shp -lco SHPT=POINT –config OSM_USE_CUSTOM_INDEXING NO -skipfailures layer points

Por partes:

– f “Esri Shapefile”: indicamos el tipo de fichero de salida que deseamos

C:\temp\shp : la carpeta donde queremos el nuevo fichero

C:\temp\cities_europe.osm : el fichero que queremos transformar

-overwrite : indicamos que sobrescriba si ya existe un fichero con el nombre del fichero nuevo

-t_srs EPSG:4326 : indicamos la transformación que queremos aplicarle. Los ficheros osm ya vienen con 4326, osea que en este caso concreto no sería necesario establecer este parámetro.

-nln cities_europe_shp : nombre que le daremos al nuevo fichero shape creado

– lco SHPT=POINT : dentro del fichero osm pueden haber diferentes tipos de geometrías. Con esto ya indicamos que la capa de salida será de tipo punto

–config OSM_USE_CUSTOM_INDEXING NO : Tiene que ver con el driver de osm que utilizamos, más info aquí.

-skipfailures : para evitar que muestre errores que encuentre

layer points : el driver de osm genera varias capas, una por cada tipo de geometría que encuentra, con este parámetro indicamos que solo queremos la capa de puntos

 

Ahora ya podemos ver que ha creado la capa cities_europe_shp.shp en la carpeta /shp/:

2015-11-04 22_24_46-ogr2ogr_3

Vemos que aparecen algunos errores, parece que son debidos a que algunos campos exceden el límite de 254 caracteres.

Ahora abrimos cualquier SIG que tengamos, y podemos comprobar que tenemos una capa de puntos, con sus campos que venían en el osm:

2015-11-04 22_29_07-gvsig_ogr

Vemos que aparecen más etiquetas en other_tags. Si quisiéramos, cuando lanzamos el comando de ogr2ogr, podemos establecer cuales etiquetas queremos que importe como columnas. Tendría que mirarlo que ahora mismo no lo recuerdo, pero para que tengáis en mente que sería posible que esas etiquetas aparecieran como columnas independientes.

 

1 comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: