9 gennaio, 2011 | di

Python (http://python.org) è un linguaggio di programmazione di alto livello, adatto ai più svariati obiettivi di programmazione. Viene usato per applicazioni web e desktop, giochi, programmazione scientifica, utility e anche per porzioni di sistemi operativi.
Anche chi ha la necessità di sviluppare delle applicazioni in grado di leggere, scrivere, analizzare ed elaborare dati ed informazioni spaziali, troverà in Python un compagno di viaggio piacevole, eclettico e ricco di pregi. Chi lavora in questo contesto e segue il mondo della programmazione, sa che si tratta di un linguaggio che sta diventando tra i più diffusi, sia nel mondo proprietario che in quello open-source, con a disposizione numerose librerie ad hoc.
Anche per questo, penso sia arrivato il momento (anzi mi sento in grande ritardo) di scrivere un post che fornisca gli strumenti per iniziare a “sporcarsi le mani”.
In linea teorica è possibile scrivere da zero codice Python che consenta di manipolare dati spaziali. Per fortuna esiste – tra le tante librerie disponibili –  il binding Python di GDAL/OGR; per iniziare è molto più comodo appoggiarsi sulle spalle di questo gigante.
Due annotazioni prima di passare agli aspetti pratici:

  • questo post consentirà di configurare Python e GDAL/OGR in ambiente Windows. Confido in qualche collega della redazione per scrivere le istruzioni utili per altri sistemi operativi
  • verrà descritta una delle tante modalità possibili per configurare l’ambiente

Procedura

Installare GDAL per Python su Windows è un processo semplice, che può essere portato fino in fondo, seguendo la seguente procedura:

  • Scaricare l’installer di Python dal sito ufficiale – http://www.python.org/download/ – ed installarlo. E’ possibile scaricare diverse release; noi abbiamo effettuato i nostri test con gli installer della 2.6.x
  • Installare GDAL/OGR per Windows
    • Scaricarlo da http://download.osgeo.org/gdal/win32/. Abbiamo utilizzato il file “gdalwin32exe160.zip” che si trova nella cartella “1.6”.
    • Decomprimere questo file in una cartella del vostro PC. L’abbiamo estratta in C:\ ed abbiamo quindi creato la cartella C:\gdalwin32-1.6.
    • Aggiungere la cartella di GDAL che contiene gli eseguibili (“C:\gdalwin32-1.6\bin” nel nostro caso) alla variabile di ambiente  “Path”.
      • Aprire il “Pannello di controllo” di Windows
      • Fare click su Sistema (se usate la visualizzazione per categorie, “Prestazioni e manutenzione” e poi “Sistema”).
      • Fare click su Avanzate
      • Fare click su “Variabili d’ambiente”.
      • Cercare la voce “Path” tra le “Variabili di sistema” e cliccare su Modifica.
      • Fare click sulla cella “Valore variabile”, andare in fondo alla riga, aggiungere un “;” ed inserire il percorso completo della cartella “bin” della vostra installazione di GDAL (C:\gdalwin32-1.6\bin nel nostro caso).
      • Fare Click su OK.
        gdal-bin Windows Path
    • Aggiungere “GDAL_DATA” come nuova variabile d’ambiente.
      • Fare click su “Nuovo” nella finestra “Variabili d’ambiente”.
      • Inserire “GDAL_DATA” nel campo “Nome variabile”.
      • Inserire il percorso completo della cartella data di GDAL nel campo “Valore variabile” (nel nostro caso “C:\gdalwin32-1.6\data”).
      • Fare click su “OK”. Aggiungeremo più avanti altre variabili d’ambiente, quindi potete tenere aperta questa finestra di dialogo.
  • Installare PROJ.4 per Windows. E’ un pacchetto necessario per potere gestire le proiezioni ed i sistemi di coordinate.
    • Scaricare PROJ.4 da http://download.osgeo.org/proj/. Il file binario per Windows – proj446_win32_bin.zip – non è aggiornatissimo, ma non è un problema.
    • Decomprimere questo file in una cartella del vostro PC, ad esempio in “C:\proj”.
    • Aggiungere la cartella “bin” di PROJ.4 (“C:\proj\bin” nel nostro caso) alla variabile di ambiente “Path”. Per farlo dovete seguire gli stessi passi visti sopra per la cartella “bin” di GDAL, ed aggiungere stavolta “C:\proj\bin”.
    • Aggiungere “PROJ_LIB” come nuova variabile d’ambiente. Dovete seguire le stesse istruzioni usate per la variabile “GDAL_DATA”, ma il nome della variabile è stavolta “PROJ_LIB”, ed il valore è il percorso completo della cartella “nad” contenuta in  PROJ.4 (C:\proj\nad nel nostro caso).
    • Copiare il file “proj.dll” dalla cartella “bin” di PROJ.4 alla cartella bin di GDAL. Nel nostro caso da “C:\proj\bin\” a “C:\gdalwin32-1.6\bin\”.
  • Installare il binding per Python di GDAL
    • Scaricare la versione appropriata alla vostra release di Python da http://pypi.python.org/simple/GDAL/.  Il file più aggiornato, compatibile con la versione 2.6.X di Python, è “GDAL-1.6.1.win32-py2.6.exe”.
    • Fare doppio click sul file, e completare la procedura di installazione
  • Riavviare il sistema.

Al riavvio avrete a disposizione un sistema in cui sarà possibile scrivere codice SPAZIALE (nel senso di bel codice ;-)  ).

Ciao mondo

Il codice sottostante lo potrete usare come test “Ciao Mondo”, e verificare la procedura seguita.

# importazione dei moduli
import sys
try:
  from osgeo import ogr
except:
  import ogr
	
# apertura di uno shapefile in lettura
driver = ogr.GetDriverByName('ESRI Shapefile')
fn = 'C:/nomefile.shp'
dataSource = driver.Open(fn, 0)
	
# verifica dell'esistenza del file
if dataSource is None:
  print 'Il file ' + fn + ' non esiste'
  sys.exit(1)
	
# accesso al layer
layer = dataSource.GetLayer()
	
# conteggio delle feature
numFeatures = layer.GetFeatureCount()
print 'Numero di feature: ' + str(numFeatures)
	
# estensione del layer
extent = layer.GetExtent()
print 'Estensione:', extent
print 'Coordinate vertice in alto a sinistra:', extent[0], extent[3]
print 'Coordinate vertice in basso a destra:', extent[1], extent[2]

L’output sarà qualcosa di simile a quanto riportato sotto:

Numero di feature: 33
Estensione: (280151.67957063887, 294843.14350770513, 4210159.3865045626, 4220843.5284850718)
Coordinate vertice in alto a sinistra: 280151.679571 4220843.52849
Coordinate vertice in basso a destra: 294843.143508 4210159.3865

Buone letture

La procedura descritta in questo post è quasi una traduzione dell’eccellente documento scritto da Chris Garrard: “Installing GDAL manually”. Il dott. Garrard cura un corso denominato “Geoprocessing with Python using Open Source GIS“, di cui trovate online il materiale didattico (slide, esercizi e codice); è stato per me illuminante per fare i primi passi e consiglio a tutti i novizi di leggerlo: ASSOLUTAMENTE DA NON PERDERE (si, sto urlando).
Per chi non ha mai scritto codice Python, e non ne ha alcuna conoscenza, la pietra miliare è (per me) “Pensare da informatico“.

Buoni propositi

Il desiderio mio (e credo dei colleghi della redazione) è quello di non lasciare questo post da solo. Nel 2011 vorrei mettergli accanto dei fratellini; non saranno magari dei ricchi tutorial, ma la coppia GIS & Python sarà uno dei temi che terremo sotto osservazione e di cui daremo nota nel blog e/o soltanto nei canali Twitter e Facebook.

Buona scrittura :-D


In questi giorni il tema generale dell’installazione delle librerie GDAL su Windows è caldissimo. Sono in preparazione nuovi installer, e probabilmente nei prossimi mesi aggiorneremo questo post con una procedura più semplice e diretta.

10 luglio, 2006 | di


AGGIORNAMENTO: la MicroImages purtroppo non distribuisce più TNTlite per LINUX

TNTlite è la versione free di TNTmips, un software GIS di fascia enterprise giunto alla sua 56 release. Dico sin dall’inizio che la mia società vende questo sofware, ma scrivo questo articolo con lo stesso spirito che ho messo in tutti i precedenti post di questo Blog: la voglia di condividere – con gli amanti della cartografia e dei sistemi informativi geografici – qualcosa che possa essere utile, interessante e nuova. Ma torniano a TNTlite.

E’ un software GIS multipiattaforma che funziona allo stesso modo su Windows, Mac e Linux/Unix, con la stessa identica interfaccia e con lo stesso formato file. Qui sotto uno screenshot di TNTlite su Ubuntu Dapper Drake.

TNTlite è la versione gratuita di TNTmips. Non è una versione demo, ma un grosso pacchetto software di analisi spaziale con tutte le funzioni di TNTmips, con dei limiti sulle dimensioni degli oggetti gestibili:

File progetto Nessun limite sulle dimensioni e sul numero di oggetti.
Raster 314368 celle, con una dimensione massima di 1024.
Esempi: 1024 x 307, 614 x 512, 307 x 1024.
Vettori 500 poligoni, 1500 linee, 1500 punti, 1500 etichette. (nessun limite sui nodi)
TIN 1500 nodi
Database 10 tabelle, 1500 record per tabella

Adesso passerò in rassegna alcune caratteristiche che lo rendono un prodotto molto interessante.

Usare TNTlite per avvicinarsi ai GIS e fare didattica

Il fatto che sia un programma gratuito è già stato detto. Ciò che lo rende (quasi) unico come strumento per capire i sistemi informativi geografici, sono i tutorial disponibili (gratuitamente) online. Sono delle guide teorico-pratiche focalizzate su diverse tematiche (i.e. la georeferenziazione, la mosaicatura di immagini raster, le carte tematiche, etc. etc.), in cui si sviluppa passo-passo un argomento a partire da file scaricabili dal sito della Microimages. Ogni guida è collegata ad una pagina web in cui troverete il link al pdf della guida, ed il link ad i file richiesti per portare a termine il tutorial.
Queste guide sono ricche di illustrazioni e annotazioni al fine di semplificare l’apprendimento. Le pagine sono sempre divise in due colonne, una con i passi pratici da eseguire, ed un’altra discorsiva con gli aspetti teorici.
Non vi consiglio di leggerle senza un’ordine preciso, piuttosto bisognerebbe sempre seguire i consigli di “pagina 2″ di ogni tutorial (Before Getting Started): qui troverete indicazioni sui tutorial che dovreste leggere prima di iniziare quello che avete davanti. Microimages consiglia di leggere questi due prima di ogni altro: Displaying Geospatial Data e Navigating.
Oltre a questi tutorial, c’è ovviamente un lungo manuale e delle belle “Color Plates” in cui spesso sono nascoste informazioni utili. Comodissimo anche il glossario sui GIS (Glossary for Geospatial Science).

Se già siete dei buoni conoscitori dei GIS ed avete bisogno di fare didattica, TNTlite vi da la possibilità di organizzare un corso senza problemi legati ai costi delle licenze e/o al sistema operativo delle postazioni dell’aula didattica; lo installerete senza problemi su Windows, Mac e Linux/Unix e vi troverete a disposizione numerose lezioni già pronte da sviluppare in aula, ovvero i tutorial di cui sopra.

TNTlite come visualizzatore di numerosi formati GIS raster/vector

Uno dei componenti di TNTlite si chiama TNTatlas. E’ un prodotto che viene anche distribuito come stand-alone, che ha tra le varie funzioni quella di aprire in visualizzazione numerosi formati GIS raster/vector. Potrete aprire file in numerosi formati, tra i quali DWG, DXF, DGN, TAB, MrSID, JPEG, JP2, PNG, TIFF, ECW, senza le limitazioni di cui sopra. Nell’immagine che segue è visualizzato un file ECW di grandi dimensioni.

TNTlite per analizzare i vostri file GIS

I file che visualizzerete con TNTlite potranno essere analizzati ed elaborati in modo molto sofisticato; rimangono comunque i limiti di dimensione degli oggetti della versione lite. Se desidererete fare un po’ di analisi anche su file di grandi dimensioni, potrete sfruttare nuovamente TNTatlas, il quale pur essendo un semplice visualizzatore ha al suo interno alcuni strumenti molto interessanti. Un primo esempio è quello della finestra che vi restituisce tutte le informazioni sull’estensione di un oggetto raster, la risoluzione, il sistema di coordinate, etc. etc.

Se aprirete una tif che contiene per ogni pixel le informazioni sulla quota, potrete in pochi secondi ottenere il profilo altimetrico (vedi figura sottostante) tramite il geotoolbox.

TNTlite supporta l’editing topologico vettoriale avanzato

TNTlite supporta la gran parte delle topologie vettoriali tipiche di un pacchetto GIS avanzato. Nella figura sottostante si vedono ad esempio le conseguenze della scelta di un modello topologico evoluto:

  • ogni spezzata chiusa genera un poligono
  • due spezzate che si intersecano in un punto generano un nodo (i quadrati neri della figura) nel punto di intersezione, e si dividono in 4 elementi
  • gestione degli archi appesi e dei nodi appesi (i quadrati rossi in figura)

Molto interessanti anche le funzioni di snap e di editing geometrico attivabili dalla folta barra degli strumenti visibile nella figura soprastante.

TNTlite per esportare i vostri layer su Google Earth

A partire da qualsiasi oggetto che visualizzate con TNTlite (o con una delle applicazioni distribuite con questo – come TNTatlas) è possibile esportare un’immagine in formato png da usare come overlay su Google Earth. Nella (pesante) gif animata sottostante si vede un’immagine esportata da TNTatlas sovrapposta all’immagine di base di google earth; notate come il dettaglio della mia immagine di partenza sia molto migliore di quello di Google Earth.

Lo strumento per creare questi file da usare in Google Earth si chiama “Quick Snapshot”; è simbolizzato da una macchina fotografica ed è presente nella barra degli strumenti di TNTlite. Fa una cattura dello schermo di tipo geografico, a partire dalla quale è possibile esportare diversi tipi di file; tra questi appunto i file png da usare con Google Earth ma anche – e non solo – GeoTiff e JPEG2000. Da qui potrete scaricare il file zip che contiene i file che ho usato per creare l’animazione soprastante: estraetene il contenuto in una cartella ed aprite il file per Google Earth in esso contenuto (ha estensione .kml).

TNTlite come strumento di conversione di coordinate

All’interno del programma è presente anche un comodo convertitore di coordinate, che vi consente di passare da (quasi) qualsiasi sistema di coordinate ad un altro. E’ possibile fare conversioni punto per punto, o a partire da un file di testo con un elenco di coppie di coordinate da convertire. Nella finestra sottostante il risultato di una conversione di una coppia di coordinate da geografiche (Datum WGS84) a UTM zona 33 Nord (Datum WGS84)

In conclusione

Ho fatto una carrellata molto veloce di alcune delle caratteristiche di TNTlite, dando in particolar modo risalto a TNTatlas. Spero di esplodere alcuni aspetti di questo lungo post in più totorial di dettaglio. Considerate questa soltanto come un’introduzione e non esitate a chiedere informazioni e/o chiarimenti.

23 aprile, 2006 | di

Non sono un grosso conoscitore di GRASS, quindi non sono la persona più adatta ad emettere un giudizio. Da utente PC posso dire che ho installato diverse volte GRASS su Windows: l’ho sempre trovata una procedura (per me) lunga, che mi constringeva a dedicarmi più agli aspetti sistemistici e di sviluppo che all’utizzo di GRASS come software GIS.

Da un po’ di tempo c’è un’altra possibilità: JGRASS. Uno degli obiettivi del progetto è proprio quello di fare arrivare GRASS anche in contesti aziendali, proprio a partire da procedure d’installazione più semplici (su windows, unix/linux e mac) e da una cura per l’interfaccia.

jgrass installer

L’unico requisito richiesto è che sulla vostra macchina sia installato il Java Runtime Environment, scaricabile gratuitamente da qui. Fatta questa verifica non vi resta che scaricare JGRASS da qui, fare doppio click sul file scaricato e seguire a video le procedure d’installazione.

jgrass.jpg

18 febbraio, 2006 | di

Aggiornamento: è stato scritto un post che funge da aggiornamento di questo. Lo trovate qui.


MapServerè l’applicazione di webmapping opensource oggi più diffusa e con una lunga storia alle spalle; a mio avviso è anche la migliore.

Per portare a buon fine questo tutorial avremo bisogno anche di un’installazione di Apache funzionante e configurata.

Questo è il primo piccolo tutorial che sto inserendo nel mio Blog, sperando che sia il primo di molti. E’ dedicato all’installazione di MapServer in un ambiente Windows; lo so, sembra un controsenso, ma è la prima cosa che ho imparato a fare e da qui voglio iniziare.

(continua…)


TANTO non rappresenta una testata giornalistica ai sensi della legge n. 62 del 7.03.2001, in quanto non viene aggiornato con una precisa e determinata periodicita'. Pertanto, in alcun modo puo' considerarsi un prodotto editoriale.