Add to Google Reader or Homepage |
~ pjvenda / blog
$home . blog . photography

16 January 2008

Focal length histogram

A warning first: this is highly geek stuff! Walk away if you don't have the stomach... or patience.

I was having a hard time in deciding what lens to buy next, I decided to rationalise things:

  1. I need a better lens;
  2. Better lens also means less flexible (less compromised);
  3. Being less flexible, my new lens should provide the focal range that I prefer;
Right, but what focal range is that?? It's not something that I can say from the top of my head like "My preferred focal range is exactly between 35 and 39mm!"...

So, after picking the idea from Tadeusz, I decided to do something similar

Knowing that my photo database has a little over 10000 shots, I wrote a small(ish) ruby program that goes over every picture file, extracts the focal length at which they were shot from EXIF metadata and produces a nice histogram with the help of gnuplot. Hopefully, by analysing the peaks of the histogram, I would be able to assess what is my preferred focal length range.

I will release the script on my website (in the "Programming - Ruby" section) after I fix a couple of annoying bugs in it.

The resulting graph run at 08 January 2008 looks as follows:

Focal length histogram of about 8000 pictures ranging between 18 and 125mm - Click on the screenshot to enlarge.

Roughly 8000 images were analysed and I only included the focal length range of my lens on the histogram. All focal lengths were adjusted to a 1.6x crop factor, but since the 18-125mm already takes that into account, focal lengths don't shift place on the histogram. By discarding the extreme ends of the above focal range (18 and 125mm), I got the following histogram:

Refined focal length histogram by discarding the extreme ends of the focal range in question - Click on the screenshot to enlarge.

Some extra notes before extracting results from the graph:
  • Instead of having a large number of histogram bars placed at the whole range of focal lengths, some discreet spikes show at about 17 different focal lengths. This seems to suggest either the lens is sending rough estimates of the focal length in use to the camera or the camera itself is aggressively rounding that information before writing the EXIF data;
  • The extreme ends of the assessed focal range were discarded because when using the ends of the lens, I would probably prefer to use lower or higher focal lengths respectively when using the minimum or maximum available focal length of the lens;
Clearly I am a wide-angle kind of photographer. The ranges I have used most often are between 18 and about 40mm with a little spike around 55mm.
Now that I have a scientific answer to the question: "What focal lenghts do I use more often?" maybe I can now decide which lens to buy? Well, I have decided and I have already bought it. Oddly it does not fit to the peaks of the histogram as well as I would like due to a number of reasons:
  1. I still want some degree of flexibility - or else I would be buying one or more prime lenses;
  2. I want excellent optical quality for the lower focal lengths - fast, sharp and with low distortion;
  3. The Canon 24-70mm f/2.8 L is absolutely out of the question for financial reasons;
Stand by for the result.

Cheers, PJ.

4 comments:

pkj said...

I saw your blog posting.

If you are interested in data analysis and visualization, you might also be interested in my book "Gnuplot in Action". You can pre-order it directly from the publisher: Manning: Gnuplot in Action.

If you want to learn more about the book and the author, check out my book page at Principal Value - Gnuplot in Action.

Let me know if you are interested in a review copy.

pjvenda said...

Thanks. I will surely look into it and will be in touch with you shortly.

Cheers!

Christian said...

I like your approach. Is it possible to get the script?

pjvenda said...

Sure, I've published it here: http://www.pjvenda.org/projects/ruby/

Cheers, PJ.