What information (either provided by a user or taken from sensor readings) would be required to determine the geographic area encompassed by a photograph? It seems like the area visible from a photograph would be a rectangle projected onto the surface of the Earth, but I'm unsure what information you'd need to figure out exactly what area a picture encompasses.

It seems clear that you would at least need the location, height, and orientation of the camera (but maybe I'm wrong about that?). There's probably also some information needed about the focal length, but I'm rapidly getting out of my depth here (pun regretfully intended).

As an alternative, suppose that you could get the user to geotag n points in the picture -- how many points would need to be tagged to compute the geographic bounds of the image?

The use case is that I would like to be able to present various statistics to a user about the area depicted in a photograph; ideally the user wouldn't have to do too much (e.g., if this were done from within a smartphone maybe all necessary information would be available from the phone's sensors), but if that's not possible it's okay to ask the user for necessary information.

Apologies in advance if this is too vague or posted in the wrong area; I'm happy to move it or add clarifying details as necessary.


This sort of calculation is common in landscape visibility analysis and especially for the visual impact of wind farm developments - so I don't think your question is entirely out of place here.

To calculate the field of view (FoV) you need:

  • Focal length
  • Film size (e.g. 35mm) or digital receiver contact area

FoV = 2 * atan(size / 2 * focal length)

FoV is usually calculated for the horizontal FoV (hFoV) in which case you use the film width but you can also work out the vertical FoV if that is important to you in a similar way.

Note that a digital camera usually has a smaller sensor contact area than a 'standard' 35mm camera so you get a 'crop factor' which effectively equates to an identical image taken with a digital camera as a conventional camera effectively having a narrower FoV for the same focal length (or to put it another way - the apparent focal length is greater for the same physical lens). Also even so called 35mm conventional film is often something other than 35mm - commonly 36mm, so check! Don't worry about these points because the formula takes care of it so long as you plug in the right values.

To calculate a 'patch' on the Earth you are correct that you also need:

  • location
  • camera height
  • bearing

Most of this information is available in the EXIF info, though you can't guarantee it (much will depend whether the user has GPS in their camera). You should be able to pick up the lens and camera in the EXIF data and will then need to look up in a database to determine the standard lens and contact area... but you won't know whether the user changed the lens, so it can rapidly degenerate into guess-work unless you have them supply the information.

These details together with the FoV will tell you the space you are looking at, but to determine what you can theoretically see, you will then need to use this information in a Zones of Theoretical Visibility (ZTV) calculation (aka viewshed analysis). It is called 'theoretical visibility' because the calculation usually uses a 'bald earth' DTM (i.e. no account is taken of trees and buildings obscuring the view). The viewing distance you want to use is important too as it impacts on the size of DTM you will need and therefore also processing times. Distances of between 10km to 35km are common depending on the nature of the analysis, the size of objects (if any in particular e.e. wind turbines) in question and the limits of atmospheric haze. However, unless you intend to do a load of ZTV calculations on the fly, I suspect that this is going too far for your use-case, so I'll not go into any more detail.

|improve this answer|||||
  • Wouldn't the picth, & roll angle be required as well? – Devdatta Tengshe Apr 30 '13 at 10:12
  • Technically, yes, but for landscape work, it is presumed that a leveled tripod is used. In the OP's scenario, he's taking images from a user's mobile phone. A few of those might be able to give you pitch and roll but not many I suspect. – MappaGnosis Apr 30 '13 at 11:51
  • This is a great answer, thank you for your help! Many mobile phones actually will give you azimuth, pitch and roll (e.g. getOrientation in the Android SDK). – Brendan Dolan-Gavitt Apr 30 '13 at 16:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.