Resumen
Hace coincidir archivos de fotos con filas de tablas o clases de entidad de acuerdo con las marcas de tiempo de la foto y 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 los ObjectID de las filas de entrada y sus rutas de fotos coincidentes. 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: el Id. de objeto de una fila de entrada cuya marca de tiempo coincide con la marca de tiempo de una foto.
- Photo_Path: la ruta completa a un archivo de foto cuya marca de tiempo coincide con la marca de tiempo de la fila de entrada identificada en el campo IN_FID.
- Photo_Name: el nombre abreviado del archivo de foto.
- Match_Diff: la diferencia entre las marcas de tiempo de un archivo de foto y la fila de entrada coincidente. 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 sola fila de entrada puede tener una marca de tiempo que coincida con la marca de tiempo de varias fotografías, la tabla de salida puede tener varias filas con el mismo IN_FID (cada fila de la salida hace referencia 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. En caso de que la tabla de salida tenga varias filas con el mismo IN_FID (una fila de entrada coincide con varias fotos), use una relación o clase de relación para vincular la salida a la entrada.
El campo de tiempo debe ser del tipo Date. Para convertir sus campos de texto o numéricos en un campo de tipo Date, use 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 registrados por 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 los tiempos en una zona horaria local. Para conciliar las diferencias de marca de tiempo que resulten de distintas zonas horarias, utilice la herramienta Convertir zona horaria para cambiar el campo de hora de la tabla de entrada para que coincida con la zona horaria de la marca de tiempo del archivo de foto.
Asimismo, es posible que el reloj del GPS no esté sincronizado con el reloj de la cámara digital. Para crear 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 y, a continuación, utilice este valor con el parámetro Diferencia horaria.
Los parámetros Tolerancia de tiempo y Diferencia horaria se deben especificar en segundos. Existen numerosas utilidades en Internet para calcular a cuántos segundos equivale otra unidad de tiempo. Por ejemplo, 3 minutos y 12 segundos es igual a 192 segundos.
Sintaxis
arcpy.management.MatchPhotosToRowsByTime(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. | Table View |
Time_Field | El campo de fecha/hora de la tabla de entrada que indica cuándo se capturó o creó cada fila. Debe ser un campo de fecha; no puede ser una cadena o campo numérico. | Field |
Output_Table | La tabla de salida que contiene los OBJECTID de la tabla de entrada que coincide con una foto y la ruta de la foto coincidente. 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. Licencia:Agregar adjuntos requiere como mínimo una licencia de ArcGIS Desktop Standard y la clase de entidad de salida debe estar en una geodatabase de la versión 10 o superior.
| 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 se harán coincidir. Si una fila de entrada y un archivo de foto tienen marcas de tiempo que son distintas por más de esta tolerancia, no se efectuará ninguna coincidencia. Para hacer coincidir un archivo de foto con una fila con la marca de tiempo más cercana, independientemente de lo grande que sea la diferencia de fecha/hora, establezca la tolerancia en 0. El signo de este valor (- o +) es irrelevante; se usará el valor absoluto del número especificado. No use este parámetro para hacer ajustes de cambios o desplazamientos sistemáticos 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 |
Muestra de código
El siguiente fragmento de la ventana de Python muestra 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)
El siguiente script 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
# Set environment settings
arcpy.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 de licenciamiento
- Basic: Limitado
- Standard: Sí
- Advanced: Sí