The main purpose of this code is to plot and calculate film and paper sensitometric characteristic (HD) curves. This code will also interpret the curves to find the optimal development time, based on Kodak Contrast Index (CI) values mentioned in "Way Beyond Monochrome" 2nd Ed by Ralph Lambrecht and Chris Woodhouse. There are additional functions that paper-related functions provide, including the ability to calculate a table of offsets to calibrate VCCE (variable contrast constant exposure) type of enlarger heads, such as the LPL VCCE. A benefit of such a calibration table is that you know how much to adjust the exposure duration as you increase or decrease the grade while maintaining identical tone of the selected density.
For more information about the origin of this code and a discussion about it, please see the following thread on APUG/Photrio, or submit an issue using GitHub. Comments and pull requests are welcome.
I would like to thanks the following APUG/Photrio members for their input and suggestions which greatly helped me write this software: Bill Burk, Dale (ic-racer), David Goldenberg, Rudi (Rudeofus), and Stephen Benskin.
To see photography that has been improved thanks to this code, please visit my site.
You can see the results, including data, code and plots for a sample run by visiting https://rpubs.com/RLL/delta100trayddx
To retrace this run on your own, load and run through the enclosed R Markdown
script in file Delta 100 DDX 1+4 Tray Continous AR 2017.Rmd
Everything you need is in the script file plots.R
To use, call as below, providing your densitometer readings in the first parameter, as a data frame, which must contain as the first column named He your relative log E values (from your sensitometer etc), starting at 0 and increasing towards the right. Every remaining column should contain density readings. Readings can be absolute, ie. including FB+Fog, or relative, the code below will subtract the smallest reading, assuming it is FB+F from each column, respectively, automatically. Make sure to name your columns something like "7 min" etc. If you do, and there are at least 2 columns, this program will attempt to plot a Dev Time/CI curve having extracted those development times from the column names. It will also show, as lines on that plot, the target CIs for the different N-values, based on suggestions from Way Beyond Monochrome, which you can override if you wish. If your data is in a CSV that contains column headers (the first must be called He), or another text file, use read.csv (or another read.table function) to put it in a data frame.
Optionally, you can provide a vector of exposure offsets as the log.e.offset
parameter. This is used to indicate that a series of readings in the
corresponding column represents exposures greater by the value of the offset.
This is useful if you want to take a second sensitometric exposure which is
larger, by that offset, to effectively compute a longer curve, without using a
longer step tablet.
delta100.ddx1.4 <- read.csv("delta100.ddx1.4.csv")
plot.film.test(delta100.ddx1.4) # This is the simplest way to use it. Or make it more complex:
plot.film.test(delta100.ddx1.4, "Delta 100 4x5 DDX 1+4 20˚C CombiPlan 30s/3inv.5s@30s",
"Exposure\nEseco SL-2\nGreen x2 + x6",
log.e.offset=c(0,.21,0,.21,0,.21,0,.21,0,.21), df=7, dev.time.smoothing=2)
plot.film.test(delta100.ddx1.4, title = "Delta 100 4x5 DDX 1+4 20˚C CombiPlan\nAgitation 3 inversions at 30s intervals",
sensitometry = "Exposure\nEseco SL-2\nGreen x2 x6",
log.e.offset=0.42, df=6, combined.pairwise.plot = TRUE)
When run, code will create two plots: a set of characteristic curves and a development time plot, like these:
Explanation of the remaining parameters can be found as comments in the code.
Read code comments listed next to each of the function's arguments, or try this:
mgwt.ds.14r.r.apo.n.150.vcce <- read.csv("mgwt.ds-14r.r-apo-n-150.vcce.csv", row.names=1)
plot.paper.test(mgwt.ds.14r.r.apo.n.150.vcce)
plot.paper.test(mgwt.ds.14r.r.apo.n.150.vcce, IDmax=1.9,
title="Ilford MGWT FB1K in DS-14R\nIDmax at 1.9 for ISO-R\nExposure adjustments match highlight density 0.10",
sensitometry="VCCE Channel 2")