Beleuchtungstabelle berechnet
Der Fotograf braucht sowas heute wohl nicht mehr, die Kamera erledigt alles automatisch. Wer mit Beleuchtungen zu tun hat für den ist es durchaus interessant zu wissen vieviel Beleuchtungsstärke man für bestimmte Fotoaufnahmen benötigt um die Lichttechnik zu dimensionieren. Deshalb ist diese Tabelle nicht, wie in der Fotografie üblich, in Lichtwerten, sondern in Beleuchtungsstärke. Wenn man z.B. weiss dass direkte Sommersonne ca. 100 kLux erzeugt sieht man aus dieser Tabelle welche Blichtungskombinationen damit möglich sind.
Das Beispiel zeigt schön wie man die Schriftfarbe und die Hintergrundfarbe den Werten anpassen kann. Gnuplot erzeugt eine CSV Datei mit den Datenwerden und erzeugt dann daraus die Grafik.
#!/usr/bin/gnuplot # ©2019 Joachim Schwender # Erstellt eine Tabelle mit den Beleuchtungsstärken in Lux # als Zeile die Beliechtungszeiten und # als Spalten die Blendenwerte # Die Tabellenfelder sind mit einer Farbpalette eingefärbt die die Beleuchtungsstärke repräsentiert. # Die Werte werden berechnet und in eine Tabelle geschrieben # und anschliessend zum plotten wieder aus dieser Tabelle gelesen. # print "generiert Zahlentabelle der Beleuchtungsstärke zur Darstellung in Gnuplot" # BN='BeleuchtungsTabelle' #CSV=sprintf("%s%s",BN,'.csv') CSV=BN.'.csv' PDF=BN.'.pdf' PNG=BN.'.png' set print CSV # Ausgaben für print Befehl in Datei leiten ISO = 100.0 # ISO Zahl der Empfindlichkeit GrauWert = 0.18 # Reflektionsgrad für Grauwert (18%) Koeff = 0.43958 # Werte für die Tabelle, man könnte die Zahlenfolge auch berechnen... Blendenreihe="1 1.4 2 2.8 4 5.6 8 11 16 22 32" # Diese Zahlenfolge lässt sich nicht einfach berechnen da Rundungen drin sind. Zeitreihe="1 2 4 8 15 30 60 125 250 500 1000 2000 4000 8000 12500 16000 32000" # Xmax=0 # maximalwert der X-Koordinaten der Tabellen-Zellen vor dem Hochzählen mit Startwert belegen Ymax=0 # maximalwert der Y-Koordinaten der Tabellen-Zellen vor dem Hochzählen mit Startwert belegen # do for [y=1:words(Blendenreihe)] { do for [x=1:words(Zeitreihe)] { Blende = word(Blendenreihe,y) Zeit = word(Zeitreihe,x) Beleuchtung = Koeff / GrauWert * 100.0 / ISO * Blende**2.0 * Zeit Farbwert = log(Blende**2.0 * Zeit) print x, " ",y , " ", Farbwert, " ", Blende, " ", Beleuchtung Xmax=x # Maximalwerte merken Ymax=y } } # set print # Ausgaben mit print wieder auf die Konsole leiten # print "schreibe die PDF Datei." # set terminal pdf enhanced font 'arial,16' size 29.7cm,21cm set output PDF set size 0.9,0.5 set origin 0.05,0.30 set decimalsign locale unset key # Legende würde stören set view map set style data linespoints set xtics border in scale 0,0 mirror norotate offset character 0, 0, 0 set ytics border in scale 0,0 mirror norotate offset character 0, 0, 0 #set ztics border in scale 0,0 nomirror norotate offset character 0, 0, 0 set nocbtics set title "Erforderliche Beleuchtungsstärke E_V in Lux für Kombinationen aus Blende und Belichtungszeit" \ font ",24" set xrange [ 0 : Xmax+1 ] noreverse nowriteback set yrange [ 0 : Ymax+1 ] noreverse nowriteback set xtics out("" 0) # xtics löschen do for [n=1:words(Zeitreihe)] { set xtics out add (sprintf("1\n—\n%s",word(Zeitreihe,n)) n) } set ytics out ("1" 1, "1,4" 2, "2" 3, "2,8" 4, "4" 5, "5,6" 6, \ "8" 7, "11" 8, "16" 9, "22" 10, "32" 11, "Blende f" 12) tc rgb 'brown' font ",20" #set palette model HSV; set palette rgb 3,2,-2 #set palette rgbformulae -3, -24, 12 #set palette model XYZ functions gray**0.42+0.5, gray**0.2, 1 set palette model HSV functions 1.0-gray, 0.8-gray, 1 #set palette gray #set palette rgbformulae 3, -11, -6 #set palette rgbformulae 13, 1.24, 2.01 #set palette gray negative unset key unset colorbox set label sprintf("E_V = k * %1.0f/ISO * f² / t ; mit k=%1.6f / %2.2f ;\ E_V in Lux; Werte für die Empfindlichkeit 100 ISO",ISO,Koeff,GrauWert) at 2,-3 plot CSV using 1:2:3 with image, \ '' using 1:2:(($5 > 10000000) ? gprintf("%.0s %c",$5) :\ ($5 > 1000000) ? gprintf("%.1s %c",$5) :\ ($5 > 100000) ? gprintf("%.0s %c",$5) :\ ($5 > 10000) ? gprintf("%.0s %c",$5) :\ ($5 > 1000) ? gprintf("%.1s %c",$5) :\ ($5 > 100) ? gprintf("%.0s %c",$5) :\ gprintf("%.1s %c",$5)):($3) with labels center tc variable font ",20" set terminal png enhanced font 'arial,10' size 1600,800 set output PNG set size 0.93,0.93 set origin 0.05,0.04 replot