GeoTagged Photos To Points

Summary

Creates points from the x-, y-, and z-coordinates stored in geotagged photos. Optionally adds photo files to features in the output feature class as geodatabase attachments.

Illustration

Usage

This tool reads the longitude, latitude, and altitude coordinates from JPEG and TIFF photo files and writes these coordinates and associated attributes to an output point feature class.

The output feature class will have these attribute fields:

Path—The full path to the photo file used to generate the point, for example, C:\data\photos\Pic0001.jpg

Name—The short name of the photo file, for example, Pic0001.jpg

DateTime—The original capture date and time of the photo file, for example, 2010:11:21 15:23:34

Direction—The direction the device is pointing when the photo was captured. Values range from 0 to 359.99, where 0 indicates north, 90 east, and so on. If no direction is recorded by the device, this field will have a value of -9999. Depending on the device being used this could refer to degrees from true north or magnetic north. Refer to device documentation for more information.

Note:

Use a geotagged photo's directional information with caution, as the direction recorded by the device may not be accurate. Refer to device documentation for information on directional accuracy.

The output DateTime field is a text field with the timestamp in the format yyyy:MM:dd HH:mm:ss. Use the Convert Time Field tool to convert this text field to a true datetime field that can be used to analyze and map the data with time.

If the output DateTime field has a null or empty value, this may be an indication that your device does not capture a useable timestamp with the geotagged photo. Photo files may have a date taken or date modified property, but these often do not represent the date and time the photo was taken.

If the x,y coordinates of a photo are 0,0, no point will be generated for that photo. These empty coordinates often occur because the camera GPS does not have an adequate signal to capture real coordinates. If the Include Non-GeoTagged Photos parameter is checked (ALL_PHOTOS in Python), the photo will be added as an output record with a null geometry.

The output feature class will have a GCS_WGS_1984 spatial reference, since that is the coordinate system used by GPS receivers.

Syntax

The folder where photo files are located. This folder is scanned recursively for photo files; any photos in the base level of the folder, as well as in any subfolders, will be added to the output.

Folder

Output_Feature_Class

The output point feature class.

Feature Class

Invalid_Photos_Table

(Optional)

The optional output table that will list any photo files in the input folder with invalid Exif metadata or empty GPS coordinates.

If no path is specified, this table will not be created.

Table

Include_Non-GeoTagged_Photos

(Optional)

Specifies if all photo files should be added as records to the output feature class or only those with valid GPS coordinates.

ALL_PHOTOS — All photo files will be added as records to the output feature class. If a photo file does not have GPS coordinate information, it will be added as a record with null geometry. This is the default.

ONLY_GEOTAGGED — Only photo files with valid GPS coordinate information will have records in the output feature class.

Boolean

Add_Photos_As_Attachments

(Optional)

Specifies if photo files will be added to the output feature class as geodatabase attachments.

License:

Adding attachments requires at minimum an ArcGIS Desktop Standard license, and the output feature class must be in a version 10 or higher geodatabase.

ADD_ATTACHMENTS — Photo files will be added to the output feature class records as geodatabase attachments. Geodatabase attachments are copied internally to the geodatabase. This is the default.

NO_ATTACHMENTS — Photo files will not be added to the output feature class records as geodatabase attachments.

Boolean

Code sample

GeoTaggedPhotosToPoints example 1 (Python window)

The following Python window snippet demonstrates how to use the GeoTaggedPhotosToPoints tool.

GeoTaggedPhotosToPoints example 2 (stand-alone script)

The following script demonstrates how to use the GeoTaggedPhotosToPoints tool.

"""Name: GeoTaggedPhotosToPoints exampleDescription: Convert a folder of photos to points, then perform a buffer"""# Import system modulesimportarcpy# Set environment settingsarcpy.env.workspace="C:/data"# Set local variablesinFolder="photos"outFeatures="city.gdb/photos_points"badPhotosList="city.gdb/photos_noGPS"photoOption="ONLY_GEOTAGGED"attachmentsOption="ADD_ATTACHMENTS"buffers="city.gdb/photos_points_buffer"bufferDist="1 Miles"arcpy.GeoTaggedPhotosToPoints_management(inFolder,outFeatures,badPhotosList,photoOption,attachmentsOption)arcpy.Buffer_analaysis(outFeatures,buffers,bufferDist)