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/.
21 maggio, 2007 | di

Notepad++ è un eccellente editor di testo opensource, che consiglio a chiunque abbia a che fare con la scrittura di codice. Ne parlo qui, perché può essere utile anche a chi si occupa di cartografia online, ed in particolare a chi scrive i file di configurazione di MapServer (ovvero i file .map).

Ho lavorato in questi giorni su diversi file .map, con altri editor di testo, ma non ero soddisfatto ed avrei voluto usare Notepad++. Questo editor non ha nativamente il syntax highlighting dei file .map, ma per fortuna è molto semplice creare il file di configurazione necessario ad attivare questa funzione. Ho trovato qui la guida per crearlo, ed ho anche creato un video che illustra il risultato ottenuto.

Allego anche il file di configurazione creato. E’ ancora molto incompleto e sarebbe carino completarlo insieme. Qualche idea su come e dove condividere il lavoro?

Per installarlo, se non avete creato altri file di configurazione per altri linguaggi, basterà estrarlo nella cartella “\Dati applicazioni\Notepad++\” presente nel vostro profiloWindows.

__

3 settembre, 2006 | di

Ho già scritto di Remember The Milk in due post precedenti, ma gli sviluppatori di questa fantastica applicazione mi “costringono” a farlo per la terza volta, in quanto hanno introdotto l’ennesima novità: inserire la localizzazione su carta dei task da eseguire. Potremo prendere nota della posizione di quell’ufficio dove consegnare una fattura o di quel deposito presso il quale prenderemo in consegna un pacco, e potremo ragionare su quale sia il percorso che ci faccia spendere meno tempo.

Sulla mappa vedremo sia il numero dei task legati ad un dato luogo che la loro priorità, e potremo scegliere di vedere soltanto le cose da fare in giornata. La gestione cartografica dei task è basata sulle API di Google.

Remember The Milk map

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.