Hacer coincidir fotos con filas según el tiempo (Administración de datos)

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

Ilustración de Hacer coincidir fotos con filas según el tiempo
La fila de entrada 5 no se ha hecho coincidir con ninguna foto porque otras filas tienen marcas de tiempo más cercanas a las marcas de tiempo de los archivos de foto.

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.

    Más información sobre las limitaciones del shapefile

  • 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.

Parámetros

EtiquetaExplicaciónTipo de datos
Carpeta de entrada

La carpeta donde están ubicados los archivos de fotos (.jpg o .tif). 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
Tabla de entrada

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
Campo de tiempo

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
Tabla de salida

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
Tabla de fotos no concordadas
(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
Agregar fotos como adjuntos
(Opcional)

Especifica si los archivos de fotos se agregarán a las filas de la tabla de entrada como adjuntos de geodatabase. La tabla de entrada se debe almacenar en una geodatabase versión 10 o superior para que los archivos de fotos se agreguen como adjuntos.

  • Activada: se agregan archivos de foto a las filas de la tabla de entrada como adjuntos de geodatabase. Los adjuntos de geodatabase se copian internamente a la geodatabase. Esta es la opción predeterminada.
  • Desactivada: no se agregan archivos de foto a las filas de la tabla de entrada como adjuntos de geodatabase.
Boolean
Tolerancia de tiempo
(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
Diferencia horaria
(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

arcpy.management.MatchPhotosToRowsByTime(Input_Folder, Input_Table, Time_Field, Output_Table, {Unmatched_Photos_Table}, {Add_Photos_As_Attachments}, {Time_Tolerance}, {Clock_Offset})
NombreExplicaciónTipo de datos
Input_Folder

La carpeta donde están ubicados los archivos de fotos (.jpg o .tif). 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.

  • ADD_ATTACHMENTS Se agregarán archivos de foto a las filas de la tabla de entrada como adjuntos de geodatabase. Los adjuntos de geodatabase se copian internamente a la geodatabase. Esta es la opción predeterminada.
  • NO_ATTACHMENTS No se agregarán archivos de foto 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 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

Ejemplo de MatchPhotosToRowsByTime (ventana Python)

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)
Ejemplo de MatchPhotosToRowsByTime (secuencia de comandos independiente)

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")

Información de licenciamiento

  • Basic: Limitado
  • Standard: Sí
  • Advanced: Sí

Temas relacionados