19 gennaio, 2009 | di

Il lavoro di ogni giorno è spesso routinario; spesso anche per chi si occupa di sistemi informativi geografici. Non parlo dell’analisi spaziale, ma di quelle cose che facciamo quasi ogni giorno: leggere le metainfomazioni di un file (e scoprire che sono povere), convertire il formato di un file, estrarre una porzione di una raster, etc.

Si tratta di operazioni in genere molto semplici, che siamo in grado di portare a termine con molti strumenti. Questo blog parla de “le cose che ci piacciono TANTO”; una di queste sono quelle utility che alleggeriscono il lavoro di ogni giorno, con un click del mouse ed un menu contestuale.

Vi parlerò di due applicazioni di questo tipo, una per Windows ed una per Ubuntu (e per tutte le distribuzioni che sfruttano Gnome), che sono in grado di “trasferire” sul tasto destro del mouse alcune comuni operazioni utili ad un utente GIS.

Il prerequisito è che nel nostro sistema operativo siano installate le librerie GDAL, che sfrutteremo come motore delle operazioni “spaziali”. Per installarle su Windows basterà scaricare ed installare FWTools, mentre su Ubuntu basterà installare gdal-bin tramite synaptic o tramite riga di comando.

Alla fine del post saremo in grado di fare click con il destro su una TIFF del nostro hard-disk, ed eseguire queste due semplici (ma comodissime operazioni):

  1. convertirla in un altro formato spaziale (in questo esempio eseguirò la conversione in formato JPG2000, un eccellente formato compresso che può avere attributi geografici)
  2. leggerne le metainformazioni (anche quelle spaziali)

Se dovessi ottenere questi due risultati con le librerie GDAL, dovrei aprire il prompt dei comandi e scrivere rispettivamente:

  1. > gdal_translate -of JP2ECW input.tif output.jp2
  2. > gdalinfo input.tif

Vedremo come convertire questi comandi testuali, in operazioni da eseguire con il mouse.

Su Windows

Su Windows sfrutteremo Open++, un’utility di 200kb che consente di personalizzare l’elenco di comandi presenti nel menu contestuale, che si apre quando si clicca con il tasto destro del mouse su un file (o su una cartella).

Una volta che lo avrete scaricato ed installato, troverete una nuova voce nel menu che si aprirà al click con il destro su un file; è visibile nella figura sottostante (“Open++”).

contextmenu

L’utilizzo è immediato e quasi autoesplicativo, in quanto Open++ è già configurato per eseguire delle comode operazioni di base: ade esempio copiare il percorso assoluto di un file (Copy Path), o  aprire il prompt dei comandi a partire dalla cartella selezionata (Command Prompt). Questi due stupidi comandi, sono già un ottimo esempio di alleggerimento del lavoro.

Il primo comando che voglio aggiungere, ci consentirà di convertire in formato JPG2000 un’immagine TIFF. Per inserire questo nuovo comando, tra quelli disponibili in Open++, dovrò cliccare sull’ultima opzione del suo menu a tendina: “Customize” (vedi figura poco sopra).

Mi si aprirà la finestra sottostante:

image

Questi i passi da eseguire:

  1. cliccare in alto a destra sul tasto “Add”, e scegliere l’opzione “Command”
  2. cliccare sulla cella “Title”, ed aggiungere un nome descrittivo al comando che si sta creando (ad esempio “Convert to JPG2000”)
  3. inserire nella cella “Program” il programma che si vuole lanciare. Nel nostro caso vogliamo lanciare il prompt dei comandi e basterà scrivere “%ComSpec%”
  4. scrivere nella cella “Arguments” gli argomenti che vogliamo passare al nostro comando. Nel nostro caso inseriremo la seguente stringa ‘/c “C:\Programmi\FWTools2.2.6\bin\gdal_translate -of JP2ECW” $(TargetName)$(TargetExt) $(TargetName).jp2′
    1. il parametro “/c” fa sì che il prompt dei comandi venga chiuso al termine dell’operazione
    2. “C:\Programmi\FWTools2.2.6\bin\gdal_translate” è il percorso assoluto (nel mio pc) dell’utility GDAL – gdal_translate – che gestisce le conversioni tra formati di file spaziali
    3. “-of JP2ECW” è il parametro necessario per impostare JPG2000 come formato di output
    4. $(TargetName)$(TargetExt) sono delle variabili che coincidono con il nome e con l’estensione del file su cui cliccheremo con il destro, e che verranno valorizzate dinamicamente al lancio del comando. Se ad esempio il file su cui farò click sarà “c:\dati\input.tif”, la variabile “$(TargetName)” verrà sostituito da “c:\dati\input” e “$(TargetExt)” da “.tif”.
    5. lo stesso si dica per $(TargetName).jp2, che verrà sostituito da “c:\dati\input.jp2”
  5. cliccare sulla cella “Associate with Files” e scrivere *.tif
    1. in questo modo il comando di conversione formato sarà disponibile soltanto per i file con estensione .tif (è possibile aggiungere altre estensioni, separandole tramite “;”)
  6. impostare gli altri parametri come nella figura soprastante e cliccare su “OK”

A questo punto aprite una cartella in cui avete un file TIFF, fateci click sopra con il destro del mouse, e selezionate Open++/Convert to JPG2000. Si aprirà il prompt dei comandi e verrà lanciato il comando gdal_translate; a comando eseguito il prompt dei comandi si chiuderà automaticamente e troverete il file JPG2000 (con estensione .jp2) nella stessa cartella in cui è presente il file TIFF.

Quello di sopra è soltanto un esempio; si può di più, meglio e diversamente. Consideratelo come un primo tutorial, dopo il quale iniziare a dare sfogo alla vostra fantasia ed alla vostra competenza.

Per ottenere le metainformazioni spaziali di un file TIFF, utilizzando soltanto il tasto destro del mouse, dovrete un creare un nuovo comando. La procedura è quasi identica alla precedente, salvo per la cella “Arguments”: dovrete inserire la stringa ‘/k “C:\Programmi\FWTools2.2.6\bin\gdalinfo $(TargetName)$(TargetExt)’.

La differenza più importante è il parametro “/k”, che farà in modo che il prompt dei comandi non venga chiuso al termine del comando gdalinfo. Nella finestra del prompt potrete quindi leggere le metainformazioni del file che avrete selezionato.

In questo filmato vedrete i due comandi in azione:


Su Linux

In questo caso sfrutteremo Nautilus-actions, un’utility analoga a Open++ in ambiente GNOME e quindi anche in Ubuntu. E’ installabile tramite synaptic o digitando nella shell:

>sudo apt-get install nautilus-action

Una volta installato lo troverete nel menu Sistema/Preferenze/Nautilus Actions Configuration.

nautilus-actions

Creiamo un’azione (action) che estragga le metainformazioni da un tif selezionata.

Questi i passi da seguire:

  1. cliccare su Add
  2. inserire nella cella “Label” un nome descrittivo del comando (ad esempio “gdal_info”)
  3. scegliere – è opzionale – un tooltip per il comando (ad esempio “cliccare qui per avere le metainformazioni del file selezionato”)
  4. scegliere – è opzionale – un’icona per il comando
  5. definire il comando da lanciare, tramite la cella “Path”
    1. inserire la stringa “bash -c”
  6. impostarne la stringa “gdalinfo %d/%f > %d/%f.txt && gedit %d/%f.txt” nella cella “Parameters
    1. “%d “e “%f ” sono delle variabili che verrano sostituite dinamicamente dal percorso (senza estensione) e dall’estensione del file selezionato
    2. il carattere “>” farà sì che l’output del comando – le metainformazioni – possano essere scritte e memorizzare in un file di testo
    3. “%d/%f.txt” faranno si che il file di testo venga salvato nella stessa cartella del file selezionato (%d), con lo stesso nome (%f) e con estensione .txt
    4. “&&” fa si che venga esguito il comando successivo – gedit – ma soltanto dopo la fine del primo
    5. “gedit %d/%f.txt” per aprire con l’editor di testo di Ubuntu il file di testo appena creato
  7. cliccare sul Tab “Conditions” e scrivere nella cella “Filenames” la stringa “*.tif” (in questo modo il comando gdal_info sarà visibile soltanto per file con estensione .tif)
  8. selezionare il radio botton “Only files”
  9. e cliccare su OK

edit-action-gdal_info

A questo punto non ci resta che fare click con il destro su un file .tif e provare il comando appena creato. Aggiungo però qualche spiegazione dovuta. Cosa è bash?

Si tratta di un interprete di comandi che permette all’utente di comunicare col sistema operativo attraverso una serie di funzioni predefinite, o di eseguire programmi.

Il parametro “-c” forza bash a leggere i comandi dalla stringa di testo che segue, che nel nostro caso è quella del punto 6 di sopra.

Nel filmato sottostante vedrete (male, è saltata una parte) il comando in azione:


Record your screencast online

Nautilus-actions è a mio avviso un gioiellino. Una caratteristica che lo fa brillare è la facilità di condividere i comandi creati. Lo si fa con il tasto “Import/Export” presente nella finestra principale. Qui ad esempio una serie di “azioni” già pronte. Il comando di conversione in JPG2000 è di facile implementazione e non lo svilupperò.

In chiusura

Prendete quanto scritto soltanto come spunto per “piegare” (ad esempio) le librerie GDAL/OGR al vostro tasto destro. Sono quasi un’analfabeta di istruzioni da riga di comando, e quelle che vi ho indicato possono sicuramente essere scritte meglio e più elegantemente. Mi piacerebbe molto che qualcuno condividesse qui la propria esperienza, con qualche comando “de paura”.

Software/servizi usati per scrivere il post

  • TipCam per registrare il filmato su windows
  • ScreenToaster per farlo su Linux
  • Zotero per gestire e generare la sitografia sottostante

Sitografia letta, consigliata e disordinata

  1. “BASH Help – A Bash Tutorial,” http://www.hypexr.org/bash_tutorial.php.
  2. “Bash – Wikipedia,” http://it.wikipedia.org/wiki/Bash.
  3. “Beginners/BashScripting – Community Ubuntu Documentation,” https://help.ubuntu.com/community/Beginners/BashScripting.
  4. “COMMAND.COM, SHELL and COMSPEC,” http://www.robvanderwoude.com/command.html.
  5. “Eseguire programmi e comandi DOS – Cenati Giovanni VbScript WSH,” http://digilander.libero.it/Cenati/esegui.htm.
  6. “Nautilus-actions: GUI è bello! » Ubuntu block notes,” http://www.aldolat.it/guide-e-howto/nautilus-actions-gui-e-bello/.
11 gennaio, 2008 | di

Antonio, uno degli autori di questo blog, dice che io “cado” dentro i siti web: ieri sono caduto dentro Thinking in GIS.

E’ il blog di Paolo Corti dedicato ai GIS, ai CMS, allo sviluppo agile e ai design pattern. E’ un blog con dei contenuti belli e “atipici” rispetto agli argomenti classici dei blogger che scrivono di GIS in Italia; è talmente atipico che è scritto in inglese.

L’ultimo post sviluppa un argomento a me caro: l’installazione di MapServer su Ubuntu. E’ scritto con uno stile molto didattico e sarà d’aiuto a molti.

Non vi resta, che fargli visita.

P.S. Alessio, un lettore di questo Blog, mi ha segnalato questo suo articolo in cui spiega come creare una postazione di lavoro per fare GIS basata su Ubuntu.

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.


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.