按时间将照片与行匹配 (数据管理)

许可等级:BasicStandardAdvanced

摘要

根据照片与行时间戳将照片文件匹配至表或要素类的行。具有时间戳最接近于照片捕捉时间的行将与此照片相匹配。接下来将根据输入的行以及所匹配的照片的路径创建一个包含 ObjectIDs 的新表。也可以将匹配的照片文件作为地理数据库附件添加到输入表的行记录中。

插图

Match Photos To Rows By Time illustration

用法

语法

MatchPhotosToRowsByTime_management (Input_Folder, Input_Table, Time_Field, Output_Table, {Unmatched_Photos_Table}, {Add_Photos_As_Attachments}, {Time_Tolerance}, {Clock_Offset})
参数说明数据类型
Input_Folder

照片文件所在的文件夹。此文件夹是递归扫描照片文件得到的;基础等级文件夹以及任何子文件夹中的所有照片都将被添加到输出中。

Folder
Input_Table

表或要素类,其行将与照片文件相匹配。输入表通常是一个表示 GPS 记录的点要素类。

TableView
Time_Field

输入表中的日期/时间字段,用于指示各行的捕获或创建时间。必须是日期字段;不能是字符串或数值型字段。

Field
Output_Table

输出表,其中包含与照片相匹配的输入表的 OBJECTID 以及相匹配的照片路径。输出表中仅包含与照片匹配的输入表的 OBJECTID。

Table
Unmatched_Photos_Table
(可选)

可选输出表,其中将列出具有无效时间戳的输入文件夹中的任何照片文件,或因没有在时间容差范围内的输入行而无法匹配的任何照片。

如果未指定路径,则不会创建此表。

Table
Add_Photos_As_Attachments
(可选)

指定是否将照片文件作为地理数据库附件添加到输入表的行中。

许可许可:

添加附件时,至少需要一个 ArcGIS for Desktop Standard 许可,并且输出要素类必须处于 10 或更高版本的地理数据库中。

  • ADD_ATTACHMENTS 照片文件将作为地理数据库附件添加到输入表的行中。地理数据库附件被内部复制到地理数据库中。这是默认设置。
  • NO_ATTACHMENTS 照片文件将不作为地理数据库附件添加到输入表的行中。
Boolean
Time_Tolerance
(可选)

匹配的输入行和照片文件的日期/时间之间的最大差异(以秒为单位)。如果输入行和照片文件的时间戳差异超出该容差值,则不会发生匹配。要将照片文件与具有最接近时间戳的行进行匹配,而不考虑日期/时间的差异可能多大,请将容差设置为 0。该值的符号(- 或 +)并不相干;将使用指定数值的绝对值。

不要使用此参数进行调整以实现 GPS 和数码相机记录的时间之间一致的转换或偏移。请使用时钟偏移参数或转换时区工具转换输入行的时间戳,来匹配照片的时间戳。

Double
Clock_Offset
(可选)

用来捕获照片的数码相机和 GPS 装置的内部时钟之间的差异(以秒为单位)。如果数码相机的时钟在 GPS 装置的时钟之后,请使用正值;如果数码相机的时钟在 GPS 装置的时钟之前,请使用负值。

例如,如果具有时间戳 11:35:17 的照片应匹配至具有时间戳 11:35:32 的行,请使用时钟偏移 15

Double

代码实例

MatchPhotosToRowsByTime(按时间将照片与行匹配)示例(Python 窗口)

下面的 Python 窗口脚本演示了如何使用 MatchPhotosToRowsByTime(按时间将照片与行匹配)工具。

import arcpy
arcpy.MatchPhotosToRowsByTime_management("c:/data/photos", "c:/data/city.gdb/gps_points", "DateTime", "c:/data/city.gdb/output_table", "", "ADD_ATTACHMENTS", "", 20)
MatchPhotosToRowsByTime(按时间将照片与行匹配)示例(独立脚本)

以下脚本演示了如何使用 MatchPhotosToRowsByTime(按时间将照片与行匹配)工具。

"""Name: GeoTaggedPhotosToPoints example
Description: Find the points that match photo time stamps, then join the output table 
             to the input to see which photos match which points
""" 

# Import system modules
import arcpy
from arcpy import env
 
# Set environment settings
env.workspace = "C:/data"
 
# Set local variables
inFolder = "photos"
inFC = "city.gdb/gps_points"
timeField = "DateTime"
outTable = "city.gdb/output_table"
outUnmatched = "city.gdb/unmatched_photos"
attachmentsOption = "ADD_ATTACHMENTS"
timeDiff = 0
timeOffset = 20

# Execute MatchPhotosToRowsByTime and JoinField
arcpy.MatchPhotosToRowsByTime_management(inFolder, inFC, timeField, outTable, outUnmatched, attachmentsOption, timeDiff, timeOffset)
arcpy.JoinField_management(inFC, "OBJECTID", outTable, "IN_FID", "Photo_Path;Photo_Name;Match_Diff")

环境

相关主题

许可信息

ArcGIS for Desktop Basic:受限制
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013