Jump to content
Die PEN, OM-D & E-System Community

Empfohlene Beiträge

Das gibt mir die jetzt die „gerundeten” Brennweiten aus, aber nicht die Anzahl davor und nicht „ mm” danach. Ich probiere herum, aber ich komm nicht hin.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 39 Minuten schrieb Subhash:

Das gibt mir die jetzt die „gerundeten” Brennweiten aus, aber nicht die Anzahl davor und nicht „ mm” danach. Ich probiere herum, aber ich komm nicht hin.

Ich ahne schon, was da los ist. Wenn ich zu Hause bin, werde ich noch mal einen Blick werfen.

Wäre es insgesamt nicht sinnvoll, die Rundung vor der Statistik laufen zu lassen?

  • Danke 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 9 Minuten schrieb Grinzold:

Wäre es insgesamt nicht sinnvoll, die Rundung vor der Statistik laufen zu lassen?

Ja.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 51 Minuten schrieb Subhash:

Ja.

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

Das hat jetzt bei mit gut funktioniert. Jetzt noch in ein passendes Skript und das Ganze läuft auch aus der tcsh.

 

bearbeitet von Grinzold
Ding statt Ping :-))))
  • Danke 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Wenn ich

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

aus der bash aufrufe bekomme ich falsche Werte! Nämlich

Zitat

   1 25.0 mm
   3 70.0 mm
   4 149.0 mm

statt:

Zitat

   1 25.0 mm
   3 70.0 mm
   4 149.0 mm
   3 300.0 mm

Die letzte Zeile fehlt also. Rufe ich dagegen mit meinem Rundungsskript

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

auf, dann stimmt’s! (Nur dass eine Rundung bei 4 Werten sinnlos ist. War ja nur ein Test.) Es stört mich noch, dass die "mm" verschwunden sind.

Ich versuche es jetzt einmal mit 1.500 Fotos.

bearbeitet von Subhash

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Das dauert ziemlich lange, bei mir 5 min.

Mein Rundungsskript macht mich noch nicht so recht glücklich. Immerhin habe ich eine Ausgabe von 1.450 Fotos von 87 auf 45 Zeilen zusammengefasst, aber die Brennweitenbereiche sind nicht so sehr sinnvoll. Es macht zur Zeit:


für x
  5-14: Schrittweite 1 mm
 15-26: Schrittweite 2 mm
 27-41: Schrittweite 3 mm
 42-57: Schrittweite 4 mm
 58-78: Schrittweite 5 mm
 79-103: Schrittweite 6 mm
104-134: Schrittweite 7 mm
135-176: Schrittweite 8 mm
177-233: Schrittweite 9 mm
ab 234: Schrittweite 10 mm

Es lautet:

/* Runden in Schritten, die mit zunehmender Zahl x größer werden: */

define round(x) {
/* a zum kaufmännischen Runden: */
a=0.5
/* scale begrenzt die Anzahl der Kommastellen (dabei keine Rundung): */
scale=1
/* s ist die Schrittweite der Rundung, abhängig von der eingegebenen Zahl: */
s=x/(9+x/15)+a
scale=0
s=s/1
scale=1
y=x/s+a /* x < 5 ergibt Division durch 0! */
scale=0
return y/1*s
}

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Wenn ich versuche, die „mm” dazuzuschreiben, z.B. im Klammerausdruck:

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

oder so:

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

wird die Funktion nicht ausgeführt, sondern angeschrieben und die Sortierung fehlt:

   4  round(149.0)
   1  round(25.0)
   3  round(300.0)
   3  round(70.0)
  11 0

Dafür gibt’s unten eine Extrazeile. Es sind 11 DNGs in diesem Verzeichnis, das stimmt, und sonst nichts.

„Seine Welt ist voller Wunder”, wie die Werbung einst sagte (und wir Schüler als Spott übernahmen).

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Minuten schrieb Subhash:

Wenn ich versuche, die „mm” dazuzuschreiben, z.B. im Klammerausdruck:


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

oder so:


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

wird die Funktion nicht ausgeführt, sondern angeschrieben und die Sortierung fehlt:


   4  round(149.0)
   1  round(25.0)
   3  round(300.0)
   3  round(70.0)
  11 0

Dafür gibt’s unten eine Extrazeile. Es sind 11 DNGs in diesem Verzeichnis, das stimmt, und sonst nichts.

„Seine Welt ist voller Wunder”, wie die Werbung einst sagte (und wir Schüler als Spott übernahmen)

Vergiss die 'mm'... Die kann man am Ende wieder dran hängen. Kein allgemeines Rechen-Werkzeug wird mit Einheiten etwas anfangen können.

Von welchem Betriebssystem reden wir hier?

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 3 Minuten schrieb Subhash:

Mac OS X 10.7.5

Das mag evtl. die eine oder andere Unstimmigkeit erklären... Hier Linux (Ubuntu 14.10 lts und Debian).

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 52 Minuten schrieb Subhash:

Das dauert ziemlich lange, bei mir 5 min.

Mein Rundungsskript macht mich noch nicht so recht glücklich. Immerhin habe ich eine Ausgabe von 1.450 Fotos von 87 auf 45 Zeilen zusammengefasst, aber die Brennweitenbereiche sind nicht so sehr sinnvoll. Es macht zur Zeit:

Wenn du es sowieso in ein Skript auslagerst, dann baue dir doch if-Anweisungen mit den Brennweitenbereichen ganz nach deinem Geschmack zusammen ... dann läuft's auch schneller.

Viele Grüße, Alex

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Minuten schrieb AKauffmann:

Wenn du es sowieso in ein Skript auslagerst, dann baue dir doch if-Anweisungen mit den Brennweitenbereichen ganz nach deinem Geschmack zusammen ... dann läuft's auch schneller.

Das ist sicher sinnvoll. (Hat auch schon TKI vorgeschlagen.) Wie lautet denn da die Syntax? Ich kenne bc nicht.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Danke, aber ich hab's in der Manpage nachgelesen mit „else if” probiert und bekam parse errors. (Hab's mit einem Workaround gelöst. Jetzt fehlt nur noch „ mm”.) 

bearbeitet von Subhash
Ergänzung

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 16 Stunden schrieb Subhash:

Danke, aber ich hab's in der Manpage nachgelesen mit „else if” probiert und bekam parse errors. (Hab's mit einem Workaround gelöst. Jetzt fehlt nur noch „ mm”.) 

Geht so:

else {

} if {

}

Die 'mm' kriegst du z. B. so: 

echo `bc -l ~/bc_round.bc <<< "round($l)"` mm

statt der Pipe

Also gesamt:

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

 

bearbeitet von Grinzold
Code ergänzt
  • Danke 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Super, funktioniert gut!
(Wer ORFs auslesen will, muss im Befehl oben statt „*.dng” „*.ORF” schreiben. Ausgelesen wird im momentan „gültigen” Verzeichnis, das mit „cd” gewechselt wird.)

Hier meine Rundungsfunktion, wie ich sie zur Zeit verwende:

/* Runden in Schritten, die mit zunehmender Zahl x größer werden: */

define round(x) {
/* a zum kaufmännischen Runden: */
a=0.5
/* scale begrenzt die Anzahl der Kommastellen (dabei keine Rundung): */
scale=1
/* s ist die Schrittweite der Rundung, abhängig von der eingegebenen Zahl: */
s = 50 /* y ≥ 150 */
if (x < 151) s = 10 /* 100 ≤ y ≤ 150 */
if (x < 95) s = 5 /* 20 ≤ y ≤ 95 */
if (x < 19) s = 3 /* 9 ≤ y ≤ 18 */
if (x < 9) s = 1 /* 0 ≤ y ≤ 8 */
y=x/s+a
scale=0
return y/1*s
}

 

bearbeitet von Subhash

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Wenn ihr schon programmiert - warum dann nicht mit einer flexibleren Sprache? Ich hatte hier z.B. mal ein Python-Skript vorgestellt, das auch die Brennweiten der Altgläser aus der Stabi-Einstellung auslas und zusätzlich zu den Daten der Systemobjektive grafisch darstellte. Das dürfte mit Shellskripten schwierig werden.

Anbei mal ein nahezu selbsterklärender Vorschlag, der Python2.7 und die Module numpy, pylab und pyexiv2 voraussetzt. Man speichert das Skript als ascii-Datei mit der Endung *.py ab und macht es unter unixoiden Systemen ausführbar. Der Erhalt der Einrückungen ist wichtig- sie ersetzen einige der in anderen Sprachen üblichen Klammerschwärme. Anschliessend kann man dem Progrämmchen per Drag'n Drop oder Kommandozeile ein Verzeichnis übergeben und erhält ein Brennweitenhistogramm als Ergebnis. Das Skript sollte unter  Linux, Mac und Win laufen- leider nicht unter Android.

Brennstat3.pdf

Brennstat.png

  • Danke 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 2 Stunden schrieb rodinal:

Wenn ihr schon programmiert - warum dann nicht mit einer flexibleren Sprache? Ich hatte hier z.B. mal ein Python-Skript vorgestellt …

Ich habe von Python keine Ahnung …

vor 2 Stunden schrieb rodinal:

Anbei mal ein nahezu selbsterklärender Vorschlag,

Super, danke! Werde ich gleich ausprobieren!

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Also bei mir (Mac) ist mit Drag & Drop einmal nichts. Da wird das Verzeichnis einfach in den Ordner kopiert, in dem das Script liegt. (Das Script wurde ausführbar gemacht.)

Wie geht’s über die Kommandozeile (Terminal)?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
1 hour ago, Subhash said:

:classic_mellow:

Das Modul pyexiv2 ist nicht installiert. Kannst du nachholen mit dem Befehl:

pip install pyexiv2

Pip ist das universelle Installations- und Deinstallationsprogramm der Sprache Python. Geht unter Linux und Win prächtig - unter Mac theoretisch auch.

Übergabe per Kommandozeile:

Wenn du das Programm "Brennstat. py" genannt hast und das Verzeichnis "/usr/local/Bilder" untersuchen möchtest, gibst du im Terminal ein:

Brennstat.py  /usr/local/Bilder

  • Danke 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Tja, wie so oft ist das wieder einmal nicht so einfach:

Zitat

[...%] pip install pyexiv2
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip import main
ImportError: No module named pip

Ich hatte es schon anders versucht:

Zitat

brew install pyexiv2
curl: (35) Unknown SSL protocol error in connection to downloads.sourceforge.net:443 
Error: Failed to download resource "scons"
Download failed: https://downloads.sourceforge.net/project/scons/scons/2.4.1/scons-2.4.1.tar.gz

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Irgendetwas scheint mit deiner Pfadsetzung nicht zu stimmen. Das ist schon merkwürdig, denn m.W. ist Python seit der Version 10.8 Teil des Mac-Betriebssystems (von dessen Feinheiten ich sonst wenig Ahnung habe). Da du den Homebrew-Installer erwähnst: Hast du evtl. eine zweite Python-Version nachinstalliert? Das könnte allerdings für ein ziemliches Chaos gesorgt haben.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nicht dass ich wüsste.

Aber genau diese Vorkommnisse sind es, die mich von allzu viel Open Source Abstand nehmen lassen. Was ich da schon Zeit verschissen habe …!

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
4 hours ago, Subhash said:

 

Aber genau diese Vorkommnisse sind es, die mich von allzu viel Open Source Abstand nehmen lassen.

In diesem Fall solite dein Dank aber eher an Apple gehen. Wenn die begrüssenwerterweise Python in ihr Betriebssystem integrieren und das Tool pip installieren, sollte das auch anstandslos arbeiten. Und der 443-Fehler bei brew kommt auch aus dem Dilettantenstadel - aus anderen BS lässt sich der Link problemlos anklicken.

Wenn deim Mac schon bei solchen Kleinigkeiten versagt, betrachte meinen Tipp besser als nicht gegeben. Eigentlich schade - denn Python ist eine Sprache, die sich traditionell nie um Betriebssystemgrenzen gekümmert hat (und mir deswegen stets sympathisch war).

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

  • Wer ist Online   0 Benutzer

    Keine registrierten Benutzer online.

×

Wichtige Information

Wir haben Cookies auf Ihrem Gerät platziert, um die Bedienung dieser Website zu verbessern. Sie können Ihre Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Sie damit einverstanden sind.