PDA-версия   Home   Карта сайта   E-Mail
 
 E-mailПароль 
  

 
Забыл пароль  Регистрация
  Главная / О себе / Техноблог / GPS координаты в EXIF фотографий

Сейчас на сайте

1 пользователей в том числе:
В чате 0 пользователей в том числе:
   

Техноблог

GPS координаты в EXIF фотографий

 Победив, в конце концов, в неравной борьбе с геотегами, я спешу поделиться наработанным - разумеется, со всеми водами и предысториями вопроса, который занял у меня целый год и благополучно разрешился только после того, как я закончил расставлять вручную координаты во все фотографии с первой поездки - потому что история эта сложная, запутанная и для того, чтобы не гулять лишний раз по граблям, советую прочитать ее со всеми водам, в ней содержащимися.
 Итак, собрался с как-то поехать в Египет. Давно мечтал об этом а потом вдруг взял и поехал. И не просто поехал, а взял с собой три камеры - зеркалку и две мыльницы. И у обоих мыльниц были GPS-приемники.
 Проблемы начались сразу: у Nikon Coolpix AW100 (подводная мыльница) координат не было на большей части фотографий. Потом выяснилось, что дело в скорости, с которой это чудо техники захватывает спутники. Обычно это радостное событие происходило минуте на третьей, когда сюжет успевал благополучно уйти. То есть, просто включить его и снимать нельзя, нужно дождаться сигнала, что камера готова записывать координаты. Ну, как альтернативу, не выключать камеру (и не нырять с ней, потому что под водой сигнал со спутников не принимается и даже всплывая подышать, камеру из воды обычно не достают). Я пробовал сделать это при сплаве по реке на байдарках, батареи мне хватило часа на четыре и заменить ее в условиях, максимально приближенных к подводным, было невозможно (то есть, заменить-то было возможно, а вот снимать потом - вряд ли).
 Еще хуже вела себя Fujifilm FinePix F550EXR - высококачественный премиум-компакт с большой матрицей, с хорошими фотографиями на ярком свету, размером не больше пачки сигарет, но, к сожалению, с еще менее удачной геосистемой: спутники она ловила не три минуты а все пятнадцать. В настройках предусмотрена возможность отслеживать спутники даже при выключенной камере, в этом случае она начинает с ураганной скоростью жрать батарейки но при включении все равно говорит, что спутники потеряны и приходится ждать те же пятнадцать минут. Но это еще не самое худшее.
 Дело в том, что, при наличие RAW я всегда снимаю в него - только в этом случае из кадров удается вытянуть приличное изображение. Причем, над каждым кадром нужно сидеть часа три (для зеркалки - три минуты). Это плата за малые размеры и складной объектив, в общем, плата вполне допустимая, поскольку хороший кадр получить все-таки можно (на солнце, конечно; в тени даже премиум компакт не спасает).
 Так вот, в RAW файлы эта камера координаты пишет - только потом их там никто не видит! Сначала я решил, что никакой записи не происходит - там, в Египте, FastStone на ноутбуке видел положение на jpegах с Никона (RAW у Nikon Coolpix AW100 нет), но на RAW с Фуджа не видел ничего. Я даже связывался с представительством Фуджи, они ничего по этому поводу сказать не могли. Параллельно, Fujifilm FinePix F550EXR умеет записывать координаты в логфайл с расширением .log, и я понадеялся, что, приехав в Москву, смогу перенести координаты из него в фотографии.
 Однако, приехав в Москву, я ничего никуда не перенес: как выяснилось, любое конвертирование файлов с координатами убивает в них что-то, и связать потом эти файлы с фотографиями становится невозможно. В каком-то форуме было учитано, что убиваются некоторые метки времени. Пришлось принять такое объяснение, за неимением лучшего - хотя на глаз, метки времени в структуре файла были - возможно, не те или не в том формате (или не того времени: иногда создавалось впечатление что привязка к Гринвичу менялась на что-то непонятное).
 Единственное, что удалось сделать - это считать логфайлы программой Google Earth, и она нарисовала точки, в которых я делал фотографии - но связать такую точку с фотографией удалось только руками (а фотографий было много).
 И лишь закончив работу, удалось выработать простые и удобные способы, как записать координаты в каждый снимок и при этом не остаться в самый нужный момент с разряженной камерой.
 Во-первых, перевести .log в .gpx все-таки можно, например, это умеет делать онлайн-ресурс www.gpsvisualizer.com.
 Во-вторых, выяснилось что в RAW-файлы Фудж координаты все-таки пишет - правда, пишет нестандартно, читает их (из протестированных) только программа (бесплатная) Exif Pilot. Она же позволяет записывать координаты в EXIF jpeg (но, опять-таки, только руками).
 Во-третьих, чтобы не зависеть от включения или выключения камеры, лучше использовать внешний логер. Он имеет еще и то преимущество, что пишет весь маршрут а не только точки, в которых сделаны фотографии. Логеров у меня два, один программный а второй аппаратный, у каждого есть свои преимущества.
 Сначала я купил Gatrmin etrex 10, он стоил три с хвостиком тысячи рублей, отдает готовый GPX файл и имеет приемники GPS и ГЛОНАСС, что очень положительно. Точность возрастает метров до четырех. И стартует гораздо быстрее. И спутники реже теряет и быстрее восстанавливает, причем значительно. Энергопотребление не проверял, для меня особого значения не имеет, пальчиковые аккумуляторы очень легко меняются на ходу, но две системы настолько лучше чем одна, что вопроса не возникает.
 Кстати, при активных поездках такое сохранение следует делать, устройство почему-то не обучено отдавать под логи всю доступную память и при достижении файлом размера чуть больше двух мегабайт (10 000 путевых точек), самые старые метки из файла удаляются. Такого объема не хватает на сутки непрерывного движения, если включена запись с повышенной точностью (зато, хватает на нормальную точность, установленную по-умолчанию). Поэтому, если Вы в поездке больше чем на день, регулярно архивируйте свой трек в свободную память. Можно поставить устройства на ежедневную автоматическую архивацию или включить архивацию по переполнению памяти.
 Настраивать Etrex 10 не нужно, годятся настройки по умолчанию, если предполагается съемка из быстро движущегося транспорта, имеет смысл переключить в настройках режим сохранение трека в позицию "очень часто", иначе транспорт успеет проехать много метров между записанными точками. Устройство по-умолчанию берет метки времени со спутников, что удобно. Не забудьте синхронизировать с его временем часы камеры. Обратите внимание, что синхронизировать нужно очень точно - до секунды. Часы камеры секунды не показывают, поэтому Вы просто делаете ввод в тот момент, когда выверенные в интернете часы на компьютере покажут начало минуты. Если этого не сделать, то кадр, сделанный из автомобиля, в худшем случае, может зафиксироваться на карте в целом километре от места, где он, в действительности сделан, поскольку автомобили двигаются быстро. Если точно выставить начало минуты на камере в соответствии с временем интернета, точность можно сохранить в пределах 5-10 метров.
 Etrex 30x, который пришлось купить после потери в Индии Etrex 10 (расстегнулся ремешок и устройство сделало ноги), отличается не только в три раза большей ценой, но и цветным экраном с картой. Памяти в нем гораздо больше и можно ставить дополнительную карту памяти, в остальном разницы особой не обнаружено, если бюджет ограничен, вполне можно обойтись самой дешевой версией навигатора - правда, географическую карту в него уже не залить и свое местоположение на ней не увидеть.
 Второй вариант - взять планшет или телефон с Android и установить из его маркета бесплатную программу GPSlogger. Настройки у нее почти такие же: время со спутника (или из интернета), частота автоматическая. У большинства телефонов, особенно поддерживающих Glonass, заявленная точность очень высока - 2-3 метра. Правда, реальная точность у специализированного навигатора все-таки выше, чем у телефона (правда, ненамного), кроме того, телефоны легче теряют сигнал в транспорте. Впрочем, при не очень высокой требовательности к точности, вполне можно обойтись планшетом или телефоном. Интернет для GPSloggera не требуется, однако, при отсутствии доступа к сети, определение координат может стартовать достаточно долго - несколько минут (наличие Glonass существенно убыстряет такой старт).
 Разумеется, определение координат повышает расход батареи, поэтому следует озаботиться переносным зарядным устройством - у навигатора, в этом смысле, положение лучше, потому что он позволяет на ходу менять пальчиковые аккумуляторы.
 GPX файл у GPSlogger ни во что конвертировать не нужно, он сразу готов к употреблению.
 Для IOS вместо GPSlogger советуют программу Geotag Photos - но она платная (вроде бы есть бесплатная версия). Однако, какие-то альтернативы для этой системы тоже имеются. Эта программа тоже поставляет gpx-файл. В общем, с развитием геолокации, после 2016 года уже никаких сложностей получение GPX-файла не вызывает, соответствующие программы есть на любом современном телефоне, в любой системе.
 Такой механизм нравится мне значительно больше, чем встроенный в камеру GPS - во-первых, нет риска оказаться с разряженной камерой (в крайнем случае, разряженным будет логер а лучше лишиться координат чем фотографий; в крайнем случае потерянные координаты как правило можно найти по карте и поставить руками). Во-вторых, не нужно ждать, когда камера очнется и поймает спутники, то есть, все фотографии будут привязаны к координатам - даже сделанные разными камерами (для удобства не забудьте состроить на них часы, тогда можно будет накладывать координаты одним движением; Кроме всего прочего, логер с GPS и ГЛОНАСС вместе просто точнее.
 Еще один совет - выберите одно время (я использую московское), и настраивайте все камеры на него, вне зависимости от того, какое время в стране, куда Вы прилетели. В этом случае, при заливке геоданных в фотографии Вам достаточно будет указать часовой пояс Москвы - а не думать, какой часовой сдвиг был во время фотографирования и был ли в тот год в этой стране переход на летнее время.
 Получив файл, берем программу GPicSync http://code.google.com/p/gpicsync/ - это бесплатная программа для таких вещей. В двух верхних окнах выбираем GPX файл (можно несколько) и директорию с фотографиями. Задаем смешение времени места съемки от Гринвича, учитывая летнее-зимнее время. Если вы послушали меня, и поставили на камере московское время, задаете +3 или выбираете Москву в списке городов, о летнем времени в этом случае можно забыть. Бекапы и логи включаем по вкусу (я не включаю). Запись в экзиф прописью места, где сделан снимок тоже (он запрашивает у гугля). Все, нажимаем синхронизировать и в окне начинают мелькать превьюшки - он показывает, что именно сейчас обрабатывает. Если он начинает писать, что не может найти подходящую точку, значит, скорее всего, неправильно задано смещение времени места съемки, это самые распространенные ошибки.
 Я записываю координаты в уже готовые, обработанные и переведенные из RAW в jpeg фотографии, но можно писать их и в RAW (зачем, правда, непонятно), а можно в отдельный файл.
 Вместо GPicSync можно использовать различные программы. Например, рекомендуют http://www.hllab.dp.ua/Tour/gps/bindfoto.htm или бесплатную программу GeoSetter.
 Если Вы пользуетесь не GPicSync а какими либо другими программами наложения координат на снимки, обратите внимание на то, что многие программы берут время создания фотографий не из EXIF а из даты создания файла. Пока Вы снимаете в jpeg, это не имеет особого значения, но конвертация RAW подразумевает создание jpeg-файла со своей датой, совершенно не соответствующей времени съемки.
 Если Вам попалась такая программа (например, этим неприятным свойством обладает Downloader Pro), можно воспользоваться уже знакомым нам FastStone, в котором достаточно выделить нужные фотографии и выбрать в меню "сервис" -> "изменить дату/время выбранных" а потом отметить "дата/время из EXIF". Дата создания файлов станет соответствовать моменту съемки.
 Отдельно можно выделить программу Lightroom, которая умеет переносить координаты из RAW в создаваемый jpeg - в этом случае можно записать координаты прямо все все RAW-исходники и больше о них не задумываться. Однако я ею не пользуюсь (слишком уж многое она делает так, как хочет она а не так, как хочу я - а самое главное, все это богатство работает только на Windows), а поэтому в деталях помочь не могу.
 Далее, если какие-то координаты все-таки отсутствуют (допустим, забыли включить логер), можно внести их на фотографию вручную. С помощью Fxif Pilot можно вписать в фотографию числовое значение координат. Есть, например, замечательный online-ресурс http://www.geoimgr.com/en/tool , позволяющий не только поставить маркер на карту и тут же получить его координаты - но и залить фотографию, и получить ее назад уже с установленным геотегом.
 Если нужно занести одни и те же координаты в множество фотографий (а такое бывает, если сессия делалась в одном месте), можно создать gpx-файл для заливки, например, такой:
 <?xml version="1.0" encoding="UTF-8" ?><gpx version="1.0" creator="GPSLogger - http://gpslogger.mendhak.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <bounds />
 <trk>
 <trkseg>
 <trkpt lat="55.743953704834" lon="37.592960357666">
 <ele>169.8</ele>
 <course>0.0</course>
 <speed>0.0</speed>
 <hdop>1.58</hdop>
 <src>gps</src>
 <time>2017-01-06T11:47:00Z</time>
 </trkpt>
 </trkseg></trk></gpx>

 Укажите Ваши координаты, высоту и время съемки, а потом используйте GPicSync или подобную программу, не забыв указать интервал времени, в который войдет Ваша сессия.
 Дальнейшие действия с уже внесенными в фотографии координатами на PHP описываются так:
 сначала получаем данные EXIF, для этого указываем в команде exif_read_data нужные нам секции EXIF:
 $Exif = exif_read_data($FilePath, 'FILE,EXIF,COMPUTED,ANY_TAG,IFD0');
 После этого формируем координаты:
  if($Exif['GPSLatitudeRef']){ //Если координаты есть
  $t1 = explode('/',$Exif['GPSLatitude'][0]);
  $t2 = explode('/',$Exif['GPSLatitude'][1]);
  $t3 = explode('/',$Exif['GPSLatitude'][2]);//преобразуем запись из формата EXIF
  if($t1[1] > 0 && $t2[1] > 0 && $t3[1] > 0){
  $GPS = ($t1[0]/$t1[1]); //Записываем градусы
  $GPS .= ' '.($t2[0]/$t2[1]).' '; //Записываем минуты
  $r1 = round(($t3[0]/$t3[1]),2); //Записываем секунды с десятыми до второго знака
  if($r1 > 0)$GPS .= $r1.' ';
  $GPS .= ' '.$Exif['GPSLatitudeRef']; //добавляем к записи значение типа широты (северная или южная)
  }
  $t1 = explode('/',$Exif['GPSLongitude'][0]);
  $t2 = explode('/',$Exif['GPSLongitude'][1]);
  $t3 = explode('/',$Exif['GPSLongitude'][2]);//преобразуем запись из формата EXIF
  if($t1[1] > 0 && $t2[1] > 0 && $t3[1] > 0){
  $GPS .= ($t1[0]/$t1[1]); //Записываем градусы
  $GPS .= ' '.($t2[0]/$t2[1]).' '; //Записываем минуты
  $r1 = round(($t3[0]/$t3[1]),2); //Записываем секунды с десятыми до второго знака
  if($r1 > 0)$GPS .= $r1.' ';
  $GPS .= ' '.$Exif['GPSLongitudeRef'].' '; //добавляем к записи значение типа долготы (восточная или западная)
  }
  $GPS = str_replace(',','.',$GPS);
  $GPSLINK = str_replace(' ','+',$GPS);
  $GPSLINK = str_replace('++','+',$GPSLINK);
  $GPSlink = 'https://maps.google.ru/maps?q='.$GPSLINK; //Формируем окончательный вид ссылки
  }

 При нажатии на получившуюся ссылку открывается карта с точкой, показывающей место съемки. Масштаб выбирается автоматически (иначе пришлось бы вписывать его в фотографии руками), карта делает это достаточно корректно.
 Но это уже вывод для специалистов, хостинги, наподобие Яндекс-фоток сами прекрасно разберутся в залитых координатах и выведут их на карте.
 В заключении скажу, что всячески советую ставить геотеги в ваши фотографии, это удобно и это просто - достаточно разобраться один раз, само действие занимает считанные секунды. И программный GPSLogger и софт навигатора сами группируют GPX файлы по дням, к которому относится запись, их можно скопировать из устройства после поездки и после этого достаточно указать синхронизатору место, где лежат готовые фотографии и где находятся GPX-файлы, все остальное программа сделает сама, легко и быстро.
 Вышеприведенная методика оказалась настолько удачной, что некоторые производители камер (Никон, например) вводят отдельный логер, пишущий координаты с привязкой к времени в текстовый файл, прямо в камеру (это кроме того, что координаты записываются прямо в файлы фотографий). Такая функция, например, есть в подводном Nikon Coolpix AW120. То есть, одна камера пишет прямо в фотографии а на снятое другими камерами координаты можно перенести программой синхронизации.


Теги:
  Вставить в блог: Livejournal   Я.ру   Buzz



PDF-версия


Rigel
kanopus@list.ru   http://www.smoliy.ru/   2014-08-14 15:41:47
Я снимаю даже несколько больше - иногда и тысяча кадров в день не предел (поэтому и таскаю три-четыре аккумулятора к каждой из камер), но с описанными сложностями столкнулся - и самая неприятная из них в том, что иногда нужно сделать кадр очень быстро а камера выключена. И ждать, пока она поймает спутники никак нельзя. Логер, если он выключен, можно включить задним числом и он зафиксирует ближайшую по времени точку... За четыре часа камера разрядилась с учетом часа видеосъемки и нескольких сотен кадров, но навигатор тут, безусловно, тоже роль сыграл. Может быть на сто кадров в день это и решение - но на нормальные объемы съемки оно не годится.

Владимир
v_shuld@mail.ru     2014-07-30 21:51:02

У меня Panasonic TZ10.
Дома GPS отключен.
В поездках включен всегда (на ночь можно выключать).
Поскольку в поездках снимаю много (до 100 фото в день), то все равно раз в 2 дня заряжаю.
(Хоть включен GPS, хоть нет).
Координаты видны, например, в программе FastStone Image Viewer. Можно по клику перейти на Гугл карты.
Разрядки от GPS за 4 часа, конечно, нет.
----
GPS в фотоаппарате мне очень нравится. Если буду покупать новый (планирую зеркалку, хотя кто знает...) то хочу с GPS. Например, Nikon D5300.

Оставьте свой комментарий

Введите код с картинки
Имя пользователя
E-mail
Домашняя страница
Подключить файл или картинку

   

UFORUM

 

Уфологический форум. Аномальные явления, уфология, непознанное.
Общий форум сайта

Анкеты очевидцев
Если Вы наблюдали НЛО, неизвестное животное или другое аномальное явление, расскажите об этом здесь.
Анкета очевидца НЛО
Анкета очевидца АЯ
Анкета очевидца неизвестного животного
Анкета очевидца АЯ в космосе

 

Мысли вслух
Что-то, подобное дневнику или блогу - мысли вслух, не обязательно мои, но и не всегда чужие. Иногда это веселые истории, иногда - заметки для памяти, иногда что-то любопытное, иногда - сухие научные факты. А в общем - всего понемножку. Ваши комментарии приветствуются.

- Главная - Стихи - Фотография - Проза - Уфология - О себе - Фотоальбом - Новости - Контакты -