Apparier des photos à des enregistrements en fonction de la date/heure (Gestion des données)

Synthèse

Apparie les fichiers photo aux lignes de table ou de classe d’entités en fonction des horodatages des photos et des lignes. La ligne ayant l’horodatage le plus proche de la date/heure de capture d’une photo sera appariée à cette photo. Une nouvelle table est créée. Elle contient les valeurs d’ID d’objet des lignes en entrée et les chemins d’accès aux photos appariées. Vous pouvez aussi utiliser cet outil pour ajouter des fichiers photo appariés aux lignes de la table en entrée sous la forme de pièces jointes à la géodatabase.

Illustration

Illustration de l’outil Apparier des photos à des enregistrements en fonction de la date/heure
La ligne 5 en entrée n’est appariée à aucune photo, car d’autres lignes ont des horodatages plus proches de ceux des fichiers photo.

Utilisation

  • Cet outil permet de faire correspondre des entités capturées par GPS avec des photographies numériques prises en même temps.

  • La table en sortie contiendra les champs attributaires suivants :

    • IN_FID–ID d’objet d’une ligne en entrée dont l’horodatage correspond à l’horodatage d’une photo.
    • Photo_Path–Chemin d’accès entier à un fichier photo dont l’horodatage correspond à l’horodatage de la ligne en entrée identifiée dans le champ IN_FID.
    • Photo_Name–Nom court du fichier photo.
    • Match_Diff–Différence entre les horodatages d’un fichier photo et la ligne en entrée appariée. Cette valeur numérique est exprimée dans l’unité spécifiée dans le paramètre Unité de différence de date/heure.

  • Même si les données de shapefile et dBASE sont prises en charge pour la table en entrée, nous vous recommandons d’utiliser des données de géodatabase, parce que le champ de date d’un shapefile ou d’une table dBASE ne peut pas stocker d’informations concernant la date et l’heure.

    En savoir plus sur les limites des shapefile

  • Puisqu’une ligne en entrée unique peut comporter un horodatage qui correspond à celui de plusieurs photos, la table en sortie peut comporter plusieurs lignes ayant la même valeur IN_FID (chaque ligne de la sortie se réfère à un appariement entre une photo et une ligne en entrée).

  • La table en sortie peut être jointe à la table en entrée à l’aide du champ IN_FID en sortie et de la valeur d’ID d’objet de l’entrée. Lorsque la table en sortie comporte plusieurs lignes ayant la même valeur IN_FID (une ligne en entrée appariée à plusieurs photos), utilisez une relation ou une classe de relations pour relier la sortie à l’entrée.

  • Le champ d’heure doit être de type Date. Pour convertir des champs de texte ou numériques en un champ de type Date, utilisez l’outil Convertir le champ heure.

  • Même si un point GPS et une photographie numérique sont capturés à exactement la même heure, les heures enregistrées par les appareils peuvent être dans des fuseaux horaires différents. Par exemple, les appareils GPS enregistrent souvent les heures dans le temps universel coordonné (UTC) ou le temps moyen de Greenwich (GMT), tandis que les caméras numériques les enregistrent souvent dans un fuseau horaire local. Pour réconcilier les différences d’horodatage résultant de fuseaux horaires différents, utilisez l’outil Convertir le fuseau horaire pour modifier le champ d’heure de la table en entrée afin qu’il corresponde au fuseau horaire de l’horodatage du fichier photo.

    De même, l’horloge du GPS peut ne pas être synchronisée avec l’horloge de la caméra numérique. Pour bien apparier la photo et le point GPS lorsque ces horloges ne sont pas synchronisées, déterminez la différence entre les deux horloges, puis utilisez cette valeur avec le paramètre Décalage de l’horloge.

  • Les paramètres Time Tolerance (Tolérance temporelle) et Clock Offset (Décalage de l’horloge) doivent être spécifiés en secondes. Plusieurs utilitaires sur Internet permettent de calculer à combien de secondes est égale une unité de temps différente. Par exemple, 3 minutes et 12 secondes équivalent à 192 secondes.

Paramètres

ÉtiquetteExplicationType de données
Dossier en entrée

Dossier contenant les fichiers photo (.jpg ou .tif). Ce dossier est analysé itérativement à la recherche de fichiers photo. Toutes les photos présentes dans le niveau de base du dossier, ainsi que dans tous les sous-dossiers, seront ajoutées à la sortie.

Folder
Table en entrée

La table ou la classe d’entités dont les lignes seront appariées avec les fichiers photo. La table en entrée est habituellement une classe d'entités ponctuelles représentant les enregistrements du GPS.

Table View
Champ temporel

Champ de date de la table en entrée qui indique à quel moment chaque ligne a été capturée ou créée. Il doit être de type Date et ne peut pas être une chaîne ou un nombre.

Field
Table en sortie

Table en sortie contenant les valeurs d’ID d’objet de la table en entrée appariées à une photo et chemin d’accès à la photo appariée. Seules les valeurs d’ID d’objet de la table en entrée appariées à une photo sont incluses dans la table en sortie.

Table
Table des photos non appariées
(Facultatif)

Table en sortie facultative qui répertorie tous les fichiers photo du dossier en entrée dont l'horodatage est incorrect ou toutes les photos sans correspondance, car il n'existe aucune ligne en entrée dans la tolérance temporelle.

Si aucun chemin d’accès n’est spécifié, cette table ne sera pas créée.

Table
Ajouter des photos en tant que pièces jointes
(Facultatif)
  • Activé : les fichiers photo seront ajoutés aux lignes de la table en entrée en tant que pièces jointes de géodatabase. Les pièces jointes de géodatabase sont copiées en interne vers la géodatabase. Il s’agit de l’option par défaut.
  • Désactivé - Aucun fichier photo n'est ajouté aux lignes de la table en entrée sous la forme de pièces jointes à la géodatabase.
Boolean
Tolérance temporelle
(Facultatif)

La différence maximale (en secondes) entre la date/l’heure d’une ligne en entrée et d’un fichier photo allant être apparié. Si une ligne en entrée et un fichier photo ont des horodatages dont la différence est supérieure à cette tolérance, aucun appariement n’a lieu. Pour apparier un fichier photo à une ligne avec l’horodatage le plus proche, quelle que soit la différence de date/heure, définissez la tolérance sur 0. Le signe de cette valeur (- ou +) n’est pas pertinent ; la valeur absolue du chiffre spécifié sera utilisée.

N’utilisez pas ce paramètre pour ajuster en vue de décalages cohérents entre les heures enregistrées par le GPS et la caméra numérique. Utilisez le paramètre Décalage de l’horloge ou l’outil Convertir le fuseau horaire pour décaler les horodatages des lignes en entrée afin qu’ils correspondent à ceux des photos.

Double
Décalage de l’horloge
(Facultatif)

La différence (en secondes) entre l’horloge interne de la caméra numérique utilisée pour capturer les photos et l’unité GPS. Si l'horloge de l'appareil photo numérique est en retard par rapport à l'horloge de l'unité GPS, utilisez une valeur positive. Si elle est en avance, utilisez une valeur négative.

Par exemple, si une photo ayant l’horodatage 11:35:17 doit être appariée à une ligne dont l’horodatage est 11:35:32, utilisez un Décalage d’horloge 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})
NomExplicationType de données
Input_Folder

Dossier contenant les fichiers photo (.jpg ou .tif). Ce dossier est analysé itérativement à la recherche de fichiers photo. Toutes les photos présentes dans le niveau de base du dossier, ainsi que dans tous les sous-dossiers, seront ajoutées à la sortie.

Folder
Input_Table

La table ou la classe d’entités dont les lignes seront appariées avec les fichiers photo. La table en entrée est habituellement une classe d'entités ponctuelles représentant les enregistrements du GPS.

Table View
Time_Field

Champ de date de la table en entrée qui indique à quel moment chaque ligne a été capturée ou créée. Il doit être de type Date et ne peut pas être une chaîne ou un nombre.

Field
Output_Table

Table en sortie contenant les valeurs d’ID d’objet de la table en entrée appariées à une photo et chemin d’accès à la photo appariée. Seules les valeurs d’ID d’objet de la table en entrée appariées à une photo sont incluses dans la table en sortie.

Table
Unmatched_Photos_Table
(Facultatif)

Table en sortie facultative qui répertorie tous les fichiers photo du dossier en entrée dont l'horodatage est incorrect ou toutes les photos sans correspondance, car il n'existe aucune ligne en entrée dans la tolérance temporelle.

Si aucun chemin d’accès n’est spécifié, cette table ne sera pas créée.

Table
Add_Photos_As_Attachments
(Facultatif)

Spécifie si les fichiers photo seront ajoutés aux lignes de la table en entrée en tant que pièces jointes de géodatabase.

Remarque :

Pour ajouter des pièces jointes, la classe d’entités en sortie doit figurer dans une géodatabase version 10 ou ultérieure.

  • ADD_ATTACHMENTSLes fichiers photo seront ajoutés aux lignes de la table en entrée en tant que pièces jointes de géodatabase. Les pièces jointes de géodatabase sont copiées en interne vers la géodatabase. Il s’agit de l’option par défaut.
  • NO_ATTACHMENTSAucun fichier photo n'est ajouté aux lignes de la table en entrée sous la forme de pièces jointes à la géodatabase.
Boolean
Time_Tolerance
(Facultatif)

La différence maximale (en secondes) entre la date/l’heure d’une ligne en entrée et d’un fichier photo allant être apparié. Si une ligne en entrée et un fichier photo ont des horodatages dont la différence est supérieure à cette tolérance, aucun appariement n’a lieu. Pour apparier un fichier photo à une ligne avec l’horodatage le plus proche, quelle que soit la différence de date/heure, définissez la tolérance sur 0. Le signe de cette valeur (- ou +) n’est pas pertinent ; la valeur absolue du chiffre spécifié sera utilisée.

N’utilisez pas ce paramètre pour ajuster en vue de décalages cohérents entre les heures enregistrées par le GPS et la caméra numérique. Utilisez le paramètre Décalage de l’horloge ou l’outil Convertir le fuseau horaire pour décaler les horodatages des lignes en entrée afin qu’ils correspondent à ceux des photos.

Double
Clock_Offset
(Facultatif)

La différence (en secondes) entre l’horloge interne de la caméra numérique utilisée pour capturer les photos et l’unité GPS. Si l'horloge de l'appareil photo numérique est en retard par rapport à l'horloge de l'unité GPS, utilisez une valeur positive. Si elle est en avance, utilisez une valeur négative.

Par exemple, si une photo ayant l’horodatage 11:35:17 doit être appariée à une ligne dont l’horodatage est 11:35:32, utilisez un Décalage d’horloge de 15.

Double

Exemple de code

Exemple d’utilisation de l’outil MatchPhotosToRowsByTime (fenêtre PythonPython)

L’extrait de la fenêtre Python ci-dessous illustre l’utilisation de la fonction MatchPhotosToRowsByTime.

import arcpy
arcpy.management.MatchPhotosToRowsByTime(
    "c:/data/photos", "c:/data/city.gdb/gps_points", "DateTime", 
    "c:/data/city.gdb/output_table", "", "ADD_ATTACHMENTS", "", 20)
Exemple d'utilisation de l'outil MatchPhotosToRowsByTime (script autonome)

Le script suivant montre comment utiliser la fonction 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

# Run MatchPhotosToRowsByTime and JoinField
arcpy.management.MatchPhotosToRowsByTime(inFolder, inFC, timeField, outTable, 
                                         outUnmatched, attachmentsOption, 
                                         timeDiff, timeOffset)
arcpy.management.JoinField(inFC, "OBJECTID", outTable, "IN_FID", 
                           ["Photo_Path", "Photo_Name", "Match_Diff"])

Rubriques connexes