Fotos nach Zeit zu Zeilen zuordnen (Data Management)
Zusammenfassung
Gleicht Fotodateien nach den Foto- und Zeilenzeitstempeln mit Tabellen- oder Feature-Class-Zeilen ab. Die Zeile mit dem Zeitstempel der der Erfassungszeit eines Fotos am nächsten liegt, wird mit diesem Foto abgeglichen. Erstellt eine neue Tabelle, die die ObjectIDs aus den Eingabezeilen und die entsprechenden Fotopfade enthält. Fügt den Zeilen der Eingabetabelle optional als Geodatabase-Anlagen entsprechende Fotodateien hinzu.
Bild
Verwendung
-
Dieses Werkzeug kann verwendet werden, um GPS-erfasste Features mit digitalen Fotos zu vergleichen, die zur gleichen Zeit wie das GPS-Feature aufgenommen wurden.
Die Ausgabetabelle enthält vier Attributfelder:
- IN_FID: Die Objekt-ID einer Eingabezeile, deren Zeitstempel dem Zeitstempel eines Fotos entspricht.
- Photo_Path: Der vollständige Pfad zu einer Fotodatei, deren Zeitstempel dem Zeitstempel der Eingabezeile entspricht, die im Feld IN_FID identifiziert wurde.
- Photo_Name: Der Kurzname der Fotodatei.
- Match_Diff: Der Unterschied zwischen den Zeitstempeln einer Fotodatei und der entsprechenden Eingabezeile. Dieser numerische Wert ist in der Einheit angegeben, die im Parameter Zeitdifferenz festgelegt wurde.
Shapefile- und dBASE-Daten werden für die Eingabetabelle unterstützt; es wird jedoch empfohlen, Geodatabase-Daten zu verwenden, da ein Datumsfeld in einer Shapefile- oder dBASE-Tabelle nicht sowohl Datums- als auch Uhrzeitinformationen speichern kann.
Da eine einzelne Eingabezeile möglicherweise einen Zeitstempel hat, der dem Zeitstempel von mehreren Fotos entspricht, kann die Ausgabetabelle mehrere Zeilen mit der gleichen IN_FID enthalten (jede Zeile in der Ausgabe verweist auf eine Übereinstimmung zwischen einem Foto und einer Eingabezeile).
Die Ausgabetabelle kann mithilfe des Ausgabefeldes IN_FID und der OBJECTID der Eingabe mit der Eingabetabelle verbunden werden. Wenn die Ausgabetabelle mehrere Zeilen mit der gleichen IN_FID enthält (einer Eingabezeile entsprechen mehrere Fotos), verwenden Sie eine Verbindung oder eine Beziehungsklasse, um die Ausgabe mit der Eingabe zu verknüpfen.
Weitere Informationen zum Verbinden von Tabellen und Erstellen von Beziehungen zwischen Tabellen
Das Zeitfeld muss vom Typ Datum sein. Zum Konvertieren der Text- oder numerischen Felder in ein Datumsfeld verwenden Sie das Werkzeug Zeitfeld konvertieren.
Auch wenn ein GPS-Punkt und ein digitales Foto genau zur gleichen Zeit erfasst werden, entsprechen die von den Geräten aufgezeichneten Zeiten möglicherweise verschiedenen Zeitzonen. Zum Beispiel zeichnen GPS-Geräte oft Zeiten in koordinierter Weltzeit (UTC) oder Greenwich Mean Time (GMT) auf, während digitale Kameras oft Zeiten in einer lokalen Zeitzone aufzeichnen. Um Zeitstempelunterschiede abzugleichen, die sich aus verschiedenen Zeitzonen ergeben, verwenden Sie das Werkzeug Zeitzone konvertieren, um das Zeitfeld der Eingabetabelle zu ändern und an die Zeitzone des Fotodateizeitstempels anzupassen.
Ebenso kann es sein, dass die Uhr der GPS-Einheit nicht mit der Uhr der Digitalkamera synchron ist. Damit Foto und GPS-Punkt einander zugeordnet werden können, wenn diese Uhren nicht synchron sind, bestimmen Sie die Differenz zwischen den beiden Uhren, und geben Sie diesen Wert für den Parameter Zeitdifferenz ein.
Die Parameter Zeittoleranz und Zeitdifferenz müssen in Sekunden angegeben werden. Im Internet sind verschiedene Dienstprogramme zu finden, mit denen berechnet werden kann, wie vielen Sekunden eine andere Zeiteinheit entspricht. So entsprechen 3 Minuten und 12 Sekunden z. B. 192 Sekunden.
Syntax
Parameter | Erläuterung | Datentyp |
Input_Folder |
Die Ordner, in denen sich die Fotodateien befinden. Dieser Ordner wird rekursiv nach Fotodateien gescannt; alle Fotos auf der Basisebene des Ordners und in allen Unterordnern werden der Ausgabe hinzugefügt. | Folder |
Input_Table |
Die Tabelle oder Feature-Class, deren Zeilen mit Fotodateien verglichen werden. Die Eingabetabelle ist normalerweise eine Point-Feature-Class, die PPS-Aufnahmen darstellt. | TableView |
Time_Field |
Das Datums-/Uhrzeitfeld in der Eingabetabelle, das angibt, wann jede Zeile aufgezeichnet oder erstellt wurde. Muss ein Datumsfeld sein; kann kein Zeichenfolgen- oder Zahlenfeld sein. | Field |
Output_Table |
Die Ausgabentabelle mit den OBJECTIDs aus der Eingabetabelle, die einem Foto entsprechen, sowie der entsprechende Fotopfad. Nur OBJECTIDs aus der Eingabetabelle, die einem Foto entsprechen, werden in die Ausgabetabelle aufgenommen. | Table |
Unmatched_Photos_Table (optional) |
Die optionale Ausgabetabelle, die alle Fotodateien im Eingabeordner mit einem ungültigen Zeitstempel auflistet, oder alle Fotos, die nicht verglichen werden konnten, da keine Eingabezeile innerhalb der Zeittoleranz vorhanden ist. Wenn kein Pfad angegeben wird, wird diese Tabelle nicht erstellt. | Table |
Add_Photos_As_Attachments (optional) |
Gibt an, ob Fotodateien den entsprechenden Zeilen der Eingabetabelle als Geodatabase-Anlagen hinzugefügt werden. Lizenz: Wenn Sie Anlagen hinzufügen möchten, benötigen Sie mindestens eine Lizenz für ArcGIS for Desktop Standard, und die Ausgabe-Feature-Class muss in der Geodatabase-Version 10 oder höher vorliegen.
| Boolean |
Time_Tolerance (optional) |
Der maximale Unterschied (in Sekunden) zwischen dem Datum/der Uhrzeit einer Eingabezeile und einer Fotodatei, die abgeglichen werden. Wenn eine Eingabezeile und eine Fotodatei Zeitstempel haben, die weiter als diese Toleranz auseinanderliegen, tritt keine Entsprechung auf. Um eine Fotodatei mit einer Zeile mit dem am nächsten liegenden Zeitstempel zu vergleichen, unabhängig von der Größe des Datums-/Uhrzeitsunterschieds, legen Sie die Toleranz auf 0 fest. Das Zeichen dieses Wertes (- oder +) ist irrelevant; der absolute Wert der angegebenen Zahl wird verwendet. Verwenden Sie diesen Parameter nicht, um durchgängige Verschiebungen oder Versätze zwischen den vom GPS und der digitalen Kamera aufgezeichneten Zeiten anzupassen. Verwenden Sie den Parameter Zeitdifferenz oder das Werkzeug Zeitzone konvertieren, um die Zeitstempel von den Eingabezeilen zu verlagern, um sie den Zeitstempeln der Fotos anzupassen. | Double |
Clock_Offset (optional) |
Der Unterschied (in Sekunden) zwischen der internen Uhr der digitalen Kamera, mit der die Fotos aufgenommen wurden, und der GPS-Einheit. Wenn die Uhr der digitalen Kamera im Vergleich zur Uhr der GPS-Einheit nachgeht, verwenden Sie einen positiven Wert; wenn die Uhr der digitalen Kamera im Vergleich zur Uhr der GPS-Einheit vorgeht, verwenden Sie einen negativen Wert. Wenn z. B. ein Foto mit einem Zeitstempel von 11:35:17 einer Zeile mit einem Zeitstempel von 11:35:32 entsprechen sollte, verwenden Sie eine Zeitdifferenz von 15. | Double |
Codebeispiel
Das folgende Snippet im Python-Fenster veranschaulicht, wie das Werkzeug "MatchPhotosToRowsByTime" verwendet wird.
import arcpy
arcpy.MatchPhotosToRowsByTime_management("c:/data/photos", "c:/data/city.gdb/gps_points", "DateTime", "c:/data/city.gdb/output_table", "", "ADD_ATTACHMENTS", "", 20)
Das folgende Skript veranschaulicht, wie das Werkzeug "MatchPhotosToRowsByTime" verwendet wird.
"""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")