Сопоставить фотографии строкам по времени (Управление данными)

Сводка

Сопоставляет файлы фото строкам таблиц или классам пространственных объектов по временным меткам фотографий и строк. Строка с временной меткой, ближайшей ко времени создания фото, сопоставляется с этим фото. Создает новую таблицу, содержащую атрибуты ObjectID из входных строк и сопоставленных им путей к фото файлам. Дополнительно добавляет сопоставляемые файлы фото к строкам во входной таблице в виде вложений базы геоданных.

Иллюстрация

Иллюстрация работы инструмента Сопоставить фотографии со строками по времени
Входная строка 5 не сопоставлена ни одной фотографии, потому что другие строки имеют временные метки более близкие к временным меткам файлов фото.

Использование

  • Этот инструмент можно использовать для сопоставления объектов, полученных с помощью GPS, цифровым фотографиям, снятым в то же время, когда был получен GPS-объект.

  • Выходная таблица содержит четыре атрибутивных поля:

    • IN_FID: ID объекта входной строки, временная метка которого совпадает с временной меткой фотографии.
    • Photo_Path: Полный путь к файлу фотографии, временная метка которой совпадает с временной меткой входной строки, определенной в поле IN_FID.
    • Photo_Name: Краткое имя файла фотографии.
    • Match_Diff: Разница между временными метками файла фотографии и соответствующей входной строкой. Это числовое значение выражено в единицах, заданных в параметре Единица разницы времени.

  • Несмотря на то, что шейп-файл и данные dBASE поддерживаются для входной таблицы, рекомендуется использовать данные базы геоданных, поскольку поле Date в шейп-файле или в таблице dBASE не может одновременно хранить информацию о дате и времени.

    Более подробно об ограничениях для шейп-файлов

  • Поскольку отдельная входная строка может иметь временную метку, совпадающую с метками времени нескольких фотографий, выходная таблица может содержать несколько строк с одинаковым полем IN_FID (каждая строка в выходных данных соответствует совпадению между одной фотографией и одной входной строкой).

  • Выходную таблицу можно связать с входной таблицей с помощью выходного поля IN_FID и идентификатора OBJECTID входных данных. В случае когда выходная таблица содержит несколько строк с одним и тем же полем IN_FID (одна входная строка соответствует нескольким фотографиям), для привязки выходных данных к входным используйте relate или класс отношений.

  • Поле времени должно быть типа Date. Чтобы конвертировать текстовые или числовые поля в поле Date, используйте инструмент Конвертировать поле времени.

  • Даже если точка GPS и цифровая фотография были записаны одновременно, значения времени, зафиксированные устройствами, могут отличаться в силу разных часовых поясов. Например, GPS устройства часто записывают время в формате Всемирное координированное время (UTC) или Среднее время по Гринвичу (GMT), в то время как цифровые фотокамеры зачастую используют местный временной пояс. Для того, чтобы привести в соответствие метки времени в разных часовых поясах, используйте инструмент Преобразовать часовой пояс, который позволит изменить поле времени входной таблицы, чтобы оно соответствовало часовому поясу метки времени файла фотографии.

    Часы GPS также могут не быть синхронизированы с часами цифровой камеры. Чтобы обеспечить точное соответствие между фотографией и точкой GPS, когда эти часы не синхронизированы, определите разницу между этими двумя часами, а затем используйте полученное значение для параметра Сдвиг по часам.

  • Значения параметров Допуск по времени и Сдвиг по часам должны указываться в секундах. В Интернете доступны утилиты для расчета значения различных единиц времени в секундах. Например, 3 минуты и 12 секунд равны 192 секундам.

Синтаксис

MatchPhotosToRowsByTime(Input_Folder, Input_Table, Time_Field, Output_Table, {Unmatched_Photos_Table}, {Add_Photos_As_Attachments}, {Time_Tolerance}, {Clock_Offset})
ParameterОбъяснениеТип данных
Input_Folder

Папка, в которой расположены файлы изображений. Файлы изображений в этой папке сканируются рекурсивно. Изображения, расположенные на корневом уровне папки, а также в любой подчиненной папке, добавляются в выходные данные.

Folder
Input_Table

Таблица или класс пространственных объектов, строки которых будут сопоставлены файлу фото. Входная таблица, как правило, является классом точечных объектов, который представляет записи GPS.

Table View
Time_Field

Поле дата/время из входной таблицы указывает время создания или захвата каждой из строк. Должно быть поле даты; нельзя использовать строковое или числовое поле.

Field
Output_Table

Выходная таблица, содержащая OBJECTID из входной таблицы с соответствующими фотографиями, и пути к этим фото. В выходную таблицу включаются только те атрибуты OBJECTID из входной таблицы, которые соответствуют фотографии.

Table
Unmatched_Photos_Table
(Дополнительный)

Дополнительная выходная таблица для фото файлов из входной папки, которые имеют некорректный временная метка, а также файлов фото, которые имеют некорректную временную метку, а также файлов фото, которые не могут быть сопоставлены по причине отсутствия входной строки с временной меткой в пределах допуска по времени.

Если путь не указан, таблица не создается.

Table
Add_Photos_As_Attachments
(Дополнительный)

Устанавливает, добавляются ли строки входной таблицы в виде вложений в базе геоданных.

Лицензия:

Для добавления вложений требуется лицензия не ниже ArcGIS Desktop Standard, а также выходной класс пространственных объектов в базе геоданных версии не ниже 10.

  • ADD_ATTACHMENTS Не отмечено: файлы фото не добавляются в строки входной таблицы в виде вложений в базе геоданных. Вложения копируются непосредственно в базу геоданных. Используется по умолчанию.
  • NO_ATTACHMENTS Файлы фото не добавляются в строки входной таблицы в виде вложений в базе геоданных.
Boolean
Time_Tolerance
(Дополнительный)

Максимальная разность (в секундах) между датой/временем входной строки и файлом фото, который сопоставляется. Если метки времени входной строки и файла фото отличаются на величину, большую чем данный допуск, соответствие не будет установлено. Чтобы файл фотографии соответствовал строке с ближайшей отметкой времени, независимо от того, насколько большой может быть разница между по дате и времени, установите допуск 0. Знак этого значения (- или +) не имеет значения; будет использоваться абсолютное значение указанного числа.

Не используйте этот параметр для настройки последовательных смещений или смещений значений времени, записанных GPS-устройством или цифровой камерой. Чтобы сдвинуть временные метки входных строк так, чтобы они соответствовали временным меткам фото, используйте параметр Сдвиг по часам или инструмент Конвертировать часовой пояс.

Double
Clock_Offset
(Дополнительный)

Разность (в секундах) между внутренними часами цифровой камеры, с помощью которой получаются фотографии, и GPS-устройством. Если часы цифровой камеры отстают от GPS-устройства, используйте положительное значение; если часы цифровой камеры опережают часы GPS-устройства, используйте отрицательное значение.

Например, если требуется, чтобы фотография с временной меткой 11:35:17 соответствовала строке с временной меткой 11:35:32, используйте Сдвиг по часам со значением 15.

Double

Пример кода

MatchPhotosToRowsByTime, пример (окно Python)

Следующий сниппет окна 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, пример (автономный скрипт)

Следующий скрипт демонстрирует работу инструмента 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
# 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")

Информация о лицензиях

  • Basic: Ограничено
  • Standard: Да
  • Advanced: Да

Связанные разделы