PyrOSM: lavorare con i dati di Open Street Map |  di Dea Bardhoshi |  Ottobre 2023

 | Intelligenza-Artificiale

Manipolazioni geospaziali efficienti per i dati cartografici OSM

fotografato da Tabea Schimpf SU Unsplash

Se hai già lavorato con i dati OSM, sai che non sono i più facili da estrarre. I dati OSM possono essere enormi e trovare soluzioni performanti per ciò che si desidera analizzare è spesso una sfida. PyrOSM è un pacchetto che rende il processo di lettura e utilizzo dei dati OSM molto più efficiente. Come? Bene, PyrOSM è basato su Cython (C Python) e utilizza librerie più veloci per deserializzare i dati OSM, nonché ottimizzazioni più piccole come gli array numpy che gli consentono di elaborare rapidamente i dati. Soprattutto se hai già utilizzato OSMnx (per casi d’uso molto simili), sai che set di dati di grandi dimensioni richiedono molto tempo per essere caricati in memoria, ed è qui che PyrOSM può aiutarti a lavorarci. Scopriamo cosa può fare questa libreria!

🌎Dati PBF

Parliamo un po’ del formato file specifico in cui arrivano i dati OSM. PBF sta per “Protocolbuffer Binary Format” ed è molto efficiente per lavorare con i dati OSM archiviati. I dati OSM sono organizzati in “blocchi di file”, che sono gruppi di dati che possono essere codificati o decodificati in modo indipendente. I blocchi di file contengono Gruppi primitiviche a loro volta comprendono migliaia di entità OSM, come nodi, vie e relazioni.

I dati possono essere scalati in base al livello di granularità desiderato dall’utente. Ad esempio, la risoluzione dell’attuale database OSM è di circa ~1 cm. Infatti, se lo desideri, potresti scaricare tutti i dati di Open Street Maps in un unico file, noto come Planet (circa 1000 Gb di dati)!

👩‍💻 Nozioni di base su PyrOSM: lettura di set di dati

PyrOSM è un pacchetto che legge i dati PBF di Open Street Map in base a due principali distributori di dati: Geofabrik (dati a livello mondiale e nazionale) e BBBike (dati a livello di città). Il pacchetto consente all’utente di accedere a molti tipi di funzionalità:

  • Edifici, POI (punti di interesse), Uso del territorio
  • Reti stradali
  • Filtri personalizzati
  • esportare come reti
  • e altro ancora!

Ci sono 235 città in tutto il mondo attualmente supportate da BBBike e puoi accedere facilmente all’elenco completo chiamando il numero “fonti.città.disponibili” metodo. Iniziare è abbastanza semplice, devi semplicemente inizializzare un oggetto lettore OSM e caricare i dati desiderati:

Da questo punto, dovrai utilizzare l’oggetto OSM per interagire con i dati Berkeley. Ora prendiamo la rete stradale di Berkeley per la guida:

Dataframe per la rete stradale OSM di Berkeley

La stampa dell’oggetto street_network effettivo mostra che è archiviato in un GeoDataFrame GeoPandas con tutti gli attributi OSM come lunghezza, autostrada, velocità massima ecc., che può essere molto utile per ulteriori analisi.

Nota a margine: BBBikes (il fornitore di origine di questi dati) ha molti più formati di dati di diverse dimensioni, tra cui Organic Maps OSM, Garmin OSM o SVG Mapnik a seconda del caso d’uso.

🔍 Migliore filtraggio

I risultati del caricamento dei dati di cui sopra includono tutti i dati di Berkeley e in effetti anche i dati delle città vicine, il che non è l’ideale. E se volessi un’area molto più piccola o più specifica? È qui che entra in gioco l’utilizzo di un riquadro di delimitazione. Per creare un riquadro di delimitazione puoi:

  • Specifica manualmente un elenco di 4 coordinate nel formato di (minx, min, maxx, max)
  • passare in geometrie formose (ad esempio una stringa di linee o un multipoligono)

Per trovare le coordinate del riquadro di delimitazione, in genere lo utilizzo cercatore bbox sito web che ti consente di creare rettangoli e quindi copiare le coordinate. Ecco come delimitare l’area attorno al campus della UC Berkeley e ottenere la sua rete pedonale:

Rete stradale che utilizza un riquadro di delimitazione

🎯 Esportare e lavorare con i grafici

Un altro aspetto positivo di PyrOSM è il modo in cui consente l’elaborazione di rete e la connessione ad altre librerie di analisi di rete. Oltre a salvare le reti stradali come geodataframe, PyrOSM ti consente di estrarre nodi e bordi memorizzandoli in 2 dataframe separati. Ecco quello dei nodi:

Dataframe dei nodi della rete stradale

Se disponi di queste rappresentazioni grafiche, è molto semplice salvarle in vari formati: OSMnx, igraph e Pandana e lavorarci lì.

💭 Pensieri di commiato

Questo era un breve riassunto di ciò che il pirosma può fare per te nel tuo lavoro geospaziale! Ho accennato ad alcuni metodi che possono essere molto utili, come scaricare set di dati specifici da un’area o delimitare l’area di interesse e anche come questa si collega ad altre biblioteche. Penso che la cosa migliore del pirosma sia proprio questa: il fatto che colma il divario tra gli enormi set di dati OSM e le domande di ingegneria o analisi a cui puoi rispondere con esso.

Grazie per aver letto!

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *