[pyar] PIOs

Sebastián Paniagua sebastian.paniagua en gmail.com
Mar Ago 7 22:58:01 -03 2018


El mar., 7 de ago. de 2018 a la(s) 17:05, Augusto Tononi (adtononi en gmail.com)
escribió:

> Buenas tardes gente, les vengo con otra consulta.
>
> En el laburo estamos haciendo un análisis de POIs (point of interests), y
> descargamos info de geofabrik.de
> La cuestión es que tagean de una manera bastante peculiar a los lugares, y
> no conseguimos matchear suficiente.
> Alguien trabajó ya con estos archivos? Son osm.pbf
>
> Estamos usando la librería imposm.parser
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar


Hola Augusto!

De vez en cuando me toca divertirme con estos archivitos :P

Protocol buffer (protobuf para los amigos) es una tecnología que nació en
google por la necesidad de comunicar servidores entre si optimizando la
serialización de los mensajes sin utilizar xml o json[1
<https://developers.google.com/protocol-buffers/>].

La peculiaridad de protobuf reside en que, en una comunicación p2p por
ejemplo, ambos extremos conocen el formato del mensaje (que se define en un
archivo .proto) y sólo transmiten los datos serializados, sin "metadata".

PBF (Protocol buffer Binary Format) es el formato utilizado por
OpenStreetMaps (OSM) para distribuir la información que recopilan [2
<https://wiki.openstreetmap.org/wiki/PBF_Format>]. Es una alternativa a la
distribución de la misma información en XML.

Para leer el archivo es necesario tener las librerias de protobuf en tu
lenguaje favorito y un archivo ".proto" que tenga la definición de la
serialización de las entidades en el pbf.

En el caso del imposm.parser, ya viene incluido el archivo .proto y las
dependencias (en la sección "install" vas a ver que es necesario instalar
protobuf) y sólo se debe proveer el archivo en cuestión.

El archivo pbf tiene colecciones de entidades definidas por OSM, que
básicamente son nodos, caminos, coordenadas y relaciones entre estos 3
anteriores.

Cada uno de ellos tiene un nombre y tiene tags que los identifican.

Es tanta la cantidad de información y tan diverso el criterio que los
usuarios de OSM tienen al cargar la info que buscar POIs se vuelve algo un
poco subjetivo, tal como ellos mismos lo reconocen [3
<https://wiki.openstreetmap.org/wiki/Points_of_interest>].

Pero a no desesperarse, que filtrando los nodos y buscando los tags
correctos podés alcanzar muy buenos resultados. Por ejemplo, si tu contexto
es el turismo, podés buscar los nodos que tengan el tag "leisure"[4
<https://wiki.openstreetmap.org/wiki/Key:leisure>] o "amenity"[5
<https://wiki.openstreetmap.org/wiki/Key:amenity>] y vas a cosechar
bastante info.

Te dejo el link a un fragmento de código que busca todos los nodos con el
tag "amenity". Si descomentas el print del callback vas a ver la info del
tag y su geoposición.

http://linkode.org/#f32r9Gw4KHX7Zut1jckCH3

Saludos!

[1] https://developers.google.com/protocol-buffers/
[2] https://wiki.openstreetmap.org/wiki/PBF_Format
[3] https://wiki.openstreetmap.org/wiki/Points_of_interest
[4] https://wiki.openstreetmap.org/wiki/Key:leisure
[5] https://wiki.openstreetmap.org/wiki/Key:amenity


-- 
Sebastián
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180807/95291267/attachment.html>


Más información sobre la lista de distribución pyar