Geotag delle foto con iPhone, Everytrail ed exiftool

Una delle funzioni che ho apprezzato maggiormente di iPhoto 09 è l’aggiunta di “Places” (nella versione italiana “Luoghi”). Questa funzione si interfaccia con Google Maps per mostrare una mappa interattiva delle proprie fotografie e dei luoghi dove esse sono state scattate.

Per far si che le foto vengano mostrate sulla mappa è necessario però che le immagini contengano i dati GPS negli appositi campi EXIF. Questo può essere ottenuto in vari modi, ad esempio iPhone, essendo dotato di un modulo GPS interno, inserisce automaticamente tali dati nelle proprie foto. Altre macchine fotografiche di fascia medio alta hanno integrato un sensore GPS oppure dispongono di un interfaccia hardware per collegare un ricevitore esterno, normalmente questo comporta una spesa aggiuntiva che con un iPhone ed un po di sforzo possiamo evitare.

Il metodo che descriverò ora funziona con qualsiasi macchina fotografica, anzi in realtà con qualsiasi immagine. È richiesto solamente un po di lavoro da eseguire tramite riga di comando per taggare correttamente le proprie foto. Basta utilizzare uno dei tanti software disponibili per iPhone per registrare i propri percorsi in formato GPX. Io mi sono trovato bene con il software EveryTrail che è un software gratuito, ma esistono moltissime alternative su AppStore.

Una volta scaricato il software e necessario creare un account (gratuito anch’esso) sul sito di EveryTrail per poter caricare i propri percorsi tramite iPhone. Una volta che si è creato l’account è possibile visualizzare i propri percorsi registrati con l’applicazione.

Per cui nel momento in cui si inizia a scattare ricordatevi di avviare l’applicazione e tenetela attiva sul telefono. In caso di arrivo di una chiamata l’applicazione va in pausa ed è sempre possibile riprendere in seguito il percorso iniziato in precedenza. Quando avete terminato di scattare eseguite l’upload del percorso, cliccate sul link che vi arriva per email e scaricate il file gpx con i dati GPS registrati.

Sincronizzazione e geotag con exiftool

Le operazioni da eseguire per effettuare il geotag possono essere eseguite utilizzando exiftool. Il programma, una volta installato, mette a disposizione da riga di comando l’eseguibile exiftool, la cui pagina di manuale si trova qui. Il programma è uno strumento molto potente da utilizzare a riga di comando. Negli esempi seguenti utilizzerò le opzioni che vanno a sovrascrivere i file originali che sono

  -P          (-preserve)          Preserve date/time of original file
  -overwrite_original_in_place     Overwrite original by copying tmp file

Nel caso in cui si esegua qualche esperimento è il caso di non utilizzare tali opzioni,  in quanto con esse i file originali vengono sostituiti e non c’è modo di recuperarli.

Indipendentemente da come si è ottenuto il file con i dati gps la cosa più importante da verificare è la sincronizzazione tra gli orari delle immagini e quelli indicati nel file con le coordinate gps. La cosa migliore da fare è di sincronizzare il proprio iPhone e la propria camera prima di cominciare, possibilmente con una precisione al secondo. Se questo non è possibile o ce ne siamo semplicemente dimenticati (come è successo a me) è possibile cambiare la data di scatto nei dati EXIF.

La prima cosa da fare è quella di calcolare l’offset tra il tempo di scatto ed il tempo esatto, nel mio caso l’orario della macchinetta era completamente sballato (di circa una settimana) per cui ho dovuto cambiare completamente data ed ora. Per eseguire questa procedura ho eseguito una fotografia al display del telefono in modo da avere sul file la data di scatto memorizzata dalla macchinetta e nell’immagine il tempo registrato dall’iPhone. Confrontando i dati ho ottenuto una differenza di tempo pari ad 8 giorni, 13 ore 44 minuti e 24 secondi, per cui facendo riferimento a questa pagina di manuale riguardante lo shift di tempi e date la sintassi da utilizzare con exiftool è

exiftool -P -overwrite_original_in_place -DateTimeOriginal+='8 13:44:24' -createdate+='8 13:44:24' *.JPG
   22 image files updated

Ora che la data del file è corretta è possibile utilizzare il file gpx per assegnare la localizzazione ad ogni foto, il comando per fare ciò è il seguente

exiftool -geotag geodata.gpx -P -overwrite_original_in_place *.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1263.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1264.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1265.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1266.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1267.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1268.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1269.JPG
Warning: Time is too far before track in File:Geotime (ValueConvInv) - DSCF1270.JPG
Warning: Time is too far beyond track in File:Geotime (ValueConvInv) - DSCF1281.JPG
Warning: Time is too far beyond track in File:Geotime (ValueConvInv) - DSCF1282.JPG
Warning: Time is too far beyond track in File:Geotime (ValueConvInv) - DSCF1283.JPG
Warning: Time is too far beyond track in File:Geotime (ValueConvInv) - DSCF1284.JPG
   10 image files updated
   12 image files unchanged

Come si vede nel caso in cui  alcune immagini non rientrino nell’intervallo temporale dei dati gps, exiftool ce lo segnala con un warning e lascia i file in questione invariati. Alla fine di questo processo potete importare le foto in iPhoto ed esse compariranno sulla mappa in “Luoghi”.

You can leave a response, or trackback from your own site.

Leave a Reply

Subscribe to RSS Feed