Ricavare la durata delle batterie dai dati EXIF

Tutto ciò che riguarda il pinguino

Moderatori: maxofrome, Enrico, Mauro, old_kappa, Buster

Ricavare la durata delle batterie dai dati EXIF

Messaggioda Liviux » ven ott 22, 2010 11:57 am

Volevo valutare quanto mi durano i diversi pacchi di batterie (uso gruppi di 4 stilo AA ricaricabili), ma ho tenuto appunti piuttosto frammentari in proposito. Per fortuna i dati EXIF riportano in ogni foto anche il livello di tensione misurato ai poli dell'alimentazione sia a riposo che sotto sforzo (perdonate i termini: non sono un ingegnere). Ho quindi realizzato uno script che fa uso dell'ottima utility exiftool. Forse può risultare utile a qualcuno, per cui lo riporto qui sotto. Così com'è lo script richiede un sistema Linux (o altri Unix-like) con bash, awk e exiftool. Penso comunque che si possa adattare abbastanza agevolmente per altri sistemi operativi sui quali giri exiftool.

Codice: Seleziona tutto
#!/bin/sh

# COSTANTI
# Directory nella quale cercare: di default quella corrente
CARTELLA=.
# File temporaneo con l'elenco delle foto trovate anche nelle sottodirectory
TEMPFILE=/tmp/nomiFoto
# Incremento di carica (in centesimi di Volt) che viene interpretato come ricarica delle batterie
SOGLIA=20

# Se si passa il nome di una directory, usa quella anziché quella corrente
if [ -e $1 ]; then
  CARTELLA=$1
fi

echo Cerco foto in $CARTELLA ...
# Prepara l'elenco delle foto da esaminare
find $CARTELLA -iname "*.JPG" -o -iname "*.PEF" -o -iname "*.DNG" > $TEMPFILE

echo Analizzo le foto elencate in $TEMPFILE ...
# Estrae i dati EXIF rilevanti, ordina in base al numero di scatto e cerca i "salti" di tensione che indicano una ricarica
exiftool -fast -T -d %d/%m/%Y -ShutterCount -FileName -CreateDate -BatteryADBodyNoLoad -BatteryADBodyLoad -@ $TEMPFILE | sort -n | awk 'BEGIN {caricaVecchia=999; scattiVecchi=0} {carica= $4 + $5; if ( carica > caricaVecchia + $SOGLIA) { if ( scattiVecchi != 0 ) { print "Ricarica dopo " $1 - scattiVecchi " scatti il giorno " $3 " scattando " $2 } scattiVecchi=$1; } caricaVecchia=carica; }'


Si usa lanciando lo script da console passandogli il nome della cartella contenente le foto. Ad esempio:
Codice: Seleziona tutto
liviux@Volvo:~$ durataBatterie Documenti/Immagini/foto/Pentax/

e dopo un po' butta fuori un elenco di eventi tipo:

Codice: Seleziona tutto
Ricarica dopo 341 scatti il giorno 11/04/2010 scattando IMGP7657.JPG
Ricarica dopo 357 scatti il giorno 05/05/2010 scattando IMGP8000.JPG
Ricarica dopo 425 scatti il giorno 23/05/2010 scattando IMGP8398.JPG

A me vengono fuori diverse righe "spurie", magari causate da pasticci con le batterie, sbalzi di temperatura o chissà cos'altro, ma risulta abbastanza facile individuarle per escluderle dalle statistiche. Bisognerebbe provare valori diversi del parametro SOGLIA per aumentare o diminuire la sensibilità (ottenendo quindi più o meno righe).
C'è da notare che il conteggio viene fatto sul numero di scatti dell'otturatore, quindi conta anche gli scatti "scartati" della cosiddetta "anteprima digitale", che non incrementano il contatore nei nomi dei file.
Mi farebbe molto piacere se qualcuno lo provasse, mi dicesse se funziona con i dati EXIF prodotti da altre macchine, e magari si prendesse la briga di portarlo su shell Windows o Mac.
Avatar utente
Liviux
Azionista del forum
 
Messaggi: 3761
Iscritto il: ven feb 27, 2009 10:46 am
Località: Papuasia sud-orientale
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda cheip » ven ott 22, 2010 12:05 pm

Ora faccio una prova, ma non sono a casa e non ho le mie foto con me. Di sicuro non saro` io a portarlo su Windows e men che meno su Mac :asd:

Lo sapevo che Liviux voleva dire qualcosa... :clap:
Rivogliamo l'autologin!!!

My homepage: http://goo.gl/zKrIUk

cheip
Avatar utente
cheip
Azionista del forum
 
Messaggi: 3825
Iscritto il: sab set 11, 2010 11:43 pm
Località: Vicino Torino
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda magma » ven ott 22, 2010 12:21 pm

Non mi esce l'output (Ubuntu 10.04). :triste:
Mario

FLP - pellicole scadute, c'è più gusto
la mia galleria Pentaxiani.it
foto Flickr
Avatar utente
magma
Azionista del forum
 
Messaggi: 2778
Iscritto il: mer mar 05, 2008 1:56 pm
Località: prov. Pavia
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda Liviux » ven ott 22, 2010 12:42 pm

magma ha scritto:Non mi esce l'output (Ubuntu 10.04). :triste:

A me gira su Kubuntu 10.10, quindi l'ambiente dovrebbe essere praticamente identico. Ti viene fuori almeno il messaggio "Analizzo le foto elencate in <directory> ..." ?
Prova ad eseguire il solo exiftool dentro una cartella piena di foto:

exiftool -fast -T -d %d/%m/%Y -ShutterCount -FileName -CreateDate -BatteryADBodyNoLoad -BatteryADBodyLoad *

e vediamo cosa viene fuori. Oppure prova solo exiftool senza parametri con una singola foto e verifica quali tag trova. Che macchina hai?
Avatar utente
Liviux
Azionista del forum
 
Messaggi: 3761
Iscritto il: ven feb 27, 2009 10:46 am
Località: Papuasia sud-orientale
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda magma » ven ott 22, 2010 12:46 pm

Liviux ha scritto:
magma ha scritto:Non mi esce l'output (Ubuntu 10.04). :triste:

A me gira su Kubuntu 10.10, quindi l'ambiente dovrebbe essere praticamente identico. Ti viene fuori almeno il messaggio "Analizzo le foto elencate in <directory> ..." ?
Prova ad eseguire il solo exiftool dentro una cartella piena di foto:

exiftool -fast -T -d %d/%m/%Y -ShutterCount -FileName -CreateDate -BatteryADBodyNoLoad -BatteryADBodyLoad *

e vediamo cosa viene fuori. Oppure prova solo exiftool senza parametri con una singola foto e verifica quali tag trova. Che macchina hai?


Mi esce questo messaggio:
"Analizzo le foto elencate in <directory> ...

Ho provato solo la riga di exiftool e funziona: esce una lista di foto con il dato exif, ad esempio:
4326 IMGP4122.JPG 30/07/2010 167 (7.3V, 34%) 162 (7.1V, 29%)

Ho una K10 firmware 1.30.
Mario

FLP - pellicole scadute, c'è più gusto
la mia galleria Pentaxiani.it
foto Flickr
Avatar utente
magma
Azionista del forum
 
Messaggi: 2778
Iscritto il: mer mar 05, 2008 1:56 pm
Località: prov. Pavia
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda Liviux » ven ott 22, 2010 2:05 pm

magma ha scritto:Ho provato solo la riga di exiftool e funziona: esce una lista di foto con il dato exif, ad esempio:
4326 IMGP4122.JPG 30/07/2010 167 (7.3V, 34%) 162 (7.1V, 29%)

Ho una K10 firmware 1.30.

Informazione preziosa!
Significa che, anche fra macchine che usano gli stessi nomi per le tag, ognuna ci caccia dentro i valori a modo suo! A meno che non sia la tua versione di exiftool a "tradurre" i valori, cercando di rendersi simpatico ma in definitiva sballando il tracciato che il mio script si aspetta di trovare.
Prova con
Codice: Seleziona tutto
exiftool -fast -T -d %d/%m/%Y -ShutterCount -FileName -CreateDate -BatteryADBodyNoLoad# -BatteryADBodyLoad# *

Il cancelletto dopo il nome delle tag dovrebbe disabilitare qualunque formattazione "simpatica".
Avatar utente
Liviux
Azionista del forum
 
Messaggi: 3761
Iscritto il: ven feb 27, 2009 10:46 am
Località: Papuasia sud-orientale
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda magma » ven ott 22, 2010 2:17 pm

Liviux ha scritto:[...]
Prova con
Codice: Seleziona tutto
exiftool -fast -T -d %d/%m/%Y -ShutterCount -FileName -CreateDate -BatteryADBodyNoLoad# -BatteryADBodyLoad# *

Il cancelletto dopo il nome delle tag dovrebbe disabilitare qualunque formattazione "simpatica".


Nessuna formattazione simpatica: :confuso:
4327 IMGP4123.JPG 30/07/2010 - -
ma neanche antipatica :triste:

Ho provato
exiftool -a -u -g1 nome.jpg
ti mando l'output in PM, così puoi vedere gli exif della K10.
Mario

FLP - pellicole scadute, c'è più gusto
la mia galleria Pentaxiani.it
foto Flickr
Avatar utente
magma
Azionista del forum
 
Messaggi: 2778
Iscritto il: mer mar 05, 2008 1:56 pm
Località: prov. Pavia
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda Liviux » ven ott 22, 2010 2:49 pm

magma ha scritto:
Liviux ha scritto:[...]
Prova con
Codice: Seleziona tutto
exiftool -fast -T -d %d/%m/%Y -ShutterCount -FileName -CreateDate -BatteryADBodyNoLoad# -BatteryADBodyLoad# *

Il cancelletto dopo il nome delle tag dovrebbe disabilitare qualunque formattazione "simpatica".


Nessuna formattazione simpatica: :confuso:
4327 IMGP4123.JPG 30/07/2010 - -
ma neanche antipatica :triste:

Ho provato
exiftool -a -u -g1 nome.jpg
ti mando l'output in PM, così puoi vedere gli exif della K10.

Perché "g1"?
Prova piuttosto exiftool -T --printConv nome.jpg
Oppure mandami in pm un link al file stesso, così vediamo se il casino nasce da versioni diverse di exiftool (noto adesso che io ho la 8.15, tu la 7.89).
A quando l'upgrade a ubuntu 10.10? :wink:
Avatar utente
Liviux
Azionista del forum
 
Messaggi: 3761
Iscritto il: ven feb 27, 2009 10:46 am
Località: Papuasia sud-orientale
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda magma » ven ott 22, 2010 2:59 pm

Liviux ha scritto:
magma ha scritto:[...]

Ho provato
exiftool -a -u -g1 nome.jpg
ti mando l'output in PM, così puoi vedere gli exif della K10.

Perché "g1"?
Prova piuttosto exiftool -T --printConv nome.jpg
Oppure mandami in pm un link al file stesso, così vediamo se il casino nasce da versioni diverse di exiftool (noto adesso che io ho la 8.15, tu la 7.89).
A quando l'upgrade a ubuntu 10.10? :wink:


Con exiftool -a -u -g1 nome.jpg escono tutti gli exif.
Per la 10.10 devo aspettare: ho lanciato un programma con oltre 10 giorni di tempo di calcolo (che si è piantato qualche giorno fa e dopo una correzione ha ricominciato da capo). Mica posso riavviare. :sdent:
Mario

FLP - pellicole scadute, c'è più gusto
la mia galleria Pentaxiani.it
foto Flickr
Avatar utente
magma
Azionista del forum
 
Messaggi: 2778
Iscritto il: mer mar 05, 2008 1:56 pm
Località: prov. Pavia
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda magma » lun ott 25, 2010 11:37 am

Aggiorno la situazione: anche con la versione 8.15, nel mio caso, gli output non cambiano. Sarà colpa della K10.
Mario

FLP - pellicole scadute, c'è più gusto
la mia galleria Pentaxiani.it
foto Flickr
Avatar utente
magma
Azionista del forum
 
Messaggi: 2778
Iscritto il: mer mar 05, 2008 1:56 pm
Località: prov. Pavia
 

Re: Ricavare la durata delle batterie dai dati EXIF

Messaggioda Liviux » lun ott 25, 2010 12:10 pm

Hai provato anche con l'opzione "-n"? In teoria, dovrebbe buttarti fuori solo puri numeri.
Avatar utente
Liviux
Azionista del forum
 
Messaggi: 3761
Iscritto il: ven feb 27, 2009 10:46 am
Località: Papuasia sud-orientale
 


Torna a Linux ®

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite