Resumen
Hace coincidir archivos de fotos con la tabla o filas de clase de entidad de acuerdo con la foto y las marcas de tiempo de la fila. La fila con la marca de tiempo más cercana a la hora de captura de una foto se hará coincidir con esa foto. Crea una nueva tabla que contiene las ObjectID de filas de entrada y sus rutas de fotos que coinciden. De forma opcional agrega archivos de foto que coinciden con las filas de la tabla de entrada como adjuntos de geodatabase.
Ilustración
Uso
Esta herramienta se puede usar para hacer coincidir entidades capturadas por medio de GPS a fotografías digitales tomadas al mismo tiempo que se capturó la entidad GPS.
La tabla de salida incluirá cuatro campos de atributos:
- IN_FID: Id. de objeto de una fila de entrada cuya marca de tiempo coincide con la marca de tiempo de una foto.
- Photo_Path: ruta completa a un archivo de fotos cuya marca de tiempo coincide con la marca de tiempo de la fila de entrada identificada en el campo IN_FID.
- Photo_Name: nombre corto de un archivo de foto.
- Match_Diff: diferencia entre las marcas de tiempo de un archivo de foto y la fila de entrada que coincide. Este valor numérico está en la unidad especificada en el parámetro Unidad de diferencia de tiempo.
A pesar de que los datos de shapefile y dBASE se admite en la tabla de entrada, se recomienda utilizar los datos de la geodatabase, debido a que un campo de Fecha en una tabla de shapefile o dBASE no puede almacenar la información de fecha y hora.
Dado que una fila de entrada única puede tener una marca de tiempo que coincide con la marca de tiempo de varias fotografías, la tabla de salida puede tener varias filas que tienen el mismo IN_FID (cada fila de la salida se refiere a una coincidencia entre una foto y una fila de entrada).
La tabla de salida se puede unir a la tabla de entrada utilizando el campo de salida IN_FID y el OBJECTID de la entrada. Cuando la tabla de salida tenga varias filas con el mismo IN_FID (una fila de entrada coincide con varias fotos), utilice una relación o clase de relación para vincular la salida a la entrada.
Obtenga más información acerca de cómo unir y relacionar tablas
El campo de tiempo debe ser de tipo Date. Para convertir sus campos de texto o numéricos en un campo de Date utilice la herramienta Convertir campo de tiempo.
Incluso si un punto de GPS y una fotografía digital se capturan exactamente al mismo tiempo, los tiempos que graban los dispositivos pueden estar en diferentes zonas horarias. Por ejemplo, los dispositivos GPS a menudo registran los tiempos en Hora universal coordinada (UTC), o formato de hora de Greenwich (GMT), mientras que las cámaras digitales a menudo registran las horas en una zona horaria local. Para conciliar las diferencias de la marca de tiempo que resulten de distintas zonas horarias, utilice la herramienta Convertir zona horaria para cambiar el campo de hora de la tablas de entrada para que coincidan con la zona horaria de la marca de tiempo del archivo de foto.
Del mismo modo, es posible que el reloj del GPS no esté sincronizado con el reloj de la cámara digital. Para hacer una buena coincidencia entre la foto y el punto de GPS cuando estos relojes no estén sincronizados, determine la diferencia entre los dos relojes, después utilice este valor con el parámetro Diferencia horaria.
Los parámetros Tolerancia de tiempo y Diferencia horaria se deben especificar en segundos. Hay una serie de utilidades en el Internet para calcular a cuántos segundos es equivalente una unidad de tiempo. Por ejemplo, 3 minutos y 12 segundos es igual a 192 segundos.
Sintaxis
MatchPhotosToRowsByTime_management (Input_Folder, Input_Table, Time_Field, Output_Table, {Unmatched_Photos_Table}, {Add_Photos_As_Attachments}, {Time_Tolerance}, {Clock_Offset})
Parámetro | Explicación | Tipo de datos |
Input_Folder | La carpeta donde están ubicados los archivos de fotos. Esta carpeta se escanea recursivamente para encontrar archivos de fotos; cualquier foto al nivel de la base de la carpeta, así como en cualquier subcarpeta, se agregará a la salida. | Folder |
Input_Table | La tabla o clase de entidad cuyas filas se hará coincidir con archivos de fotos. La tabla de entrada típicamente será una clase de entidad de puntos que representa los registros del GPS. | TableView |
Time_Field | El campo de fecha/hora de la tabla de entrada que indica cuando se capturó o creó la fila. Debe ser un campo de fecha; no puede ser una cadena o campo numérico. | Field |
Output_Table | Tabla de salida que contiene los OBJECTID de la tabla de entrada que coinciden con una foto y la ruta de la foto que coincide. En la tabla de salida solo se incluirán los OBJECTID de la tabla de entrada que coinciden con una foto. | Table |
Unmatched_Photos_Table (Opcional) | La tabla de salida opcional enumerará cualquier archivo de foto en la carpeta de entrada con una marca de tiempo no válida o cualquier foto que no coincida debido a que no hay una fila de entrada en la tolerancia de tiempo. Si no se especifica una ruta, no se creará esta tabla. | Table |
Add_Photos_As_Attachments (Opcional) | Especifica si los archivos de fotos se agregarán a las filas de la tabla de entrada como adjuntos de geodatabase.
| Boolean |
Time_Tolerance (Opcional) | La diferencia máxima (en segundos) entre la fecha/hora de una fila de entrada y un archivo de foto que coincidan. Si una fila de entrada y un archivo de foto tienen marcas de tiempo que son distintas por más de esta tolerancia, no ocurrirá ninguna coincidencia. Para hacer coincidir un archivo de foto a una fila con la marca de tiempo más cercana, sin importar qué tan grande pueda ser la diferencia de fecha/hora, establezca la tolerancia en 0. El signo de este valor (- o +) es irrelevante; el valor absoluto del número que se especifica será el que se usa. No use este parámetro para hacer ajustes por cambios o desplazamientos consistentes entre los tiempos registrados por el GPS y la cámara digital. Use el parámetro Diferencia horaria o la herramienta Convertir zona horaria para cambiar las marcas de tiempo de las filas de entrada para que coincidan con las de las fotos. | Double |
Clock_Offset (Opcional) | La diferencia (en segundos) entre el reloj interno de la cámara digital que se utiliza para capturar las fotos y la unidad GPS. Si el reloj de la cámara digital está detrás del reloj de la unidad GPS, use un valor positivo; si el reloj en la cámara digital está adelante del reloj de la unidad GPS, use un valor negativo. Por ejemplo, si una foto con una marca de tiempo de 11:35:17 debe coincidir con una fila con una marca de tiempo de 11:35:32, utilice una Diferencia horaria de 15. | Double |
Ejemplo de código
Ejemplo de MatchPhotosToRowsByTime (ventana Python)
El siguiente fragmento de código de la ventana de Python demuestra cómo utilizar la herramienta 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)
Ejemplo de MatchPhotosToRowsByTime (secuencia de comandos independiente)
La siguiente secuencia de comandos muestra cómo utilizar la herramienta 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")
Entornos
Información sobre licencias
- ArcGIS for Desktop Basic: Limitada
- ArcGIS for Desktop Standard: Sí
- ArcGIS for Desktop Advanced: Sí