Si ha trabajado con datos de OSM antes, sabrá que no es lo más fácil de extraer. Los datos de OSM pueden ser enormes y encontrar soluciones eficaces para lo que desea analizar suele ser un desafío. PyrOSM es un paquete que hace que el proceso de lectura y trabajo con datos OSM sea mucho más eficiente. ¿Cómo? Bueno, PyrOSM se basa en Cython (C Python) y utiliza bibliotecas más rápidas para deserializar datos de OSM, así como optimizaciones más pequeñas como matrices numerosas que le permiten procesar datos rápidamente. Especialmente si ha usado OSMnx antes (para casos de uso muy similares), sabe que los conjuntos de datos grandes tardan mucho en cargarse en la memoria, que es donde PyrOSM puede ayudarlo a trabajar con ellos. ¡Veamos lo que esta biblioteca puede hacer!
🌎 Datos PBF
Hablemos un poco sobre el formato de archivo específico en el que vienen los datos de OSM. PBF significa “Formato binario de búfer de protocolo” y es muy eficiente para trabajar con datos de OSM almacenados. Los datos de OSM están organizados en “bloques de archivos”, que son grupos de datos que se pueden codificar o decodificar de forma independiente. Los bloques de archivos contienen Grupos Primitivosque a su vez incluyen miles de entidades OSM, como nodos, vías y relaciones.
Los datos se pueden escalar según el nivel de granularidad deseado por el usuario. Por ejemplo, la resolución actual de la base de datos OSM es de aproximadamente ~1 cm. De hecho, si lo desea, puede descargar todos los datos de Open Street Maps en un archivo, conocido como Planet (alrededor de 1000 Gb de datos).
👩💻 Conceptos básicos de PyrOSM: lectura en conjuntos de datos
PyrOSM es un paquete que lee los datos PBF de Open Street Map basándose en dos distribuidores de datos principales: Geofabrik (datos a nivel mundial y nacional) y BBBike (datos a nivel de ciudad). El paquete permite al usuario acceder a muchos tipos de funciones:
- Edificios, PDI (puntos de interés), Uso del suelo
- Redes de calles
- Filtros personalizados
- exportando como redes
- ¡y más!
Actualmente, BBBike admite 235 ciudades en todo el mundo y puede acceder fácilmente a la lista completa llamando al “fuentes.ciudades.disponibles” método. Comenzar es bastante fácil, simplemente inicializa un objeto lector de OSM y carga los datos que deseas:
A partir de este punto, necesitaría utilizar el objeto OSM para interactuar con los datos de Berkeley. Ahora obtengamos la red de calles de Berkeley para conducir:
La impresión del objeto street_network real muestra que está almacenado en un GeoPandas GeoDataFrame con todos los atributos de OSM como longitud, autopista, velocidad máxima, etc., lo que puede ser muy útil para análisis posteriores.
Nota al margen: BBBikes (el proveedor fuente de estos datos) tiene muchos más formatos de datos de diferentes tamaños, incluidos Organic Maps OSM, Garmin OSM o SVG Mapnik, según cuál sea su caso de uso.
🔍 Mejor filtrado
Los resultados de la carga de datos anterior incluyen todos los datos de Berkeley y, de hecho, incluso los datos de las ciudades vecinas, lo cual no es ideal. ¿Y si quieres un área mucho más pequeña o más específica? Ahí es donde entra en juego el uso de un cuadro delimitador. Para crear un cuadro delimitador, puedes:
- Especifique manualmente una lista de 4 coordenadas en el formato de [minx, miny, maxx, maxy]
- pasar geometrías bien formadas (por ejemplo, una cadena de líneas o un multipolígono)
Para encontrar las coordenadas del cuadro delimitador, normalmente uso esto buscador de bbox Sitio web que te permite hacer rectángulos y luego copiar las coordenadas. A continuación se explica cómo delimitar el área alrededor del campus de UC Berkeley y obtener su red para caminar:
🎯 Exportar y trabajar con gráficos
Otra cosa buena de PyrOSM es que permite el procesamiento de red y la conexión a otras bibliotecas de análisis de red. Además de guardar redes de calles como marcos de datos geográficos, PyrOSM le permite extraer nodos y bordes almacenándolos en 2 marcos de datos separados. Aquí está el de los nodos:
Si tiene estas representaciones gráficas, es muy fácil guardarlas en varios formatos: OSMnx, igraph y Pandana y trabajar con ellas allí.
💭 Pensamientos de despedida
¡Este fue un breve resumen de lo que el pirosmo puede hacer por usted en su trabajo geoespacial! Mencioné algunos métodos que pueden ser muy útiles, como descargar conjuntos de datos específicos de un área o delimitar el área de interés y también cómo se relaciona esto con otras bibliotecas. Creo que lo mejor de pyrosm es exactamente esto: el hecho de que cierra 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!