Skip to main content

the avatar of Alberto Garcia

Cambiar la fecha de series de imágenes

Uno de los problemas de las cámaras de fototrampeo es que en cuanto están más de 10 segundos sin pilas se resetea el reloj y la fecha impresa en la foto es errónea o muy errónea. En la mayoría de las ocasiones se vuelve al año de fabricación y en otras, cuando el fallo de baterías es leve o momentáneo pues se vuelven atrás 20 horas ó 30 minutos.
Si (como es mi caso) la fecha/hora en que se capturó la imagen es importante pues es un incordio. Pero fácil de solucionar si sabes cuanto de retrasado estaba el reloj de la cámara.Obviamente cuando este zorro se fotografió no eran las 13:11

La dificultad está en saber la cantidad de tiempo en que está desajustada la cámara, pero gracias a las fotografías que toma la cámara nos toma al instalarla o desinstalarla es relativamente fácil calcular este desajuste con un margen de error de sólo minutos.
En mi caso, recogí las fotografías a las 19:00 y en ese momento la cámara me tomó una foto marcandola como las 02:16 del mismo día, es decir, la cámara iba retrasada 16 horas 45 minutos.

Cambiar datos EXIF

Leer y escribir datos EXIF en archivos de imágenes exiftool es básico. El alias -alldates nos permite ver todas las fechas relativas a una imagen o varias exiftool -alldates IMAG_0012.JPG
Date/Time Original : 2018:01:31 13:05:09
Create Date : 2018:01:31 13:05:09
Modify Date : 2018:01:31 13:05:09

Para corregir todo una serie de fotos y adelantar sus fechas de creación y modificación 16 horas y 45 minutos basta con entrar en la carpeta que las contenga y en un terminalexiftool -alldates+="0:0:0 16:45:0" *
#retrasar 1 año 20 dias y tres horas
exiftool -alldates-="1:0:20 3:0:0" *.JPG

El formato es AÑO:MES:DIA HORA:MINUTO:SEGUNDOS. Hay que especificarlos la fecha incluso si no vais a modificarlos como en el ejemplo poniéndolos a cero.
En un segundo exiftool modifica todas las imágenes indicadas generando un copia de seguridad del archivo sin modificar añadiendo el sufijo “_original”.

Ahora podéis renombrar las imágenes según su fecha de creación simplemente haciendo:exiftool -FileOrder FileNumber "-FileName<CreateDate" -d AGQ_%Y%m%d_%H%M%S%%-c.%%le'

Eso generaría una lista de archivos como:AGQ_20180130_002234.jpg
AGQ_20180130_125225.jpg
AGQ_20180127_144258.jpg
AGQ_20180131_024455.jpg
AGQ_20180206_141620.jpg
AGQ_20180205_200035.jpg
AGQ_20180203_124745.jpg

Nota la opción “-FileOrder FileNumber” es interesante incluirla (no obligatorio) por el siguiente motivo: si las fotos están tomadas con varios horas o minutos de diferencia no hay problema en el renombrado, pero si las fotos corresponden a una ráfaga de (ejemplo) una cámara reflex, en la que varias fotos comparten la hora:minuto:segundo de creación exiftool las renombrará añadiendo al final un -1, -2, -3, etc… pero puede que índice no respete el orden en que fue realizada la ráfaga. Al incluir FileNumber le decimos que respete el orden número que llevaba el nombre original, y lo mantenga. Así las fotos FOTO_0244.NEF, foto FOTO_0245.NEF, foto FOTO_0246.NEF pasarán a ser AGQ_20180110_123456-1.nef, AGQ_20180110_123456-2.nef, AGQ_20180110_123456-3.nef…compartiendo fecha y orden de creación.

Modificar la fecha impresa en la imagen

(puntua para premio :D )
Obviamente el ejemplo del paso anterior únicamente modificábamos los datos exif insertos el archivo fotográfico. Pero muchas cámaras de fototrampeo sobreimprimen en la imagen la fecha en fueron creadas (mal impresa porque el reloj de la cámara estaba desconfigurado).
Pero nada que no tenga arreglo, con un par de líneas y otra fabulosa herramienta ImageMagick podemos arreglarlo rápidamente.
Las siguientes líneas cogen todos los JPG de una carpeta, renombrados como en el paso anterior y sobreimprimen la fecha de la fotografía con la fecha corregida:
mkdir corregidos
for file in $(find . -type f -name "*jpg"); do
t=$(echo "$file"|sed -r 's/.\/AGQ_([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2})([0-9]{2}).jpg/\2\/\3\/\1 \4:\5:\6/');
convert "$file" -gravity south-east -fill '#dddddd' -draw 'rectangle 1600,1845 2250,1950' -fill black -pointsize 76 -annotate +320+5 "$t" -flatten "./corregidos/$file"
done

Con esa línea se corrigen 200 fotografías en apenas 30 segundos
Imagen con fecha EXIF y fecha impresas corregidas

the avatar of Francisco J. Arias

the avatar of Francisco J. Arias

Arduino para Niños

Hace un par de semanas iniciamos un pequeño proyecto junto a mi hija. La idea era encontrar algo que nos permitiése divertirnos y compartir tiempo juntos, si además de lo anterior se aprende algo, tanto mejor. Entonces se me ocurrió la idea de enseñarle experimentos usando Arduino, algo de electrónica muy (pero muy) básica y un toque de programación.

Así nació este proyecto de ir grabando en video y publicando sus experimentos. El trabajo se presenta en formato simplificado: arduino por niños y para niños. Ella tiene apenas 10 años y se mostró muy entusiasmada. En el "detrás de cámaras" armó un arreglo de 8 leds con alimentación común y otro de 4 leds con alimentación individual, después de aprender el clásico "Hola Mundo" de Arduino usando sólo un led. Para las próximas entregas empezaremos con sensores y condiciones. La idea final (que ella aún desconoce, al más puro estilo del Dr. Manhattan xD) es construir un repele-gatos y también un pequeño vehículo.

Los invito entonces a difundir y compartir ;-) (Enlace video)



a silhouette of a person's head and shoulders, used as a default avatar

a silhouette of a person's head and shoulders, used as a default avatar

Primera observación lunar del 2017

El pasado 5 de Enero mis amigos y colegas Sergio Briones, Maxwell Mendoza, y yo; realizamos una observación teléscopica pública de la Luna. Nos ubicamos con dos telescopios en la Plaza de la Independencia, de Granada, desde las 6 p.m. Tuvimos una concurrida asistencia de personas, incluyendo turistas nacionales y extranjeros. Varios de los niños […]

a silhouette of a person's head and shoulders, used as a default avatar

Cuando los planetas se juntan

Si eres un curioso observador de la naturaleza (y has de serlo si estás leyendo estas líneas), seguramente no habrá escapado a tu vista el precioso espectáculo que ha tenido lugar al atardecer durante estos días. Los planetas Venus y Marte en el ocaso, con la Luna cresciente jugando con ellos. Cuando la Luna se […]
a silhouette of a person's head and shoulders, used as a default avatar

El meteoro que no fue

Si vives en Centroamérica, probablemente habrás escuchado la noticia de que la noche del 27 de Diciembre del 2016, un brillante meteoro fue observado a lo largo del litoral Pacífico del istmo. Reportes desde Costa Rica, Nicaragua, El Salvador y Guatemala no se hicieron esperar en las redes sociales. Aquí en Nicaragua, los reportes se […]

the avatar of Alberto Garcia

Prevenir el borrado accidental de archivos en Linux

Una de las pesadillas recurrentes cuando manejas Linux desde un terminal o consola es equivocarte al teclear un comando como ROOT y en lugar de escribir rm ./* escribir rm *, lo primero borra todo en la carpeta, lo segundo borra todo en el ordenador. Sólo me ha pasado una vez, y recuerdo perfectamente ver como desaparecía la carpeta “/BOOT” y “/GRUB” delante de mis narices antes de darme cuenta de la tremenda metedura de pata (afortunadamente no llegó a la H de /HOME).
Como he visto varias veces volver a “pasar la piedra rozándome la cabeza” hace no mucho (más vale tarde que nunca) me decidí a aplicarme una medida para dedos torpes en dos etapas:
1º/ inhabilitar el comando rm
2º/ habilitar el uso de la papelera en consola.

Inhabilitar rm

Esto es tan sencillo como definir un alias llamado rm que diga algo asíalias rm='echo No use «rm», mejor use «del» o la ruta completa de rm «/bin/rm»
Añadiendo esa línea a nuestro de alias (en ~/.alias ó ~/.bashrc depende de tu Linux) cuando escribamos rm en consola nos aparecerá esa advertencia. Si persistimos en usar rm lo único que tenemos que hacer es usar su path completo /bin/rm.

Habilitar del

Habilitar el comando del (como abreviatura de delete, u otro que tu prefieras) es tan simple como crear un script en nuestro directorio BIN (~/bin) con nombre (p.ejemplo) deltrash.sh y con el contenido:#!/bin/sh
kioclient5 move "$@" trash:/

(Para KDE5, en otros KDE usa kioclient)
Ahora, de nuevo en alias creamos un atajo a nuestro script que diga algo comoalias del="rmtrash"
En adelante tras borrar uno o varios archivos veremos algo como

the avatar of Alberto Garcia

Digikam para identificar ginetas

Llevo ya bastantes años usando Digikam como gestor de álbumes de fotos. Hace ya muchas versión implantaron un módulo llamado “mesa de luz“, que recordando las mesas de luz de las diapositivas permite comparar cómodamente dos imágenes al mismo tiemnpo de forma sincronizada. Es muy útil para comparar dos imágenes casi idénticas y seleccionar la que tenga mejor nitidez, foco, exposición, etc…
La verdad, no lo he usado casi nunca, no le encontré mucha utilidad, hasta ayer, cuando descubrí que es una herramienta fabulosa para comparar dos fotogramas de las cámaras de trampeo y averiguar si por su patrón de manchas la gineta es la misma o no. A la izquierda el macho de gineta que ya viejo conocido (ver post anterior), a la derecha un “desconocida” fotografiada (por los pelos, solo los cuartos traseros) en una ubicación nueva (y bastante remota con respecto a las originales).

Conclusión, la gineta es la misma, y cada día me alucina más las caminatas que estos animales (paticortos) se pegan cruzándose La Muela de una punta a la otra con una regularidad y facilidad que me tiene asombrado.

the avatar of Alberto Garcia

Automatizar movimientos de ratón

Ya me pasó hace tiempo, que quería descargar varias decenas de archivos adjuntos a otros tantos emails y no sabía como sin pasarme la mañana moviendo el ratón por la pantalla. Entonces lo solucioné con IMAP, montando el correo electrónico de GMAIL como una carpeta local de mi ordenador pude obtener una copia en disco duro de los emails y sus adjuntos. Ahora se repite, misma situación, solución diferente.

Esta vez he optado por otra solución, requiere menos trabajo y es mucho más rápida que esperar a tener una copia local de GMAIL para extraer archivos, xdotool: un comando de consola que replica los movimientos de ratón y teclado, eventos de click, click-derecho, pulsación de teclas, etc… De esta manera es sumamente fácil simular que movemos el ratón al tal sitio, cliqueamos un botón, movemos a otro, pulsamos ENTERad infinitum

while [ true ]; do xdotool search "Correo" windowactivate --sync mousemove --window %1 290 460 sleep 0.5 click 1 sleep 3 key KP_Enter sleep 1 mousemove 1264 250 sleep 1 click 1 sleep 4; done

La siguiente línea de texto hace eso, sobre una página de GMAIL:
-busca la ventana llamada “Correo” y le da el foco activándola
– usandola como referencia mueve el ratón a sus coordenadas relativas 290×460 (botón descargar adjunto)
– espera 0.5 segundos y cliquea botón izquierdo del ratón (click 1)
– espera 3 segundos (mientras se abre diálogo guardar adjunto)
– pulsa ENTER
– espera 1 segundo (la descarga es rápida)
– mueve el ratón al botón “Siguiente mensaje”
– espera 1 segundo
– pulsa botón izquierdo del ratón
– espera 4 segundos a que cargue siguiente mensaje.
– repetir.

Ni os cuento las risas que nos hemos echado en algún trabajo a cuenta de automatizar el movimiento del ratón y dejar durante horas al 3DStudio modelando el solito escenarios… o dejando al ordenador durante largos periodos de tiempo enviando insultos por mensajería mientras nosotros nos íbamos de coartada a almorzar a la cafetería.