Creating shapefile showing footprints of Rasters?
There is a plugin in QGIS called Image Boundary. It is a great tool. Within this tool there is an option for "Valid Pixels" which will omit the black edges of a satellite image, for example.
[Update: This plugin does not exist any more as in QGIS 3.12.3. The plugin "Image footprint" exists but it is deprecated and does not seem to work.]
The following code will take an input raster, get it's extent, and insert that extent into a polygon featureclass:
import arcpy
r = arcpy.Raster(in_raster)
point = arcpy.Point()
array = arcpy.Array()
corners = ["lowerLeft", "lowerRight", "upperRight", "upperLeft"]
cursor = arcpy.InsertCursor(fc)
feat = cursor.newRow()
for corner in corners:
point.X = getattr(r.extent, "%s" % corner).X
point.Y = getattr(r.extent, "%s" % corner).Y
array.add(point)
array.add(array.getObject(0))
print len(array)
polygon = arcpy.Polygon(array)
feat.shape = polygon
cursor.insertRow(feat)
array.removeAll()
del feat
del cursor
You can run it in the ArcMap Python window by setting up in_raster
and fc
like so:
>>> fc = 'r_extent'
>>> in_raster = 'CaliCoast10mNED_HavCurvedPCS'
where r_extent
is a existing polygon featureclass. Then just copy the code and run it. I get this:
You can use gdaltindex for this: http://www.gdal.org/gdaltindex.html
It will however still create rectangles (eg 4+1 points) in the same reference system as the images. But I wonder whether that really is a problem: how large are your images?