• Welcome to Photrio!
    Registration is fast and free. Join today to unlock search, see fewer ads, and access all forum features.
    Click here to sign up

What would you like to see in a plotting program?

Forum statistics

Threads
203,266
Messages
2,852,121
Members
101,753
Latest member
Janek201
Recent bookmarks
0
Steve

Are we still talking about your potential plotting software, or are you turning this thread into your Delta-X soapbox? Just let me know, I'm in for the former and out for the latter.

ic-racer was talking about a fractional gradient feature. That is the Delta-X criterion. I have the feature already incorporated in the program and was simply presenting an example of data analysis. The program doesn't have inertia speeds and probably won't since that method was discredited in the twenties. I might take a shot at gamma since Agfa still uses it.
 
Last edited by a moderator:
Ok, this is an interesting thread, but I don't pretend to be knowledgeable in all the computer programming discussion, I simply am not. And I'm sure I seem too simplistic in my approach, IDK.

Perhaps someone can tell me what folks like me are missing (if anything) by graphing curves the old fashion way with graph paper, which by the way only takes a few minutes. I do the traditional fixed density method of finding film speed of 0.1 at Zone I. I expose the tablet onto the film in the camera and then read the step desities from the film (subtract the fb+f density), then plot them against the corresponding calibrated step density of the tablet, connect the dots, there's the curve. To determine the EFS, I observe how much log exposure was required to reach a density of 0.1----if, for example, it does not reach a 0.1 neg density until a log exposure of 0.3 (Zone II), immediately I see that one full stop must be taken off the box speed for the EFS I'm looking for to give me 0.1 density at Zone I. It may reach a 0.1 density at a log exposure of 0.2, then I subtract 2/3 stop of the box speed. Or, like my TMX/d-76 1:1 speed test, a neg density of 0.1 was reached at Zone I, no change required from the box speed of 100.

Literally, after reading the step densities off the film, which has to be done regardless of using a plotter or by hand, once I have them in front of me, the curve is generated and film speed determined in just a few minutes.

So, assuming Stephen gets this thing going, how will I benefit from it (apart from the obvious savings in some time) in ways that I may not now know? Just curious, thanks in advance.

Chuck
 
ic-racer,

It's strange that Iford still uses a Δ log-H of 1.50. In fact, I had to go back and look it up because I thought they had since adopted Δ 1.80. The reason why 1.50 was used in the fractional gradient method is because the camera systems at the time produced around two stops of flare, which brings the illuminance range at the film plane of the average subject down to around 1.50. Today flare is half that, so for any average gradient to reflect the area of usage of the film, the Δ log-H range should be 1.80. Perhaps I should include both versions.

Chuck,

Once you have the data in the computer, you can play with it. Most people start with paper curves. In fact, the design of the graph in my program comes from the graph paper Kodak uses for hand drawn curves. Everyone should start out plotting by hand to gain a more thorough understanding of the process. The real advantage with plotting on computers comes when using a Reproduction curve where you can play with different film/paper combinations, exposure variations, scene luminance ranges, and different values of flare without having to redraw everything each time.

Steve
 
ic-racer was talking about a fractional gradient feature. That is the Delta-X criterion. I have the feature already incorporated in the program and was simply presenting an example of data analysis. The program doesn't have inertia speeds and probably won't since that method was discredited in the twenties. I might take a shot at gamma since Agfa still uses it.

Making the program abale to evaluate several methods of determining film speed will be a great benefit. Delta-X is certainly one of those methods.
 
...So, assuming Stephen gets this thing going, how will I benefit from it (apart from the obvious savings in some time) in ways that I may not now know? Just curious, thanks in advance.

Chuck

Chuck

It's the difference between practical and actual photography on one side, and the interest and fun some people have in photographic science on the other. There are dedicated people in each group, and some folks like to be active in both. I have a ton of books on photographic science, which don't have a single picture in them (imagine that), but they gave me an insight, I wouldn't want to be without. I also own a lot of portfolio books with amazing pictures, but not a word on how to get there.

In other words, you don't need any of this to take good pictures, but if you're already drawing your own curves by hand, I'm afraid, you've already been bitten by the bug of photographic science.
 
Another thing that would be very useful to lots of people would be a way to scan the step wedge (calibrated) and the resulting film and read the values in automatically from the film. I imagine a simple template to place them both on the scanner and then identify the corners would allow this to automatically read and plot the curve. For people without a densitometer it would let them use the program. I have a densitometer and I'd use this simply to avoid reading and entering a 100 points for a family of curves.
 
In other words, you don't need any of this to take good pictures, but if you're already drawing your own curves by hand, I'm afraid, you've already been bitten by the bug of photographic science.

I believe you perfectly correct. Although, I would have to say that my own picture making certainly has benefitted from it, especially from a technical and craft viewpoint for the stuff that I find myself photograhing.
_____________________

Stephen,

Thanks, I hope you are successful with it and I think I would be interested in it for my PC-------have any idea yet what something like that might cost?
 
So, assuming Stephen gets this thing going, how will I benefit from it (apart from the obvious savings in some time) in ways that I may not now know? Just curious, thanks in advance.

Chuck

I plotted on paper many years. The things I like about doing it on the computer are:
1) easy to superimpose curves
2) easy to get a linear regression, and if Steve's program materializes, easy to get other contrast parameters.
3) easy to share curves on the internet
 
Another thing that would be very useful to lots of people would be a way to scan the step wedge (calibrated) and the resulting film and read the values in automatically from the film. I imagine a simple template to place them both on the scanner and then identify the corners would allow this to automatically read and plot the curve. For people without a densitometer it would let them use the program. I have a densitometer and I'd use this simply to avoid reading and entering a 100 points for a family of curves.

I'm not sure how reliable that is. Scanning software do all kinds of image manipulation and curve tweaking.
 
I have a densitometer and I'd use this simply to avoid reading and entering a 100 points for a family of curves.

I'll have to agree with Ralph on this one. I too hate the tedium of having to enter by hand 100s of readings. That is why my program uses a modem link with MacBeth densitometers. It takes longer to enter the film/developer information than it does to record the wedge data.
 
I'll have to agree with Ralph on this one. I too hate the tedium of having to enter by hand 100s of readings. That is why my program uses a modem link with MacBeth densitometers. It takes longer to enter the film/developer information than it does to record the wedge data.

Stephen et al,

Thanks for doing this work. As I'm starting to develop an interest in increased systematization of my film and print work-flows I'll follow this thread with interest.

Tom
 
I'll have to agree with Ralph on this one. I too hate the tedium of having to enter by hand 100s of readings. That is why my program uses a modem link with MacBeth densitometers. It takes longer to enter the film/developer information than it does to record the wedge data.

If that's the case I guess I will be set to. I can hook my xrite up through the serial port.

However, I think if you scan the original step wedge along with the sample a scanner could be turned into a reasonable densitometer.
 
Here is an example of some C++ spline functions. One problem I have had with splines is that in the software I have been using (Deltagraph) it won't give me an equation for the spline. It just uses the spline for the graph output. It gives a nice smooth shape, but won't do any calculations on it. Its a "display only" function. I have used other software like that. So, my question is how do you solve for unknowns with the spline? Maybe its only "PC" software that can do that :smile:
Have you tried SciDAVis? It's available for OS-X, M$, and linux.

http://scidavis.sourceforge.net/download.html

open source and free

Lee
 
Here is an example of some C++ spline functions. One problem I have had with splines is that in the software I have been using (Deltagraph) it won't give me an equation for the spline. It just uses the spline for the graph output. It gives a nice smooth shape, but won't do any calculations on it. Its a "display only" function. I have used other software like that. So, my question is how do you solve for unknowns with the spline? Maybe its only "PC" software that can do that :smile:

Some graphing programs use splines as display-only functions. However, those x and y values for the spline must be available internally to the program - otherwise how does it plot the curve at all?

Any decent data analysis program can fit a spline to data. You calculate the spline coefficients from the data. Then you evaluate the spline with those coefficients at any x point you want and the appropriate y value is given back. If you want a spline that fits all of the data, you'd evaluate it for all x on the graph.

The problem with using other equations for curve fitting is this: If there is no underlying equation that actually describes the data, the fit is going to be off. Thus you might as well use a spline. And from what I understand from reading what PE has written a couple times, there isn't a useful equation, and at Kodak they spline fit characteristic curves.

Sadly, I could do this in about 8 lines of Python code, but it's command line driven and you need to jump through some hoops to install the appropriate packages. Matlab would be a lot easier, but a lot more expensive than free.
 
Sadly, I could do this in about 8 lines of Python code, but it's command line driven and you need to jump through some hoops to install the appropriate packages. Matlab would be a lot easier, but a lot more expensive than free.

Tim,

Could you elaborate on this? I've used Python on occasion for performing calculations but not plotting.

Tom
 
Sure thing. I use matplotlib and scipy for a lot of my work. matplotlib is a plotting package that does all of the graphical work. It's pretty easy to use once you get the hang of it. It requires the numpy package, which is a very nice array module, along with some lightweight math functions (simple polynomial fits, ffts, etc.). Scipy is the heavy duty scientific package with modules for integration, interpolation, curve fitting, etc.

I've attached a plot and the code I used. I snatched some data from the Kodak pdf on T-Max 3200, one of the curves for T-Max dev I think in a small tank, the 13 min development time. I sampled 12 points off that curve to use as my starting point. I then generated a spline, an array of x values to fill in the blanks, and evaluated the spline at those values. The original data is plotted in white circles, the spline fit is the dashed line. I then figured out what fb+.1 was by searching for the minimum y value of the spline + .1. fb + .1 is printed at the top, and is also shown in the dotted horizontal line.

You can see the code is only 26 lines long, including a couple blank lines thrown in. The first 9 lines are just importing modules and defining the data. Lines 10-13 are the actual spline fit, evaluation, and figuring out what fb+.1 is. The rest is just plotting.
 

Attachments

  • plot.png
    plot.png
    18.4 KB · Views: 95
  • film.py.txt
    803 bytes · Views: 96
Sure thing. I use matplotlib and scipy for a lot of my work. matplotlib is a plotting package that does all of the graphical work. It's pretty easy to use once you get the hang of it. It requires the numpy package, which is a very nice array module, along with some lightweight math functions (simple polynomial fits, ffts, etc.). Scipy is the heavy duty scientific package with modules for integration, interpolation, curve fitting, etc.

I've attached a plot and the code I used. I snatched some data from the Kodak pdf on T-Max 3200, one of the curves for T-Max dev I think in a small tank, the 13 min development time. I sampled 12 points off that curve to use as my starting point. I then generated a spline, an array of x values to fill in the blanks, and evaluated the spline at those values. The original data is plotted in white circles, the spline fit is the dashed line. I then figured out what fb+.1 was by searching for the minimum y value of the spline + .1. fb + .1 is printed at the top, and is also shown in the dotted horizontal line.

You can see the code is only 26 lines long, including a couple blank lines thrown in. The first 9 lines are just importing modules and defining the data. Lines 10-13 are the actual spline fit, evaluation, and figuring out what fb+.1 is. The rest is just plotting.

Thanks for this Tim. I'll try and work through the example and install the packages later.

Tom
 
Some graphing programs use splines as display-only functions. However, those x and y values for the spline must be available internally to the program - otherwise how does it plot the curve at all?...

I understand that some programs use spline functions but take three-data-points at a time to fit a parabola through them. This makes sure all data points are 'hit', but ingoing and outgoing tangents of adjacent parabolas may not match very well, leading to a potentially 'rough' curve. These curves have indeed no equation for the curve fit, because they just draw a bunch of unrelated parabolas.
 
...And from what I understand from reading what PE has written a couple times, there isn't a useful equation, and at Kodak they spline fit characteristic curves...

That's what my contact at Ilford initially said too, but he was quite impressed with the results of my non-linear curve fits for Multigrade IV. I think it can be done if some manual tweaking is applied. Not fully automated but nevertheless a decent curve fit with equation.
 
I understand that some programs use spline functions but take three-data-points at a time to fit a parabola through them. This makes sure all data points are 'hit', but ingoing and outgoing tangents of adjacent parabolas may not match very well, leading to a potentially 'rough' curve. These curves have indeed no equation for the curve fit, because they just draw a bunch of unrelated parabolas.

Yes, that is what I had learned many years ago. It is not a real 'statistical' fit. But from what I am learning there are different types of spline fits?? Yes??

Either way, there was that thread on mathematical curve fits, that many of us here posted to. Its just a matter of Steve incorporating something into his program.
 
Yes, that is what I had learned many years ago. It is not a real 'statistical' fit. But from what I am learning there are different types of spline fits?? Yes??

Well, if there is no underlying equation that actually describes the data, I'm not sure what a real 'statistical' fit is for that data. You could draw a squiggly line that goes all over the place, and as long as it goes through your data points, it's as good as anything. Obviously that's a somewhat ridiculous example, but the idea still stands.

There are different types of splines. The ones used in the example above was a cubic B-spline. I can change the order (cubic, or otherwise) but for this kind of data I don't feel like it really matters. There are a lot of other parameters, but again, this is pretty well behaved data and the defaults in scipy are quite fine.

Playing around with the data I posted previously, it looks like 4th order or 5th order polynomials find a reasonable fit too. Obviously, if there was an equation that governed the behavior of the curve, that would be the best thing to use. In that case, if you had a spurious data point, the curve *wouldn't* pass through that point, which is the behavior you want. With a spline, the 'fit' is going to go through all the points no matter how off they might actually be.
 
...Either way, there was that thread on mathematical curve fits, that many of us here posted to. Its just a matter of Steve incorporating something into his program.

Agreed, that will be simple enough. I suggest an option for x-order polynomials or x-order non-linear functions as the one I posted earlier. The user can try them out and select the one with the best optical fit.
 
You can see the code is only 26 lines long, including a couple blank lines thrown in. The first 9 lines are just importing modules and defining the data. Lines 10-13 are the actual spline fit, evaluation, and figuring out what fb+.1 is. The rest is just plotting.
First, thanks for posting the code Tim.

I'm not sure what environment you're running, but the code needed some adaption to run on my debian based linux system without throwing errors. I had to explicitly import "interpolate" from scipy, and I needed to leave off the "sp." at the beginning of the interpolate functions in lines 10 and 12 of your code.

I'll attach the revisions needed for my system in case anyone finds them useful. BTW, those running the code should know that they need to look in the active directory for the resulting image, in a file named plot.png

Lee
 

Attachments

  • film-rev1.py.txt
    827 bytes · Views: 88
Photrio.com contains affiliate links to products. We may receive a commission for purchases made through these links.
To read our full affiliate disclosure statement please click Here.

PHOTRIO PARTNERS EQUALLY FUNDING OUR COMMUNITY:



Ilford ADOX Freestyle Photographic Stearman Press Weldon Color Lab Blue Moon Camera & Machine
Top Bottom