Need to convert points to polygons of a specific size, using the point as the center of the polygon

I have a large collection of aerial photos with no georeferencing other than the Lat/Long location of the camera. Georeferencing them invididually is not an option (too much time, too many photos, some are oblique, some vertical). I need to automatically generate some kind of approximate polygonal footprint of each photo. I was thinking there must be some way to auto-generate a rectangle from a point layer using the point as the center and using numbers in the attribute fields as the dimensions. Or, barring that, just generating a circle at each point using an attribute as the diameter.

I'm using Arcview 9.3.1.

• I can think of some ways to do this in autocad map. – Brad Nesom Jul 21 '11 at 16:32

1. Import your photo points to a shapefile (Make XY Event Layer).
2. Buffer the points to the appropriate size of your photos.
3. Install the bounding containers toolbox and run the extent tool. This will create a north orientated square around the buffer.

Alternatively look at building a raster catalog. This may not be suitable if you have a lot of overlap, but will let you display the images without individual georeferencing.

• Thanks! Step 3 is what I was missing. What we're trying to determine (very roughly) is how much coverage we have with these photos, creating squares around the buffer circles should do the trick. – Dan C Jul 21 '11 at 21:25
• I don't think this tool will work with 10.2.2. Is there an alternative? – MjonesGEO Oct 8 '14 at 16:45

If you just have an approximate point of the center of each photo, just run the XY command with that input that then buffer the features.

Cheers

I think all you have to do is use the Lat/Lon; as you know it is the centroid, simply calculate the min/max x/y for your box, create a points list, and then Create the polygon.

X/Y is 341.5,61.5 So you could create a square of [343,60],[340,60],[340,63],[343,63]

So now you have a point list

point = arcpy.Point()
pointGeometryList = arcpy.Array()

linedata = [[343,60],[340,60],[340,63],[343,63]]

for coords in linedata:
point.X = coords[0]
point.Y = coords[1]

polygon = arcpy.Polygon(pointGeometryList)
outFtrClass = r"C:\Dev\Scratch.gdb\MyPoly"
arcpy.CopyFeatures_management(polygon , outFtrClass)

So all you have to do, is add logic to suck out your point values and create the linedata, and a new fc everytime.

Good luck

I have discovered an awesome way in ArcGIS 10.4 to create rectangular buffer around your points!

Following this picture, the length a of the polygon equals to 2-times the radius (a = 2*r) of the buffer. Therefore, if you need a final rectangle of 1x1 km, the radius of the buffer is 500m.

Steps to follow:

1. create a Buffer (Buffer tool) of your desired size around your points
2. run Minimum bounding geometry Tool using "ENVELOPE" as desired geometry type
3. Voila you are all set!