PyrOSM trabajando con datos de Open Street Map

PyrOSM Transformando datos de Open Street Map en acción

Manipulaciones geoespaciales eficientes para datos de mapas OSM

Foto de Tabea Schimpf en Unsplash

Si has trabajado con datos de OSM antes, sabrás que no es fácil extraerlos. Los datos de OSM pueden ser enormes y encontrar soluciones efectivas para lo que quieres analizar a menudo es un desafío. PyrOSM es un paquete que permite leer y trabajar con los datos de OSM de manera más eficiente. ¿Cómo? Bueno, PyrOSM se basa en Cython (C Python) y utiliza bibliotecas más rápidas para deserializar los datos de OSM, así como optimizaciones más pequeñas como matrices numpy, lo que le permite procesar los datos rápidamente. Especialmente si has usado OSMnx antes (para casos de uso muy similares), sabrás que los conjuntos de datos grandes tardan mucho tiempo en cargarse en la memoria, y ahí es donde PyrOSM puede ayudarte a trabajar con ellos. ¡Veamos qué puede hacer esta biblioteca!

🌎 Datos PBF

Hablemos un poco sobre el formato de archivo específico en el que vienen los datos de OSM. PBF significa “Protocolbuffer Binary Format” y es muy eficiente para trabajar con los datos de OSM almacenados. Los datos de OSM se organizan en “bloques de archivo”, que son grupos de datos que se pueden codificar o decodificar de forma independiente. Los bloques de archivo contienen “GruposPrimitivos”, que a su vez incluyen miles de entidades de OSM, como nodos, caminos y relaciones.

Los datos se pueden escalar de acuerdo con el nivel de granularidad deseado por el usuario. Por ejemplo, la resolución actual de la base de datos de OSM es de alrededor de ~1 cm. De hecho, si quisieras, podrías descargar todos los datos de Open Street Maps en un solo archivo, conocido como Planet (¡alrededor de 1000 GB de datos)!

👩‍💻 Conceptos básicos de PyrOSM: lectura de conjuntos de datos

PyrOSM es un paquete que lee los datos PBF de Open Street Map basados en dos principales distribuidores de datos: Geofabrik (datos a nivel mundial y por país) y BBBike (datos a nivel de ciudad). El paquete permite al usuario acceder a muchos tipos de características:

  • Edificios, puntos de interés (POI), uso del suelo
  • Redes de calles
  • Filtros personalizados
  • exportación como redes
  • y más!

Actualmente, BBBike admite 235 ciudades en todo el mundo, y puedes acceder fácilmente a la lista completa llamando al método “sources.cities.available”. Comenzar es bastante fácil, simplemente inicializas un objeto lector de OSM y cargas los datos que deseas:

A partir de este punto, necesitarías utilizar el objeto OSM para interactuar con los datos de Berkeley. Ahora veamos la red de calles de Berkeley para conducir:

Dataframe para la red de calles de Berkeley en OSM

Imprimir el objeto “street_network” muestra que se almacena en un GeoDataFrame de GeoPandas con todos los atributos de OSM, como longitud, highway, maxspeed, etc., lo cual puede ser muy útil para un análisis más detallado.

Nota adicional: BBBike (el proveedor de datos) tiene muchos otros formatos de datos de diferentes tamaños, incluidos Organic Maps OSM, Garmin OSM o SVG Mapnik, dependiendo de tu caso de uso.

🔍 Mejor filtrado

Los resultados de la carga de datos anteriores incluyen todos los datos de Berkeley e incluso datos de las ciudades vecinas, lo cual no es ideal. ¿Qué pasa si deseas un área mucho más pequeña o más específica? Ahí es donde se utiliza una caja delimitadora. Para hacer una caja delimitadora, puedes:

  • Especificar manualmente una lista de 4 coordenadas en el formato de [minx, miny, maxx, maxy]
  • Pasar geometrías de Shapely (por ejemplo, una LineString o Multipolygon)

Para encontrar las coordenadas del cuadro delimitador, suelo utilizar este sitio web bbox finder que te permite crear rectángulos y luego copiar las coordenadas. Aquí te explico cómo delimitar el área alrededor del campus de UC Berkeley y obtener su red de caminatas:

Red de calles utilizando un cuadro delimitador

🎯 Exportando y Trabajando con Gráficos

Otra ventaja de PyrOSM es que permite el procesamiento de redes y la conexión con otras bibliotecas de análisis de redes. Además de guardar redes de calles como geodataframes, PyrOSM te permite extraer nodos y bordes almacenándolos en 2 dataframes separados. Aquí tienes el de los nodos:

Dataframe de nodos de la red de calles

Si tienes estas representaciones de gráficos, es muy fácil guardarlas en varios formatos: OSMnx, igraph y Pandana y trabajar con ellos allí.

💭 Pensamientos Finales

Esto fue un breve resumen de lo que pyrosm puede hacer por ti en tu trabajo geoespacial. Mencioné algunos métodos que pueden ser muy útiles, como descargar conjuntos de datos específicos de un área, o delimitando el área de interés y también cómo se relaciona esto con otras bibliotecas. Creo que lo mejor de pyrosm es precisamente esto: el hecho de que une la brecha entre enormes conjuntos de datos de OSM y las preguntas de ingeniería o análisis que puedes responder con él.

¡Gracias por leer!

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Investigadores de CMU proponen TIDEE Un agente incorporado que puede ordenar habitaciones nunca antes vistas sin ninguna instrucción explícita

La operación efectiva de un robot requiere más que simplemente obedecer ciegamente comandos predefinidos. Los robots ...

Inteligencia Artificial

Más allá de Photoshop Cómo Inst-Inpaint está revolucionando la eliminación de objetos con modelos de difusión

El inpainting de imágenes es un arte antiguo. Es el proceso de eliminar objetos no deseados y rellenar píxeles faltan...

Inteligencia Artificial

Esta revisión de investigación de IA explora la integración de imágenes satelitales y aprendizaje profundo para medir la pobreza basada en activos.

Investigadores de la Universidad de Lund y la Universidad de Halmstad llevaron a cabo una revisión sobre la inteligen...

Inteligencia Artificial

Conoce a SQLCoder Un nuevo modelo de código abierto y de última generación para convertir preguntas en lenguaje natural en consultas SQL

Defog.ai ha lanzado SQLCoder, un modelo de vanguardia para traducir consultas en lenguaje natural en consultas de bas...

Inteligencia Artificial

Empaqueta e implementa fácilmente modelos de ML clásicos y LLMs con Amazon SageMaker, parte 2 Experiencias interactivas para usuarios en SageMaker Studio

Amazon SageMaker es un servicio completamente administrado que permite a los desarrolladores y científicos de datos c...

Inteligencia Artificial

Miles en fila para obtener el implante de chip cerebral de Neuralink, de Elon Musk

El implante, diseñado para reemplazar la pieza del cráneo removida, leerá y analizará la actividad cerebral de la per...