Jump to content

Die OM System Community
Ignoriert

Exiftool: Brennweite auf 5 mm runden?


Gast

Empfohlene Beiträge

Ich schätze Exiftool (und auch Lightroom) u.a. für die Möglichkeit, sich die verwendeten Objektive einer Reihe von Fotos (zum Beispiel die aus dem letzten Jahr) anzeigen zu lassen:
 

exiftool -q -q -s -s -s -Lens *.dng | sort | uniq -c | sort -n -r

Man kann sich ja auch die Brennweiten geordnet auflisten lassen:

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort | uniq -c | sort -n -r

(Beides sortiert alle DNGs aus dem aktuellen Verzeichnis nach Häufigkeit absteigend.)

Die Brennweite für jeden Millimeter extra zu sehen, ist aber nicht sehr zielführend. Wie rundet man sie kaufmännisch – sagen wir auf 5 mm – vor dem Zusammenzählen und Sortieren? Weiß das jemand?

bearbeitet von Gast
Präzisierung
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 50
  • Created
  • Letzte Antwort

Top Posters In This Topic

Top Posters In This Topic

Posted Images

vor 1 Minute schrieb Rob. S.:

Ich weiß es nicht, halte den Ansatz "auf 5mm runden", wenn man auch Brennweiten unterhalb von ca. 50mm verwendet, allerdings für eher suboptimal 😉   

Auch wieder wahr. Dann wird es noch schwieriger, denn es sollte „dynamisch” gerundet werden. Bei kurzen Brennweiten wenig, bei langen mehr. :classic_wacko:

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Minuten schrieb Subhash:

Danke, aber lieber MS-frei und in der selben Befehlszeile.

Dann vielleicht so:

Ergebnis = Rundenfunktion (Quellwert/5;0)*5

Da ich neben Excel nur VB und VBA kenne, heißt die Runden Funktion round.

Sollte sich aber auch in anderen Programiersprachen so oder ähnlich lösen lassen.

Quellwert durch 5 teilen, auf 0 Nachkomma stellen runden und das Ergebnis dann mit 5 multiplizieren.

Zu dem zweiten Punkt von Rob.S. : Da muss man wohl mit einem wenn-dann-sonst - Konstrukt ran. Die Grenzwerte müssen aber zuvor noch festgelegt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 22 Minuten schrieb TKI:

Zu dem zweiten Punkt von Rob.S. : Da muss man wohl mit einem wenn-dann-sonst - Konstrukt ran. Die Grenzwerte müssen aber zuvor noch festgelegt werden.

Vielleicht besser nicht auf 5 mm, sondern auf 5 % der Brennweite runden. Das wären bei 12 mm Brennweite auf 0,6 mm bei 50 mm auf 2,5 mm und bei 200 auf 10 mm. Erscheint mir brauchbar. Nicht so wie das:

  14  7.0 mm
  68  8.0 mm
   1  9.0 mm
   1 10.0 mm
  10 11.0 mm
  73 12.0 mm
   1 13.0 mm
  31 14.0 mm
  22 16.0 mm
  10 17.0 mm
   3 18.0 mm
  23 20.0 mm
  17 21.0 mm
  25 23.0 mm
  13 25.0 mm
  20 26.0 mm
   9 27.0 mm
  72 28.0 mm
  17 29.0 mm
  74 30.0 mm
   2 32.0 mm
   4 33.0 mm
  45 35.0 mm
   7 36.0 mm
  10 37.0 mm
   2 38.0 mm
   5 39.0 mm
  18 40.0 mm
  17 42.0 mm
  16 43.0 mm
   5 44.0 mm
   8 45.0 mm
  12 46.0 mm
   1 47.0 mm
   4 48.0 mm
   7 49.0 mm
 424 50.0 mm
	.
	.
	.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich Dich richtig verstanden habe, möchtest Du einzelne Brennweiten (BW) zu Brennweitenbereichen (BWB) zusammenfassen um dann die Anzahl der Bilder zu summieren um das Ganze übersichtlicher dazustellen. Mit Deiner 5% Idee bin ich nicht weiter gekommen.

Wenn man auf 5 genau rundet kannst Du die Brennweiten bis 100 mm auf 20 BWB zusammenfassen

weitere BWB dann in 10er, 25er und 50er Schritten bis meinetwegen 1000 mm oder etwas mehr. Natürlich sind auch größere Schrittweiten möglich. Je nach dem was Sinn macht.

Die einzelnen Funktionen werden dann in einem if-then-else Konstrukt zusammen gefaßt. Dann muss nur noch die Summierung der Bilder in den einzelnen Gruppe gelöst werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 6.1.2019 um 08:18 schrieb Subhash:

Danke für die Beschreibung! Theoretisch ist mir das schon klar. Aber meine Kenntnisse des dem Mac OS zugrundeliegenden Unix sind zu schwach um das auch umsetzen zu können.

Evtl. könnte Dir 'bc' behilflich sein... Nimmt auch Ausdrücke aus der Pipe; ob es da jetzt eine Rundungsfunktion gibt, weiß ich leider grad nicht. Das Teil ist sonst mein Kommandozeilen-Taschenrechner...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein Lightroom-Plugin von Jeffrey Friedl „Data Plot” zeigt eine Statistik (Brennweitenbereiche hätte ich mir anders gewünscht …):

screenshot_lr_data_plot.thumb.jpg.52cc9b061ad9e7195b4d99bf1751b3fd.jpg

Die Daten dieser Darstellung lassen sich auch als CSV-Datei abspeichern.

Man kann auch nach Belichtungszeit, Blende, ISO oder Lichtwert auswerten lassen.

bearbeitet von Gast
Präzisierung
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Runden auf 5er-Schritte (oder wie man das nennen soll) mit bc hätte ich:

define round(x) {
scale=1
a=0.5
y=x/5+a
scale=0
return y/1*5
}

Aber wie ich das mit dem Exiftool-Befehl verbinde, weiß ich nicht:

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c

So wird’s ja nicht gehen:

round(exiftool -q -q -s -s -s -EXIF:FocalLength *.dng) | sort -n | uniq -c

 

bearbeitet von Gast
Kortektur der Funktion zu 5er-Schritten
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Stunden schrieb Subhash:

Das Runden auf 5er-Schritte (oder wie man das nennen soll) mit bc hätte ich:


define round(x) {
scale=1
a=0.5
y=x/5+a
scale=0
return y/1*5
}

Aber wie ich das mit dem Exiftool-Befehl verbinde, weiß ich nicht:


exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c

So wird’s ja nicht gehen:


round(exiftool -q -q -s -s -s -EXIF:FocalLength *.dng) | sort -n | uniq -c

 

Nee, aber evtl. so:

Die Funktionsdefinition legst Du in einer Datei ab (z. B. ~/bc_round.bc) und an Deine Kommandozeile hängst du was dran:

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c | ( read n l u ; echo "round($l)" | bc -l ~/bc_round.bc )

Evtl. kannst Du die round-Funktion ja so gestalten, dass abhängig vom Argumnent die prozentuale Rundung (s. o.) durchgeführt wird...

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 58 Minuten schrieb Grinzold:

Evtl. kannst Du die round-Funktion ja so gestalten, dass abhängig vom Argumnent die prozentuale Rundung (s. o.) durchgeführt wird...

Das wäre dann der nächste Schritt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb Grinzold:

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c | ( read n l u ; echo "round($l)" | bc -l ~/bc_round.bc )

Resultat:

Zitat

l: Undefined variable

(Gemeint ist der Kleinbuchstabe „l”.)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Ausgabe von

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng

lautet übrigens

30.0 mm
50.0 mm
75.0 mm
etc.

Man müsste also „ mm” noch weglöschen (und nach dem Runden wieder anfügen). Da bin ich auch überfragt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 28 Minuten schrieb Subhash:

Die Ausgabe von

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng


exiftool -q -q -s -s -s -EXIF:FocalLength *.dng

lautet übrigens

30.0 mm
50.0 mm
75.0 mm
etc.

Man müsste also „ mm” noch weglöschen (und nach dem Runden wieder anfügen). Da bin ich auch überfragt.

Ha, mein olles exiftool gibt vor der Brennweite noch eine Ziffer aus. Also sollte der read-Befehle nur zwei Werte in Variablen einlesen: l und u.

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c | ( read l u ; echo "round($l)" | bc -l ~/bc_round.bc )

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Leider bleibt's bei

Zitat

l: Undefined variable

Kann (muss) man die vorher definieren? Wie? Vielleicht liegt’s an der Shell? Die ist bei mir tcsh. Ich habe da leider so gut wie keine Ahnung. Mit „man shell” habe ich nichts gefunden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 21 Minuten schrieb Subhash:

Leider bleibt's bei

Kann (muss) man die vorher definieren? Wie? Vielleicht liegt’s an der Shell? Die ist bei mir tcsh. Ich habe da leider so gut wie keine Ahnung. Mit „man shell” habe ich nichts gefunden.

Oh, Mist... Das ist bash-spezifisch. Tip doch mal ein 'bash' ein und versuchs noch mal, mit 'exit' kommst Du ja jederzeit zur aufrufenden shell (tcsh) zurück.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit „bash” gibt’s keine Fehlermeldung mehr, aber die Ausgabe stimmt nicht.

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c

ergibt in einem Beispielverzeichnis:

   7 7.0 mm
   1 13.0 mm
   3 17.0 mm
   2 18.0 mm
   6 20.0 mm
   1 21.0 mm
   5 27.0 mm
   5 39.0 mm
   1 40.0 mm
   3 42.0 mm
   6 46.0 mm
   2 54.0 mm
   3 70.0 mm
   3 81.0 mm
   4 100.0 mm
   1 108.0 mm
   1 120.0 mm
   3 133.0 mm
   1 141.0 mm
   1 149.0 mm
   3 179.0 mm
   1 215.0 mm
   1 226.0 mm
  12 252.0 mm
   9 300.0 mm

und

exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c | ( read l u ; echo "round($l)" | bc -l ~/Desktop/bc_round.bc )

mit der oben angeführten Funktion eine einzelne ganzzahlige Ziffer, nämlich „5”.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 46 Minuten schrieb Subhash:

Mit „bash” gibt’s keine Fehlermeldung mehr, aber die Ausgabe stimmt nicht.


exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c

ergibt in einem Beispielverzeichnis:

   7 7.0 mm
   1 13.0 mm
   3 17.0 mm
   2 18.0 mm
   6 20.0 mm
   1 21.0 mm
   5 27.0 mm
   5 39.0 mm
   1 40.0 mm
   3 42.0 mm
   6 46.0 mm
   2 54.0 mm
   3 70.0 mm
   3 81.0 mm
   4 100.0 mm
   1 108.0 mm
   1 120.0 mm
   3 133.0 mm
   1 141.0 mm
   1 149.0 mm
   3 179.0 mm
   1 215.0 mm
   1 226.0 mm
  12 252.0 mm
   9 300.0 mm

und


exiftool -q -q -s -s -s -EXIF:FocalLength *.dng | sort -n | uniq -c | ( read l u ; echo "round($l)" | bc -l ~/Desktop/bc_round.bc )

mit der oben angeführten Funktion eine einzelne ganzzahlige Ziffer, nämlich „5”.

Jo, war natürlich nur mit einem File gecheckt; der Klammerausdruck muss dann so aussehen:

( while read l u ; do echo "round($l)" | bc -l ~/bc_round.bc; done )

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...

Wichtige Information

Wenn Sie diese Seite nutzen, stimmen Sie den Community-Regeln zu. Wir haben Cookies gesetzt, um die Bedienung des Forums zu verbessern. Du kannst deine Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass du damit einverstanden bist. Mehr Informationen in unserer Datenschutzerklärung