Twitter Yopaseopor

Movilidad

Pinterest

diumenge, 3 d’abril de 2016

#YoMapeo #MiPrimerGIS Algunos ejemplos ;)

Gracias a una máquina virtual facilitada por @xevib  y que podeis encontrar aquí https://mega.nz/#!0xREgRYS!ABA7n9BgCo-12_vwHXGgfkOLmV-d7fhV3hFfCQ1Fqq4 he hecho una pequeña incursión en el mundo del GIS. Todo vino por el tema de render propio, mapa de aparcamiento, etc. De aquello se derivó el trabajo en Mapbox que ya colgué (como no me funcionaba ni Mapbox ni Mapillary el hecho de un entorno virtual en otro sistema operativo me animó a probar todo ello).
 Pero con Mapbox aún las cosas no quedaban claras, quedaban limitadas (propiedades que no sé hacer surgir y datos que no sé cargar) , y no acababa de cumplir mis expectativas.Así que requerí un pelín de ayuda pero he hecho mis pinitos con un GIS.
 Para empezar esta máquina virtual no es más que un ubuntu con postgres+postgis,qgis, y tilemill instalados.Pero lo más importante para mí y lo que vale su peso en oro es su configuración, además del script que me descarga y coloca los datos. Es cierto que he perdido el control de parte del proceso "creativo" (yo hago clic en el script del escritorio que podeis encontrar también aquí y los datos de España se descargan y se colocan en su sitio para que yo los pueda usar) pero agradezco saltarme esos pasos primeros para poder aceder a un poco de "chicha" , que me permite ver las posibilidades de estos datos bien procesados.Y lo he hecho a través de dos herramientas: QGIS y PGADMINIII.

 Antes de empezar...ejecuté el script, se descargaron los datos españoles de OSM en su sitio y empezamos.En un primer momento el script acabó demasiado rápido. Para comprobar dónde estaba el fallo ejecuté el script vía terminal , por lo que vimos que la máquina virtual necesitaba más CPUS y más memoria para procesar los datos.una vez solventadas estas dificultades empezamos, de verdad.Por QGIS

 Mi primer QGIS


 Guiado siempre por @xevib fui cumpliendo pasos algo sencillos.
 -Clica al elefante con un + y apretamos "Nueva"(que creará una nueva conexión a esas bases de datos que ha creado el script)

 -aparecerá el menú que veis en pantalla y lo rellenareis de la siguiente manera

 nombre: el que desees
 servicio: en blanco
 servidor: localhost
 base de datos:osm
 usuario:osm
 password:openstreetmap
y apretamos en test connection
finalmente apretamos ok
Ya tenemos nuestra conexión de la que cargaremos las diversas bases de datos. Cargamos (dadle a cargar).

Para probar escoged una o las que deseeis (se puede hacer con más de una pero todo os irá algo más lento por la cantidad de datos a procesar) (pensad también que cada tabla tendrá acceso a las diversas propiedades, por ejemplo osm_roads...creará las carreteras...no las calles.)
 Y cómo por arte de magia surgirán nuestros datos colocados de forma "reconocible" gráficamente hablando, sobretodo si conoceis vuestra ciudad (¿qué pensais que hice yo? ir a ver "mi casa" como todo hijo de vecino). Vemos que se ha creado una silueta de nuestro país, que si vamos ampliando a nuestra zona se ven "esbozadas" nuestras ciudades y nuestras calles.Y si nos acercamos a una de ellas y pulsamos el icono de información saldrán todas las propiedades de la vía, cosa que ya nos suena más de nuestros trabajos en OSM.

 Pero esto así, a palo seco nos sirve de poco. Así que vamos a ver qué podemos pedir que nos cargue y como lo va a mostrar (el objetivo es "hacer" un mapa).Por eso iremos a propiedades.
 
 Y entonces...y por ir rápido volveremos a bajarnos algo prehecho. Yo por ejemplo he confiado en los estilos de https://github.com/3liz/osm-in-qgis https://github.com/anitagraser/QGIS-resources/tree/master/qgis2/osm_spatialite y http://anitagraser.com/2014/05/31/a-guide-to-googlemaps-like-maps-with-osm-in-qgis/ (los cuales, si no van se pueden adaptar un poco).Por ejemplo asegurémonos que la consulta para ver una tertiary (y que vemos en la pestaña estilos sea "highway" IN ('tertiary') tal y como la veis aquí (de hecho si no es así vereis que "desaparecen" del mapa)

 Y ahora que lo vemos... pues sigamos las instrucciones de http://www.qgistutorials.com/en/docs/making_a_map.html para hacer un mapa en condiciones.
 Añadir mapa (pergamino enrollado), trastear con menús y formatos y el resultado es éste que podeis ver.

 Pero aún hay más.Si llevas tiempo en OSM o si le preguntas a alguien que lleva tiempo te dirá una frase que, de entrada te dejará algo descolocado: OSM no es un mapa, es una base de datos.Y nosotros lo vamos a comprobar ahora mismo.
 Una de las herramientas que lleva instaladas la máquina es el PGAdmin III , una herramienta de PostgreSQL.

Mi primera consulta SQL


 Veremos ya una conexión realizada, así que le clicamos con el botón derecho y la conectamos.
 A partir de ahí saldrán varias ramas. Pero nosotros nos vamos a dedicar a , por ejemplo hacer consultas arbritrarias SQL (lupa con SQL en el medio).

 Un ejemplo: quiero todos los caminos asfaltados (lo que equivaldría a track con tracktype de grado 1 y asfalto como superficie)

select * from planet_osm_line
where highway='track'
and tracktype='grade1'
and surface='asphalt'

y le damos al botón de play (ejecutar la consulta)

En la parte inferior podremos observar como el contadors de tiempo de la consulta empieza a contar en ms. a marchas forzadas .
Poco después veremos los datos de esa tabla de datos, si buscamos algunas de las claves de OSM las varemos ejerciendo de columnas mientras que los valores hacen de filas.

También nos servirá para ver lo útiles que son los límites administrativos, en este caso nos servirán para poder seleccionar los datos.
Así que a nuestra consulta anterior le añadiremos esta otra:

 select * from planet_osm_polygon where
  ST_Within(way,
    (select way from planet_osm_polygon
    where admin_level='4'
    and name='Catalunya'));

lo cual por simple deducción nos puede llevar a pensar que podemos usar cualquier límite administrativo reconocido en OSM

 select * from planet_osm_polygon where
  ST_Within(way,
    (select way from planet_osm_polygon
    where admin_level='8'
    and name='Vilanova i la Geltrú'));

Para seguir con nuestro experimento vamos a combinar las dos opciones, el resultado será una consulta que nos mirará todos los caminos asfaltados de Catalunya, como veis lo único que he hecho ha sido combinar las dos consultas y poner el final al final de todo y no al final de la primera consulta.

select * from planet_osm_line
where
 ST_Within(way,
 (select way from planet_osm_polygon
 where admin_level='4'
 and name='Catalunya'))
    and highway='track'
  and tracktype='grade1'
  and surface='asphalt';
 

 Doble combo: PGADMINIII+QGIS


 Porque si agarramos esta preciosa consulta y le aplicamos el hecho de crear una tabla como ésta

 create table camins as(
 select * from planet_osm_line
where
 ST_Within(way,
 (select way from planet_osm_polygon
 where admin_level='4'
 and name='Catalunya'))
    and highway='track'
  and tracktype='grade1'
  and surface='asphalt');
 
El resultado es una base de datos...que podremos volver a abrir en QGIS, con sus estilos, etc.
Y esto solo ha hecho que empezar, lo que veis aquí son simples ejemplos, OSM tiene muchas claves y valores diferentes así que no hay límites!

Cap comentari:

Publica un comentari a l'entrada