Cómo Geotaggear nuestras fotos con ExifTool
De un tiempo a esta parte vengo utilizando ExifTool, una herramienta escrita en Perl por Phil Harvey para leer y escribir información EXIF o XMP en algunas de mis fotografías.
Para el que no sepa nada del tema, digamos que las imágenes que tomamos con nuestras cámaras de fotos son capaces de almacenar cierta información tan interesante como la hora y fecha en la que se hizo la foto, las condiciones de captura, tiempo de exposición, velocidad de obturación, marca y modelo de la cámara, el programa utilizado y otro tipo de mediciones que para nosotros suelen pasar desapercibidas. Ello es posible gracias a la especificación Exif, que sobre una serie de formatos existentes (JPG, TIFF o RAW) define cómo y dónde almacenar esa información, generalmente en etiquetas.
Hoy descubro por curiosidad que en las últimas revisiones de la aplicación se ha introducido la capacidad de escribir etiquetas de geoposicionamiento para posteriormente mostrar la imagen en un mapa. Existen cámaras que ya realizan esa función, incluso periféricos, que conectados a nuestro equipo, obtienen la posición actual via GPS y la añaden en la imagen mediante su correspondiente etiqueta.
Sin embargo si no disponemos de tal equipo también podemos hacer lo mismo de forma similar, bien editando manualmente dichas etiquetas o bien obteniendo los datos de algún dispositivo GPS que no necesariamente necesitamos conectar a nuestra cámara.
Lo primero que tenemos que hacer es conseguir la versión acorde a nuestro sistema operativo, descomprimir y abrir una consola. Para leer la información Exif tenemos que teclear el siguiente comando
exiftool -k <nombredelaimagen>
tras lo cual nos mostrará toda la información asociada si es que la tiene.
ExifTool es capaz de manejar la posición en formato decimal, en grados y minutos o en grados, minutos y segundos, en el sistema WGS84 así como importar esta información de un log generado por nuestro cacharro GPS favorito. Si este es nuestro caso y, por ejemplo, disponemos de dicha información en el fichero track.log, para añadir la información de geolocalización bastaría teclear lo siguiente:
exiftool -geotag track.log <nombredelaimagen>
Si todo va bien se creará una copia de seguridad del fichero original y nos mostrará el siguiente mensaje:
1 image files updated
Ahora bien, imaginemos que tampoco tenemos ese cacharro pero conocemos de alguna manera la posición en la que hicimos la foto, podemos introducir la información manualmente. Imaginemos que yo tomo una foto en la posición:
Latitud 57.695995 N
Longitud 11.955470 E
Tecleamos lo siguiente en nuestra consola:
exiftool -GPSLongitude=11,955470 -GPSLongitudeRef=E -GPSLatitude=57,695995 -GPSLatitudeRef=N <nombredelaimagen>Y si todo va bien, se mostrará el mensaje:
1 image files updated
Si queremos ver el resultado podemos utilizar la primera opción que vimos un poco más arriba (parámetro -k):
exiftool -k <nombredelaimagen>
[...]
GPS Latitude : 57 deg 41' 45.58" N
GPS Longitude : 11 deg 57' 19.69" E
GPS Position : 57 deg 41' 45.58" N, 11 deg 57' 19.69" E
[...]
Como podemos apreciar, en medio del mar de información aparece la relativa a la geolocalización de la imagen. Si finalmente la subimos a un servicio de imágenes tipo Flickr o similares, podremos observar cómo aparece activada la opción de mapa y la imagen se posiciona en el lugar adecuado.
Artículos relacionados:
Lunes, 3 de Agosto de 2009 a las 23:07 Usando
Samu… dime si sabes como se hace lo que te voy a decir o si directamente nos ponemos a programarlo nosotros.
La cámara del HTC Magic es una mierda, no me importa, pero las cosas como son. Mi cámara decente no tiene GPS.
Pero podría decirle al móvil que me guarde la posición con la hora y luego un programa que analice mi archivo de posiciones y las horas de las fotos.
¿Eso estará inventado ya, no?
Martes, 4 de Agosto de 2009 a las 00:41 Usando
Hablo sin tener ni idea, pero creo que la HTC Touch tiene geotagging, con una aplicación llamada Footprints.
Si hacéis algo parecido, aquí tenéis un fan:
http://www.htcmania.com/showthread.php?t=58020
Martes, 4 de Agosto de 2009 a las 00:46 Usando
Ya ya, pero yo quiero grabar por un lado mi recorrido GPS (con sus horas) y luego usarlo con fotos que he sacado con otra cámara.
Miércoles, 5 de Agosto de 2009 a las 21:30 Usando
Sip, Adal, yo te había entendido. Claro que se puede hacer, como casi todo en esta vida
Así a bote pronto se me ocurre una cosa. Tu cámara y tu móvil. Te haces un pequeño programita en el móvil que mediante un tap de pantalla acceda al GPS y almacene en un fichero la información de localización, concatenando la nueva información en una linea nueva.
Por otro lado tendremos un script que procese foto y fichero añadiendo la información que vaya leyendo de fichero a la foto correspondiente.
Entonces coges tu cámara y haces una foto. Sacas el móvil y haces tap. Generalmente habrá una correspondencia entre foto y la posición, el problema viene cuando en una foto no quieres o se te olvida hace tap…
Lo de las horas yo lo veo más complicao, no por lógica, que sería más fácil sino porque tendrías que sincronizar los 2 relojes y no hacer 2 fotos en distintos sitios en el mismo minuto porque cuadrar segundos es jodido y tendrías que ir a mirar minutos… a lo mejor puedes jugar con otra representación del tiempo
Pero vamos que lo estoy diciendo sin pensar, seguro que dándole a la neurona sale algo mejor