Макрос геокодирования фотографий по треку OziExplorer

Скачать

Предыстория

Идея макроса зародилась осенью 2007 г. Как раз тогда по работе мне пришлось массово делать фотографии, которые потом должны были привязываться к карте. Немного раньше я прочёл статью Maxcom'а, где предлагался довольно непростой механизм геокодирования. Но работа не ждала и я сделал тогда геокодирование элементарной формулой в Excel'е. Тогда же мне и пришла идея написания макроса, представленного ниже.

Требования к исходным данным

Для геокодирования нам потребуется набор фотографий и трек OziExplorer. Фотографии в EXIF-данных должны содержать как минимум время съёмки. Поскольку некоторые графические пакеты после обработки фотографий практически уничтожают информацию EXIF, лучше использовать исходные фотографии до обработки.

Трек OziExplorer'а должен быть треком, полученным из Active log'а GPS или треком, переконвертированным из GPX, сохранённого GPS-кой на карточку памяти. Сохранённые треки GPS и другие треки, не содержащие информацию о времени не подойдут.

Для увеличения точности геокодирования, желательно в момент фотосъёмки сделать кадр с экраном GPS, на который выведено время с секундами.



На приведённом выше примере видно, что время на фотоаппарате не только не синхронизировано с GPS, но и не переведено на летнее.

Подготовка

Перед началом геокодирования надо создать текстовый файл с EXIF-данными фотографий, для этого необходим exiv2, доступный по адресу http://www.exiv2.org/download.html. Exiv2 необходимо натравить на каталог с фотографиямии строкой [путь к exiv2]\exiv2.exe pr -u -ps -Pxv *.* >EXIF.txt или запустить в каталоге с фотографиями EXIFlist.bat, в котором предварительно настроить путь к exiv2. Фотографии могут быть практически в любом формате, содержащем EXIF, в том числе Canon RAW *.CR2.

Работа с макросом

Тут всё просто. Открываем geocoding.xls.



Для учёта разницы дат и времени на фотоаппарате и GPS, вводим даты и время на фото и на GPS в соответствующие поля. Если часовой пояс отличается от Москвы, корректируем и поле Часовой пояс. Если даты совпадают или время совпадают, соответствующие поля можно оставить пустыми.

Запускаем макрос кнопкой Старт. Если ничего не произошло - значит в вашем Excell отключены макросы.

Макрос предлагает выбрать файл с EXIF-данными, выбираем наш файл (например, EXIF.txt).

Дальше макрос предлагает выбрать трек, выбираем.

Если всё нормально, макрос создаст файл OziExplorer wpt, содержащий точки с координатами наших фотографий.

Логика

Если время съёмки фотографии раньше, чем время первой точки трека, такой фотографии присваиваются координаты первой точки. Если время фотографии позже времени последней точки трека, такой фотографии присваиваются координаты последней точки трека.

При совпадении даты и времени съёмки фотографии и одной из точек трека (с учётом коррекции времени), фотографии присваиваются координаты такой точки. Если же время фото не попадает точно ни на одну из точек трека, макрос рассчитывает соотношение разницы времени между ближайшими по времени точками трека и разницой времени фото и ближайшей точки трека. На основании этого соотношения считаются координаты, находящиеся между двумя точка трека. Эта функция макроса особенно полезна при больших разрывах трека, на которые попадают фотографии.

Download

Geocoging.rar - архив с макросом и файлом EXIFlist.bat. Чтобы скачать, кликните по ссылке правой кнопкой и выберете "Сохранить объект как...".

http://www.exiv2.org/download.html - страница скачивания exiv2, который требуется для работы макроса.


15/02/2008

История изменений

20/02/2008 v2.0
• Добавлена возможность использовать трек продолжительностью в несколько дней.
• Добавлена возможность корректировки разницы даты съёмки и фактической даты.
• Сделано заполнение в wpt файле поля 5 исходной датой/временем фото.
• Сделано заполнение в wpt поля 22 ссылкой на исходную фотографию. Теперь в Ozi по правому клику на точке можно выбрать Open File Attachment и, соотвественно, открыть исходную фотографию.