Saturday, 31 August 2019

arcgis desktop - Georeferencing Photos With No Spatial Reference?


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 :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?



Answer



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.



No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...