Georeferencing Photos – How to Georeference with No Spatial Reference in ArcGIS Desktop

arcgis-desktopcoordinate systemgeoreferencinggpsimage

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.

UPDATED DETAILS:

-photos are ground shots

-North-oriented

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

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?

Best Answer

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.

Update

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.

Related Question