Cos'è shapely?

Shapely: Manipolazione e Analisi di Oggetti Geometrici nel Dominio Python

Shapely è una libreria Python per la manipolazione e l'analisi di oggetti geometrici planari. Si basa sulla libreria GEOS (Geometry Engine - Open Source) e fornisce un'interfaccia Pythonica per interagire con le sue potenti funzionalità. Shapely è spesso utilizzata in applicazioni GIS (Geographic Information Systems), analisi spaziali, cartografia e simulazioni geometriche.

Funzionalità Principali:

  • Creazione di Geometrie: Permette di creare oggetti geometrici come:

  • Operazioni Booleane: Supporta operazioni booleane tra geometrie come:

    • Unione (union)
    • Intersezione (intersection)
    • Differenza (difference)
    • Differenza Simmetrica (symmetric_difference)
  • Operazioni di Distanza: Permette di calcolare distanze tra geometrie.

  • Operazioni di Predicati: Fornisce metodi per verificare relazioni spaziali tra geometrie, ad esempio:

    • contains (contiene)
    • intersects (interseca)
    • touches (tocca)
    • within (è contenuto in)
    • crosses (attraversa)
    • overlaps (si sovrappone)
  • Trasformazioni: Offre funzionalità per trasformare le geometrie, ad esempio, scalare, ruotare, traslare.

  • Attributi Geometrici: Consente di accedere a proprietà geometriche come:

    • Area
    • Perimetro/Lunghezza
    • Confine (boundary)
    • Baricentro (centroid)
    • Estensione (bounds)
  • Formati di Input/Output: Supporta la lettura e la scrittura di geometrie in diversi formati, spesso in combinazione con altre librerie come fiona o geopandas. Permette la conversione da e verso formati standard come Well-Known Text (WKT) e Well-Known Binary (WKB).

Esempio di Utilizzo:

from shapely.geometry import Point, Polygon

# Creazione di un punto
point = Point(1, 1)

# Creazione di un poligono
polygon = Polygon([(0, 0), (0, 2), (2, 2), (2, 0)])

# Verifica se il punto è contenuto nel poligono
is_within = point.within(polygon)
print(f"Il punto è contenuto nel poligono: {is_within}")

# Calcolo dell'area del poligono
area = polygon.area
print(f"Area del poligono: {area}")

Installazione:

Shapely può essere installata tramite pip:

pip install shapely

Integrazione con altre librerie:

Shapely si integra perfettamente con altre librerie Python per la gestione di dati geospaziali, come:

  • geopandas: Per lavorare con dati geospaziali tabellari.
  • fiona: Per leggere e scrivere dati geospaziali in diversi formati.
  • matplotlib: Per visualizzare le geometrie.

Shapely è uno strumento fondamentale per chiunque lavori con la geometria computazionale e l'analisi spaziale in Python.