Beschriftung | Erläuterung | Datentyp |
Eingabeordner | Die Ordner, in denen sich die Fotodateien (.jpg oder .tif) 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 |
Eingabetabelle | Die Tabelle oder Feature-Class, deren Zeilen mit Fotodateien verglichen werden. Die Eingabetabelle ist normalerweise eine Point-Feature-Class, die PPS-Aufnahmen darstellt. | Table View |
Zeitfeld | Das Datumsfeld in der Eingabetabelle, das angibt, wann eine Zeile aufgezeichnet oder erstellt wurde. Dieses Feld muss ein Datumsfeld sein. Es kann kein Zeichenfolgen- oder numerisches Feld sein. | Field |
Ausgabetabelle | Die Ausgabetabelle mit den Objekt-ID-Werten aus der Eingabetabelle, die einem Foto entsprechen, sowie der entsprechende Fotopfad. Nur Objekt-ID-Werte aus der Eingabetabelle, die einem Foto entsprechen, werden in die Ausgabetabelle aufgenommen. | Table |
Tabelle mit nicht zugeordneten Fotos (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 |
Fotos als Anlagen hinzufügen (optional) |
| Boolean |
Zeittoleranz (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 unabhängig von der Größe des Datums-/Uhrzeitunterschieds mit einer Zeile mit dem am nächsten liegenden Zeitstempel zu vergleichen, 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 |
Zeitdifferenz (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 als Zeitdifferenz den Wert 15. | Double |
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. Es wird eine neue Tabelle erstellt, die die Objekt-ID-Werte aus den Eingabezeilen und die entsprechenden Fotopfade enthält. Dieses Werkzeug können Sie auch verwenden, um den Zeilen der Eingabetabelle entsprechende Fotodateien als Geodatabase-Anlagen hinzuzufügen.
Abbildung
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 die folgenden 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 durch den Parameter Zeitdifferenzeinheit festgelegt wird.
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 demselben IN_FID-Wert 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 dem Objekt-ID-Wert der Eingabe mit der Eingabetabelle verbunden werden. Wenn die Ausgabetabelle mehrere Zeilen mit demselben Wert des Feldes 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.
Das Zeitfeld muss ein Feld vom Typ Date sein. Zum Konvertieren der Text- oder numerischen Felder in ein Feld vom Typ Date 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.
Parameter
arcpy.management.MatchPhotosToRowsByTime(Input_Folder, Input_Table, Time_Field, Output_Table, {Unmatched_Photos_Table}, {Add_Photos_As_Attachments}, {Time_Tolerance}, {Clock_Offset})
Name | Erläuterung | Datentyp |
Input_Folder | Die Ordner, in denen sich die Fotodateien (.jpg oder .tif) 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. | Table View |
Time_Field | Das Datumsfeld in der Eingabetabelle, das angibt, wann eine Zeile aufgezeichnet oder erstellt wurde. Dieses Feld muss ein Datumsfeld sein. Es kann kein Zeichenfolgen- oder numerisches Feld sein. | Field |
Output_Table | Die Ausgabetabelle mit den Objekt-ID-Werten aus der Eingabetabelle, die einem Foto entsprechen, sowie der entsprechende Fotopfad. Nur Objekt-ID-Werte 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 die Fotodateien den entsprechenden Zeilen der Eingabetabelle als Geodatabase-Anlagen hinzugefügt werden sollen. Hinweis:Wenn Sie Anlagen hinzufügen möchten, muss die Ausgabe-Feature-Class 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 unabhängig von der Größe des Datums-/Uhrzeitunterschieds mit einer Zeile mit dem am nächsten liegenden Zeitstempel zu vergleichen, 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 als Zeitdifferenz den Wert 15. | Double |
Codebeispiel
Das folgende Snippet für das Python-Fenster veranschaulicht, wie die Funktion MatchPhotosToRowsByTime verwendet wird.
import arcpy
arcpy.management.MatchPhotosToRowsByTime(
"c:/data/photos", "c:/data/city.gdb/gps_points", "DateTime",
"c:/data/city.gdb/output_table", "", "ADD_ATTACHMENTS", "", 20)
Das folgende Skript veranschaulicht, wie die Funktion 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
# 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"])