Сопоставить фотографии строкам по времени (Match Photos To Rows By Time) (Управление данными)
Резюме
Сопоставляет файлы фото строкам таблиц или классам пространственных объектов по временным меткам фотографий и строк. Строка с временной меткой, ближайшей ко времени создания фото, сопоставляется с этим фото. Создает новую таблицу, содержащую атрибуты ObjectID из входных строк и сопоставленных им путей к фото файлам. Дополнительно добавляет сопоставляемые файлы фото к строкам во входной таблице в виде вложений базы геоданных.
Рисунок
Использование
-
Этот инструмент можно использовать для сопоставления объектов, полученных с помощью GPS, цифровым фотографиям, снятым в то же время, когда был получен GPS-объект.
Выходная таблица содержит четыре атрибутивных поля:
- IN_FID: ID объекта входной строки, чей временной метка сопоставляется временной метке фото.
- Photo_Path: полный путь к файлу фото, чья временная метка сопоставляется временной метке входной строки, определенной в поле IN_FID.
- Photo_Name: короткое имя файла фото.
- Match_Diff: разница между временными метками файла фото и сопоставляемой входной строкой. Это числовое значение содержится в единице, заданной в параметре Единица временной разности (Time Difference Unit).
Несмотря на то, что шейп-файл и данные dBASE поддерживаются для входной таблицы, рекомендуется использовать данные базы геоданных, поскольку поле Date в шейп-файле или в таблице dBASE не может одновременно хранить информацию о дате и времени.
Поскольку одна входная строка может иметь временную метку, которая сопоставляется временным меткам нескольких фотографий, выходная таблица может содержать несколько строк с одинаковым полем IN_FID (каждая строка на выходе ссылается на соответствие между одной фотографией и одной строкой).
Выходную таблицу можно объединить с входной таблицей с помощью выходного поля IN_FID и идентификатора OBJECTID во входных данных. В случае когда выходная таблица содержит несколько строк с одинаковым полем IN_FID (одна входная строка сопоставляется нескольким фотографиям), для связи выходных данных со входными используйте класс связи или соотношений.
Для поля времени необходимо выбрать тип Дата (Date). Чтобы конвертировать текстовые или числовые поля в поле Дата (Date), используйте инструмент Конвертировать поле времени (Convert Time Field).
Даже если точка GPS и цифровая фотография были записаны одновременно, значения времени, зафиксированные устройствами, могут отличаться в силу разных часовых поясов. Например, GPS устройства часто записывают время в формате Всемирное координированное время (UTC) или Среднее время по Гринвичу (GMT), в то время как цифровые фотокамеры зачастую используют местный временной пояс. Чтобы согласовать разности во временных отметках, вызванные часовыми поясами, используйте инструмент Конвертировать часовой пояс (Convert Time Zone). Этот инструмент изменяет поле времени входной таблицы для соответствия часовому поясу временной метки файла фото.
Часы GPS также могут не быть синхронизированы с часами цифровой камеры. В целях обеспечения соответствия фотографии точке GPS в тех случаях, когда часы не синхронизированы, необходимо определить разницу между двумя часами, после чего использовать это значение для параметра Сдвиг по часам (Clock Offset).
Значения параметров Допуск по времени (Time Tolerance) и Сдвиг по часам (Clock Offset) необходимо указать с точностью до секунды. В Интернете доступны утилиты для расчета значения различных единиц времени в секундах. Например, 3 минуты и 12 секунд равны 192 секундам.
Синтаксис
Параметр | Объяснение | Тип данных |
Input_Folder |
Папка, в которой расположены файлы изображений. Файлы изображений в этой папке сканируются рекурсивно. Изображения, расположенные на корневом уровне папки, а также в любой подчиненной папке, добавляются в выходные данные. | Folder |
Input_Table |
Таблица или класс пространственных объектов, строки которых будут сопоставлены файлу фото. Входная таблица, как правило, является классом точечных объектов, который представляет записи GPS. | TableView |
Time_Field |
Поле дата/время из входной таблицы указывает время создания или захвата каждой из строк. Должно быть поле даты; нельзя использовать строковое или числовое поле. | Field |
Output_Table |
Выходная таблица, содержащая атрибуты OBJECTID из входной таблицы сопоставляет фото и пути к фото файлам. В выходную таблицу включаются только те атрибуты OBJECTID из входной таблицы, которые соответствуют фотографии. | Table |
Unmatched_Photos_Table (дополнительно) |
Дополнительная выходная таблица для фото файлов из входной папки, которые имеют некорректный временная метка, а также файлов фото, которые имеют некорректную временную метку, а также файлов фото, которые не могут быть сопоставлены по причине отсутствия входной строки с временной меткой в пределах допуска по времени. Если путь не указан, таблица не создается. | Table |
Add_Photos_As_Attachments (дополнительно) |
Устанавливает, добавляются ли строки входной таблицы в виде вложений в базе геоданных. Лицензия: Для добавления вложений требуется лицензия не ниже ArcGIS for Desktop Standard, а также выходной класс пространственных объектов в базе геоданных версии не ниже 10.
| Boolean |
Time_Tolerance (дополнительно) |
Максимальная разность (в секундах) между датой/временем входной строки и файлом фото, который сопоставляется. Если разность временных меток входной строки и файла фото превышает данный допуск, соответствие не будет установлено. Чтобы сопоставить файл фото строке с ближайшей временной меткой независимо от разности даты/времени, установите допуск 0. Знак этого значения (- или +) не важен, используется абсолютное значение указанного числа. Не используйте этот параметр для настройки последовательных смещений или смещений значений времени, записанных GPS-устройством или цифровой камерой. Чтобы сдвинуть временные метки входных строк для соответствия временным меткам фото, используйте параметр Сдвиг по часам (Clock Offset) или инструмент Конвертировать часовой пояс (Convert Time Zone). | Double |
Clock_Offset (дополнительно) |
Разность (в секундах) между внутренними часами цифровой камеры, с помощью которой получаются фотографии, и GPS-устройством. Если часы цифровой камеры отстают от GPS-устройства, используйте положительное значение; если часы цифровой камеры опережают часы GPS-устройства, используйте отрицательное значение. Например, если фотографию со временной меткой 11:35:17 требуется сопоставить строке со временной меткой 11:35:32, используйте параметр Сдвиг по часам (Clock Offset) со значением 15 . | Double |
Пример кода
Следующий фрагмент окна Python демонстрирует способ использования инструмента Сопоставить фотографии строкам по времени (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)
Следующий скрипт демонстрирует способ использования инструмента Сопоставить фотографии строкам по времени (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")