5 Pacchetti Python per l’Analisi dei Dati Geospaziali

5 Pacchetti Python Geospaziali

 

Introduzione

 

L’analisi dei dati geospaziali è fondamentale nella pianificazione urbana, nella ricerca ambientale, nell’agricoltura e nell’industria dei trasporti. La crescente necessità ha portato a un aumento dell’uso di pacchetti Python per vari requisiti di analisi dei dati geografici, come l’analisi dei modelli climatici, l’indagine sullo sviluppo urbano o il monitoraggio della diffusione delle malattie, tra gli altri. Valutare e selezionare gli strumenti giusti con capacità di elaborazione, modifica e visualizzazione rapida è essenziale per analizzare ed elaborare efficacemente i dati geospaziali.

 

Comprensione dei dati geospaziali

 

È essenziale capire innanzitutto cosa sono i dati geospaziali. I dati geospaziali sono dati con un componente geografico che rappresenta la posizione e le caratteristiche di oggetti, elementi o eventi sulla superficie terrestre. Descrivono le connessioni spaziali, le distribuzioni e le proprietà di oggetti diversi nell’universo fisico. I dati geospaziali sono principalmente di due tipi:

  • Dati raster: sono adatti per informazioni continue senza confini fissi, rappresentati come una griglia di celle con valori che indicano le caratteristiche osservate. Spesso vengono monitorati a intervalli regolari e interpolati per creare una superficie continua.
  • Dati vettoriali: utilizzano punti, linee e poligoni per rappresentare proprietà spaziali, inclusi punti di interesse, reti di trasporto, confini amministrativi e lotti di terreno, spesso utilizzati per dati discreti con posizioni precise o vincoli rigidi.

I dati geospaziali possono essere archiviati in vari formati, come:

  • ESRI Shapefile
  • GeoJSON
  • Formato di file immagine Erdas Imagine (EIF)
  • GeoTIFF, Geopackage (GPKG)
  • GeoJSON, Light Detection
  • Ranging (LiDAR) e molti altri.

I dati geospaziali comprendono vari tipi, come immagini satellitari, modelli di elevazione, nuvole di punti, classificazioni dell’uso del suolo e informazioni basate su testo, offrendo informazioni preziose per l’analisi spaziale e la decisione in vari settori. Grandi aziende come Microsoft, Google, Esri e Amazon Web Services utilizzano dati geospaziali per informazioni preziose. Esploriamo i cinque principali pacchetti Python per l’analisi dei dati geospaziali. Questi pacchetti consentono la lettura/scrittura dei dati, la manipolazione, la visualizzazione, la geocodifica e l’indicizzazione geografica, rivolgendosi sia ai principianti che agli utenti esperti. Scopri come questi pacchetti permettono una scoperta, una visualizzazione ed un’estrazione di informazioni efficaci dai dati geospaziali. Iniziamo!

 

1. Geopandas

 

Adatto per: Dati vettoriali

Geopandas è una libreria Python ampiamente utilizzata per lavorare con dati geospaziali vettoriali, fornendo una gestione intuitiva dei dati geografici in Pandas DataFrames. Supporta formati come Shapefile e GeoJSON e offre operazioni spaziali come unione, raggruppamento e join spaziali. Geopandas si integra perfettamente con librerie popolari come Pandas, NumPy e Matplotlib. Può gestire grandi set di dati, ma ciò può presentare sfide. Il pacchetto Geopandas è comunemente utilizzato per attività di analisi dei dati spaziali, tra cui join spaziali, interrogazioni e operazioni geospaziali come il buffering e l’analisi di intersezione. Geopandas richiede diversi pacchetti come Shapely per gestire operazioni geometriche, Fiona per accedere ai file e Matplotlib per la visualizzazione.

Ad esempio, Geopandas può essere utilizzato per esplorare i dati immobiliari per identificare i quartieri più costosi in una città o per analizzare i dati demografici per visualizzare i modelli di crescita e migrazione di diverse comunità.

Puoi utilizzare pip per installare il pacchetto:

pip install geopandas

 

Visualizzazione con GeoPandas

 

Vediamo le mappe integrate come mostrato di seguito:

import geopandas 
# Verifica le mappe disponibili
geopandas.datasets.available

 

Utilizzeremo Geopandas per caricare un dataset della mappa del mondo, estrarre lo shapefile degli Stati Uniti e tracciarlo su un grafico con il seguente codice:

# Selezionando una mappa particolare
geopandas.datasets.get_path('naturalearth_lowres')
# Apri la mappa selezionata - GeoDataFrame
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
# Crea un sottoinsieme del GeoDataFrame
usa = world[world.name == "Stati Uniti d'America"]
# Traccia il sottoinsieme
usa.plot();

 

Il codice sopra stampa una mappa del sottoinsieme del data frame:

 

 

2. Folium

 

Adatto per: Nuvole di punti

Folium è una libreria Python per la creazione di mappe interattive con marcatori, pop-up, coropleti e altre visualizzazioni geospaziali. Si integra con la libreria JavaScript Leaflet e consente di esportare le mappe in HTML. Può essere combinato con Geopandas e Cartopy e gestisce grandi set di dati utilizzando le Map Tiles. Folium eccelle per semplicità, estetica e integrazione con altre librerie geospaziali. Tuttavia, per analisi e manipolazioni geospaziali avanzate, Folium potrebbe avere delle limitazioni.

Ad esempio, Folium potrebbe essere utilizzato nella gestione della catena di fornitura e della logistica per visualizzare le reti di distribuzione, ottimizzare i percorsi e monitorare le posizioni delle spedizioni.

Puoi installare Folium con il seguente comando:

pip install folium

 

Creazione di una mappa con Folium

 

Stampiamo una mappa interattiva di esempio centrata in [0, 0] con un marcatore posizionato nello stesso punto con le seguenti righe di codice:

import folium
# Genera una mappa Folium con coordinate centrali (0, 0)
mappa = folium.Map(location=[0, 0], zoom_start=2)
# Individua le coordinate 0, 0
folium.Marker([0, 0]).add_to(mappa)
# Visualizza la mappa
mappa

 

 

Questa mappa può essere ulteriormente personalizzata aggiungendo marcatori, layer o opzioni di stile basate su dati geospaziali specifici.

 

3. ipyleaflet

 

Adatto per: Nuvole di punti, interattivo

Il pacchetto ipyleaflet consente la creazione facile di mappe interattive in Python, in particolare all’interno dei notebook Jupyter, consentendo agli utenti di generare e condividere mappe interattive con vari basemap, marcatori e altre operazioni geospaziali. Basato sulla libreria JavaScript leaflet, ipyleaflet supporta livelli GeoJSON e WMS, stile CSS e JavaScript e calcoli geospaziali. Sebbene ipyleaflet eccelli in widget interattivi, potrebbe non essere ideale per progetti basati esclusivamente su Python a causa della dipendenza da JavaScript.

Ad esempio, ipyleaflet può essere applicato al monitoraggio ambientale per visualizzare i dati dei sensori, monitorare la qualità dell’aria e valutare i cambiamenti ambientali in tempo reale.

Per installare ipyleaflet, utilizziamo il comando pip:

pip install ipyleaflet

 

Creazione di una mappa con ipyleaflet

 

Creiamo una mappa interattiva con un marcatore posizionato alle coordinate (40.7128, -74.0060) per rappresentare un punto di interesse a New York City utilizzando il seguente codice:

from ipyleaflet import Map, Marker
# Crea la mappa
m = Map(center=(40.7128, -74.0060), zoom=12)
# Aggiungi il marcatore
marcatore = Marker(location=(40.7128, -74.0060))
m.add_layer(marcatore)

 

Ecco un output per il codice: 

 

 

4. Rasterio

 

Adatto per: Dati raster

Rasterio è una potente libreria Python per lavorare con dati raster geospaziali, offrendo prestazioni efficienti e una vasta gamma di operazioni come il ritaglio, la riproiezione e il campionamento. Supporta vari formati raster e si integra bene con altre librerie geospaziali, anche se ha delle limitazioni nella gestione dei dati vettoriali e nelle attività di analisi complesse. Tuttavia, Rasterio è uno strumento essenziale per la manipolazione e l’elaborazione efficiente dei dati raster in Python.

Ad esempio, rasterio può essere utilizzato in attività come la lettura e scrittura di immagini satellitari, l’analisi del terreno, l’estrazione di dati da modelli digitali di elevazione e l’analisi di telerilevamento.

!pip install rasterio

 

La funzione rasterio.open() apre il file e il metodo read() legge l’immagine come un array numpy. Infine, la funzione plt.imshow() di Matplotlib viene utilizzata per visualizzare l’immagine e plt.show() mostra il grafico in output.

 

Graficazione con rasterio

 

import rasterio
from rasterio.plot import show

 

Usiamo la libreria rasterio per aprire e visualizzare un’immagine raster dal file ‘sample.tif’ dal dataset ‘Immagini GeoTIFF ad alta risoluzione dei dati climatici’ su Kaggle, visualizzando il canale rosso (uno dei canali di colore dell’immagine) come un sottoplot con una mappa dei colori Reds e l’immagine originale (composta da più canali di colore) come un altro sottoplot con una mappa dei colori viridis. Altri canali di colore, come il verde e il blu, possono essere visualizzati utilizzando questo approccio.

src = rasterio.open('/content/sample.tif')
plt.figure(figsize=(15,10))
fig, (axr, axg) = plt.subplots(1,2, figsize=(15,7))
show((src, 1), ax=axr, cmap='Reds', title='canale rosso')
show((src), ax=axg, cmap='viridis', title='immagine originale')
plt.show()

 

 

L’analisi di specifici canali di colore come rosso, blu e verde nell’analisi geospaziale viene fatta per concentrarsi o estrarre informazioni preziose relative ad attributi, caratteristiche o caratteristiche specifiche rappresentate da quei componenti di colore dell’immagine. Gli esempi potrebbero includere la salute della vegetazione nel telerilevamento, gli indici di vegetazione o i corpi idrici, ecc.

 

5. Geoplot

 

Adatto per: dati vettoriali, interattivo

Geoplot è una libreria Python user-friendly per creare rapidamente visualizzazioni geospaziali accattivanti, inclusi mappe coropletiche e scatter plot. Si integra perfettamente con popolari librerie di manipolazione dei dati come Pandas e supporta più proiezioni di mappe. Tuttavia, Geoplot ha limitazioni relative al supporto delle mappe interattive e a una gamma più limitata di tipi di grafici rispetto alle librerie geospaziali specializzate. Tuttavia, rimane prezioso per la visualizzazione rapida dei dati geospaziali e per ottenere informazioni sui modelli spaziali.

!pip install geoplot

 

Graficazione con geoplot

 

Ploteremo una visualizzazione di una mappa coropletica usando Geoplot, dove selezioniamo i paesi asiatici da un shapefile mondiale in base all’attributo “continente”, assegnamo l’intensità del colore in base all’attributo “pop_est” e tracciamo la mappa utilizzando la mappa dei colori “icefire” con una legenda e una dimensione della figura di 10 per 5.

import geoplot
#Plotting population for Asia
asia = world.query("continent == 'Asia'")
geoplot.choropleth(asia, hue = "pop_est", cmap = "icefire",legend=True, figsize = (10, 5));

 

 

Ad esempio, il pacchetto geoplot può creare mappe coropletiche per visualizzare la densità di popolazione, tracciare modelli spaziali di incidenti criminali, visualizzare la distribuzione dei fattori ambientali e analizzare la diffusione di malattie basate su dati geografici.

 

Conclusioni

 

In conclusione, i pacchetti Python geospaziali aiutano ad analizzare in modo efficace le informazioni basate sulla posizione. Ognuno dei pacchetti discussi ha i suoi punti di forza e di debolezza, ma insieme possono formare un potente insieme di strumenti Python quando si lavora con dati geospaziali. Quindi, sia per i principianti che per i professionisti GIS esperti, questi pacchetti sono preziosi per analizzare, visualizzare e manipolare dati geospaziali in modi nuovi e innovativi.

Puoi trovare il codice per questo articolo nel mio repository GitHub qui. 

Se hai trovato questo articolo interessante, connettiti con me su LinkedIn e Twitter. Ricorda di seguirmi su Kaggle, dove puoi accedere ai miei progetti di machine learning e deep learning, ai notebook e alle affascinanti visualizzazioni dei dati.     Devashree Madhugiri ha una laurea in Ingegneria dell’Informazione ottenuta in Germania e ha una formazione in Scienze dei Dati. Le piace lavorare su diversi progetti di Machine Learning e Deep Learning. Ama condividere le sue conoscenze in AI scrivendo articoli tecnici correlati alla visualizzazione dei dati, all’apprendimento automatico e alla visione artificiale su varie piattaforme tecnologiche. Attualmente è una Kaggle Notebooks Master e ama risolvere puzzle Sudoku nel suo tempo libero.