Altitude determination from aerial photographs
John Nordlie
Abstract: Given knowledge of camera optic specifications and
dimensions of visible ground objects/features, the distance from the
object/feature to the camera lens may be easily calculated.
Introduction
Unmanned balloon flights done by our High Altitude Research
Group have always included a camera to take images during the mission.
Flights done early in the program did not include a GPS receiver, so the
only method of altitude determination with the data available was
photogrametric measurements from the film images.
For example, here's an image taken early in the flight of our
third mission:

Given only this picture and some information from the camera manufacturer, how can
we calculate the altitude at which it was taken?
Method
We can use the same method that image interpreters use to find image scale to
determine the altitude. First, we'll calculate the Representitive
Fraction[1]. There are two ways to do this. We can divide the focal
length of the camera lens by the altitude of the camera, or we can divide
the dimensions of a known object on the ground by its dimensions on the
film. Since we don't know the altitude, we'll have to use the second method.
Here's a diagram that may help you understand what I'm talking about:

So, we can do a bit of algebraic manipulation to get:

Back to our example.
Our photo looks a little washed-out. This is due to atmospheric
haze on the day of the flight. I'll process this image a bit using
Paintshop Pro to increase the contrast:

You can see the surface features are much more visible. The image shows clouds, rivers,
roads, and farm fields. To calculate the altitude, we need to find an object in the
image that we can either measure later, or whose dimensions we already know. Luckily,
these North Dakota farm fields are laid out in nice, regular geometric shapes. The
grid of roads on this image intersect with each other at 1 mile intervals, which divides
the fields into 1 mile by 1 mile squares. Each of these squares is actually sub-divided
into smaller sections by the farmers, and not all sub-divisions have the same crops
growing throughout. This can complicate our task, so we'll just go by the roads. I'll
pick a square section and outline it for better visibility:

Ideally you want to choose a feature on the ground that is at or near the nadir (the
point directly below the camera). This section is a little off nadir, but it will
serve for our purposes.
So, now we need to measure the section marked on the image. This can be done a number
of ways: print out the image on a printer (or use the enlargement printed from the
negative), or scan the photo in to a computer and use an image analysis tool or GIS
program.
I've printed the image on a printer, and will use a ruler to measure the length of the
section. I come up with 35mm (we'll stick with millimeters, since that's what our
camera data is listed in, it's a fairly precise unit for the measurements I'm making,
and sticking to one unit makes calculations easier and less error-prone). Now, remember
that's 35mm ON THE PRINTOUT, that isn't the same as 35mm on the negative, and the size
on the negative is what we need for the calculation. To get that, we need some more
information.
From the design specifications of our camera (Pentax
PC-55), we find that the film format the camera uses (35mm), is actually 24mm x 36mm
in size. To get the conversion factor we need, I'll measure the total width of the
PRINTED image I'm using for measurements, and divide 24mm by that number. The width
(shortest measure) of the printed image is 182mm, so our conversion factor is
24mm/182mm or 0.13187. Multiplying our measure of the section by this factor gives
us: 35mm X 0.13187 = 4.6154mm. So our section is 4.6154mm long on the negative.
Now we're ready to compute the Representitive Fraction. One statuate mile is equal to
5280 feet, multiplied by 12 equals 66360 inches, multiplied by 25.4 (mm/inch) equals
1609344mm. The length of a mile-long section on our film is 4.6154mm, divided by
1609344mm equals 2.8679 * 10^-6.
Finally, now that we have our RF, we can use the equation we derived earlier to
compute the altitude. Altitude = Focal Length / RF. From the camera design document,
the focal length of the lens is 28mm, so Altitude = 28mm / 2.8679 * 10^-6.
Thus, our Altitude is 9763353.6mm. This converts to 32032 feet, which we will round
to 32000.
Finally, we need to do a 'reality check'. 30,000 feet is about what a commercial jet
plane flies, so we can ask ourselves, 'Does this look about right?' 'Is this what
we'd expect to see from a plane at 30,000 feet?'
Also, from the
average measured mission profile of our balloons, 30,000 feet is about 1/3 of the
max altitude the balloon reaches. The photo is from a point about 1/3 into the
flight, so that's about right.
These checks may seem trivial, but they can save you a large amount of embarassment
if you make a mistake in your calculations and are off by a factor of 10 or 100.
Conclusion
Altitude of the camera taking a vertical photograph may be easily calculated from
measurements of the image if key elements are known using simple algebra. This
technique is not only useful for aerial photography, but may be used on any image
if the size of objects and/or features in the image are known.
References
[1] Campbell, James B., "Introduction to Remote Sensing", 1987, The Guilford Press,
ISBN 0-89862-776-1
Sabins, Floyd F., "Remote Sensing Principles and Interpretation", 3rd. ed., 1997,
W. H. Freeman and Company, ISBN 0-7167-2442-1