Récapitulatif
Fait correspondre des fichiers photo à des enregistrements de tables ou de classes d'entités d'après les horodatages des enregistrements et des photos. L'enregistrement dont l'horodatage se rapproche le plus de l'heure de saisie d'une photo est apparié à cette photo. Crée une nouvelle table qui contient les champ ObjectID des enregistrements en entrée et les chemins d'accès aux photos correspondants. Permet, en option, d'ajouter des fichiers photo correspondants aux lignes de la table en entrée sous la forme de pièces jointes à la géodatabase.
Illustration
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 contient quatre champs attributaires :
- IN_FID : identifiant d'objet d'un enregistrement en entrée dont l'horodatage correspond à l'horodatage d'une photo.
- Photo_Path : chemin d'accès complet à un fichier photo dont l'horodatage correspond à l'horodatage de l'enregistrement en entrée identifié dans le champ IN_FID.
- Photo_Name : nom court du fichier photo.
- Match_Diff : différence entre les horodatages d'un fichier photo et l'enregistrement en entrée correspondant. Cette valeur numérique est exprimée en unité spécifiée dans le paramètre Time Difference Unit.
Même si les données de fichier de formes et dBASE sont prises en charge pour la table en entrée, il est recommandé d'utiliser des données de géodatabase, parce que le champ Date d'un fichier de formes ou d'une table dBASE ne peut pas stocker d'informations concernant la date et l'heure.
Puisqu'une ligne en entrée seule peut présenter un horodatage qui correspond à l'horodatage de plusieurs photographies, la table en sortie peut comporter plusieurs lignes possédant le même champ IN_FID (chaque ligne de la sortie fait référence à une correspondance 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 du champ OBJECTID de l'entrée. Si la table en sortie présente plusieurs lignes avec le même IN_FID (une ligne en entrée correspond à plusieurs photos), utilisez une mise en relation ou une classe de relations pour relier la sortie à l'entrée.
En savoir plus sur la jointure et la mise en relation des tables
Le champ temporel doit être de type Date. Pour convertir vos champs de texte ou numériques en champ Date, utilisez l'outil Convertir un champ temporel.
Même si un point GPS et une photographie numérique sont capturées exactement en même temps, les heures enregistrées par les périphériques peuvent être dans des fuseaux horaires différents. Par exemple, les périphériques GPS enregistrent souvent des heures en temps universel coordonné (UTC), ou temps moyen de Greenwich (GMT), alors que les appareils photo numériques enregistrent souvent les heures en heure locale. Pour rapprocher les écarts d'horodatage qui résultent de fuseaux horaires différents, utilisez l'outil Changer de fuseau horaire pour modifier le champ temporel de la table en entrée afin qu'il corresponde au fuseau horaire d'horodatage du fichier photo.
De la même façon, l'horloge du GPS risque de ne pas être synchronisée avec celle de la caméra numérique. Pour établir une bonne correspondance entre la photo et le point GPS lorsque ces horloges sont dé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 Tolérance temporelle et Décalage de l'horloge doivent être spécifiés en secondes. Il existe sur Internet des utilitaires qui permettent de calculer le nombre de secondes équivalent à une unité temporelle différente. Par exemple, 3 minutes et 12 secondes équivalent à 192 secondes.
Syntaxe
MatchPhotosToRowsByTime_management (Input_Folder, Input_Table, Time_Field, Output_Table, {Unmatched_Photos_Table}, {Add_Photos_As_Attachments}, {Time_Tolerance}, {Clock_Offset})
Paramètre | Explication | Type de données |
Input_Folder | Le dossier contenant les fichiers photo. 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 | Table ou classe d'entités dont les enregistrements seront mis en correspondance avec les fichiers photo. La table en entrée est habituellement une classe d'entités ponctuelles représentant les enregistrements du GPS. | TableView |
Time_Field | Champ de date/heure de la table en entrée qui indique quand chaque ligne a été capturée ou créée. Doit être un champ date et non une chaîne ou un champ numérique. | Field |
Output_Table | Table en sortie contenant les valeurs OBJECTID de la table en entrée correspondant à une photo, et chemin d'accès à la photo associée. Seules les valeurs OBJECTID de la table en entrée correspondant à 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 des fichiers photo sont ajoutés aux lignes de la table en entrée sous la forme de pièces jointes à la géodatabase.
| Boolean |
Time_Tolerance (Facultatif) | Ecart maximal (en secondes) entre la date/heure d'une ligne en entrée et un fichier photo qui seront mis en correspondance. Si un enregistrement en entrée et un fichier photo ont des horodatages dont l'écart est supérieur à cette tolérance, aucune correspondance ne sera faite. Pour faire correspondre un fichier photo avec un enregistrement dont l'horodatage est le plus proche, indépendamment de l'importance de l'écart de date/heure, définissez la tolérance sur 0. Le signe de cette valeur (- ou +) est sans rapport, la valeur absolue du nombre spécifié étant utilisée. N'utilisez pas ce paramètre pour ajuster des décalages cohérents entre les heures enregistrées par le GPS et l'appareil photo numérique. Utilisez le paramètre Décalage de l'horloge ou l'outil Changer de fuseau horaire pour modifier les horodatages des lignes en entrée afin qu'ils correspondent à ceux des photos. | Double |
Clock_Offset (Facultatif) | Différence (en secondes) entre le 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 avec un horodatage 11:35:17 doit faire correspondre une ligne avec un horodatage de 11:35:32, utilisez une valeur de Décalage de l'horloge de 15. | Double |
Exemple de code
Exemple d'utilisation de l'outil MatchPhotosToRowsByTime (fenêtre Python)
La portion de code de fenêtre Python suivant illustre l'utilisation de l'outil 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)
Exemple d'utilisation de l'outil MatchPhotosToRowsByTime (script autonome)
Le script autonome ci-dessous explique comment utiliser l'outil 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")
Environnements
Informations de licence
- ArcGIS for Desktop Basic: Limité
- ArcGIS for Desktop Standard: Oui
- ArcGIS for Desktop Advanced: Oui