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:
- Instalar los binarios de gdal (es lo que explica en el post mencionado de Cartometric)
- Instalar FWTools
- Instalar OSGeo for Windows
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)
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/:
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:
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.