Friday 19 March 2010

Python espresso per i GIS

Python è un linguaggio di programmazione, di scripting nel caso specifico, che sta avendo un notevole successo in molti ambiti, fra cui il GIS ed anche il Web: un esempio è Django, un framework web (permette cioé di costruire applicazioni web) basato su Python.

Il successo di Python dipende da una serie di caratteristiche. Innanzitutto, il suo livello, elevato, nel trattare dati con strutture anche complesse, e procedure, da cui derivano codici brevi e comprensibili in confronto a quelli derivanti da linguaggi come Fortran e C++,  che richiedono una maggiore complessità e lunghezza dei codici. Dato che Fortran e C++ sono linguaggi compilati, le velocità di esecuzione dei loro programmi possono però  essere più veloci degli script Python (o degli altri linguaggi di scripting, come IDL) di ordini di grandezza.

Come fattore addizionale, c'è la poliedricità delle funzioni di Python, che permettono le sue applicazioni dall'analisi delle matrici al processamento di dati vettoriali e raster GIS alla gestione delle procedure web, utilizzando il pacchetto base e le estensioni adatte, che possono poi interfacciarsi ad altre librerie o programmi, come ArcGis, Grass, R, per citare i nomi di tre programmi molto importanti nel GIS e nella matematica-statistica.

E fattore graditissimo, è free e open source. Come lo sono gran parte dei software GIS, matematici con cui si interfaccia. Il che permette, al solo costo di apprendimento, di disporre di uno strumento molto potente e promettente, almeno per vari anni a venire, prima che come tutti gli strumenti informatici non venga poi oscurato da qualche altro strumento che brilli di maggior luce.

Venendo al concreto, dal lato GIS, come si può apprendere ed utilizzare?
Ci sono due riferimenti di buon livello, ottimi per iniziare anche in tempi brevissimi, a conoscere ed anche a lavorare con dati GIS, senza dover interfacciarsi ad alcun altro software, che sia il costosissimo ArcGis o il gratuito Grass.

Come tutorial dal lato GIS, uno dei più raccomandati è Geoprocessing with Python using Open Source GIS, disponibile all'indirizzo: http://www.gis.usu.edu/~chrisg/python/. Può essere utilizzato anche come primo approccio a Python, anche se ovviamente è opportuno possedere già nozioni di programmazione.

Come tool, FWTools di Frank Wadderman - http://fwtools.maptools.org/ - è molto noto, e incorpora oltre a Python, anche Numeric, ogr e gdal, che permettono di processare dati vettoriali (con ogr) e raster (gdal), creando ex-novo o elaborando shapefile, grid e numerosi altri formati GIS. Inoltre sono disponibili in FWTools anche proj, OpenEV e MapServer.

buon lavoro..

No comments: