I have about 100-200 field ground shot photos I would like to overlay in ArcGIS 10 that have no spatial information which I need to somehow develop using a photogrammetric formula. The camera was attached 2 meters above ground on a RTK GPS pole. One-to-One relationship between GPS points and photos. Accuracy is not a huge concern, but should at least be within 1 meter (which is approx. the field of view of each photo). The goal is to develop a way to auto-georeference each image using a script or model since it is possible to know the footprint size of each image in the coordinate system I'm using.

What I have to work with:

100-200+ Ground-Shot Field Photos:

-camera height 1.228 meters (from tip of gps)

-camera angle ~90 degrees

-camera focal length 0.006 meters

-North orientation

GPS points shapefile (100-200+ records; 1 record=1 point=1 photo):

-XY location for each photo(approximately the centroid of photo)
-NAD83 UTM Zone 14N (meters)

Basic procedures off the top of my head to accomplish without spending a ton of time georeferencing each individual photo:

*1) Determine the dimension (in meters) of one of the photos. I can calculate Photo Scale (PS = f/H) and Representative Fraction (RF = 1/(H/f)), but I'm needing to calculate length DE in order to find the equivalent corresponding length on ground AB (aka. the width (in meters) I will make for rectangular buffers in the next step).

photo scale
(source: ucsb.edu)

2) Use those dimensions to create rectangular buffers around the GPS points

3) Spatial Join GPS points to the rectangular buffers (to get the picture name corresponding to each point)

4) Split rectangle buffer layer by attribute (using picture directory/name field)

*5) Replace color fill of each rectangle buffer with the corresponding picture

I'm having trouble with the photogrammetry formulas to use in #1. #5 is more of a hack to visualize the pictures to avoid the georeferencing situation. I don't expect anyone to 'solve my problem'. I like to post problems like these to a) collect my thoughts b) to possibly edify others.

Your thoughts are appreciated.


-photos are ground shots


-while this problem may seem impractical due to image size vs. scale, I have my reasons :D

Update: 6/20/2013 I calculated the geometric dimensions of each photo (1.52m x 1.14m). I then created rectangular buffers with those dimensions at each gps point centroid. I georeferenced one image by hand and it fits perfectly.

Current problem: Using python, I want to scale down each photo to fit the same dimensions of its correpsonding polygon footprint.I looked at using warpfromfile tool in arcgis 10.1, but need to specify to and from ground control points for both the photo and the footprint which seems a bit tedious. Is there a tool that will auto-scale/fit a raster to the dimensions of a polygon?

  • 1
    Are these pictures of the ground, i.e. the camera is pointed straight down? If not I don't see how it could be meaningfully georeferenced, and even if so it seems they would be very small pictures that you'd have to zoom in to very large scales to even see.
    – blah238
    Commented Jun 19, 2013 at 22:05
  • Do you know the orientation of the camera (i.e. in the photo, which way is North?). Commented Jun 19, 2013 at 22:06
  • I skimmed the question, but isn't it simple enough to match the time stamp on the photos to the time stamp of the GPS points? There is a tool in ArcGIS 10.1 that will reference your photos to GPS using time. From there you can generate polygon footprints from your gps points and use them for your photos. Look for the Photos Toolset in ArcToolbox. I think the Match photos to rows by time tool is what will get you started. resources.arcgis.com/en/help/main/10.1/index.html#/…
    – user19283
    Commented Jun 20, 2013 at 0:09
  • @ blah238 - pictures are ground shots Commented Jun 20, 2013 at 2:21
  • @ Kirk Kuykendall - North Commented Jun 20, 2013 at 2:21

2 Answers 2


Knowing the position of the camera, relative to the ground, and assuming the ground to be flat, it should be possible to create target control points at each of the four corners of the image. Then pass those control points to the Warp tool. The source control points would be found by examining the unprojected extent of the image.

To use a higher order transformation, I think you'll need additional control points at interior points, thereby adjusting the scale of the image in the middle more than near the edges.

Warp is useful when the raster requires a systematic geometric correction that can be modeled with a polynomial.


If you just want a quick and dirty approach, then you might be better off building a world file for each photo, by adding an offset to the mid point (assuming that's where your GPS point falls) to describe the corner of the photo, and a pixel size in the linear units of whatever projection you're using.

  • I will need to try this. Creating control for the images is the first thing that's needed. Another thought was to possibly re-create control by plotting out a grid and taking a photo using the same setup as the original photos. Commented Jun 20, 2013 at 2:36

While this problem was approached initially from a software solution standpoint, the ability to have access to the same hardware setup used to acquire the images was definitely a more preferred solution. I appreciate the software-based solutions you all mentioned as that is my forte whenever it is required/optimal. In the end, here's the solution I chose:

First: I computed approximate dimensions of the images using relative scale of a particular object in the picture of known length (ignoring perspective).

Second: Performed a re-setup of the camera/RTK and took a picture with two crossed tape measures (in meters) and calculated the true dimensions of the footprint.

Verdict: My original approximations for image size ended up being accurate by < 0.05 meters for length and width after comparison. Perfectly suitable tolerance for my needs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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