Exiftool GPS-тегирование от широты/долготы работает частично, но всегда отсутствует часовой пояс (что, я думаю, является причиной того, что фактическое положение неверно)

У меня есть файл GPS, содержащий такие данные, как

<trkpt lat="56.9359839838" lon="-4.4651045874">
    <ele>30.42</ele>
    <time>2021-03-30T20:09:56Z</time>
</trkpt> 

Затем я могу использовать exiftool в строке cmd (машина на базе Windows), чтобы сделать следующееexiftool -xmp:gpslongitude=-4.4651045874 -xmp:gpslatitude=56.9359839838 -GPSAltitude=30.42 DSC00320_b.JPG

Обратите внимание, что это не работает — exiftool -exif:gpslongitude=-4.4651045874 -exif:gpslatitude=56.9359839838 -GPSAltitude=30.42 DSC00320_a.JPGэто отбрасывает отрицательное значение долготы и помещает метку GPS в неправильное положение (как если бы значение было +ve).

После выполнения команды на основе xmp и загрузки файла, скажем, на Flickr, он поместит его точно в то же место, как если бы значение долготы было положительным! Итак, после проверки другого инструмента (GeoSetter), который имеет предварительный просмотр карты, он загружает то же изображение и помещает его в правильное положение?

Таким образом, Flickr ошибается, но GeoSetter делает это правильно из того же самого изображения.

Покопавшись, я обнаружил, что причина в этом.

введите описание изображения здесь

Если я использую GeoSetter для установки часового пояса, а затем загружаю его на Flickr, он теперь помещает его в правильное положение.

Итак, проще говоря, как мне установить часовой пояс для данных GPS? Я пробовал следующие команды и ряд других, но все они терпят неудачу.

"-gpstimestamp<${createdate}-00:00"
"-GPSTimeStamp<${DateTimeOriginal}" -n
-Geotime<DateTimeOriginal# -n
"-gpsdatestamp<${DateTimeOriginal}"

Наконец, если я делаю визуальное сравнение данных из одного и того же файла с действительными данными часового пояса (справа) и файлом без него (слева), добавление «Дата/время оцифровано» выделяется как добавленное, поэтому я предполагаю, что именно поэтому файл работает. (есть также значительное количество других изменений в метаданных после добавления часового пояса через GeoSetter, я не думаю, что это имеет отношение к этому вопросу, но по запросу я могу добавить больше деталей)введите описание изображения здесь


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

Ответы (1)

Я не могу объяснить, что именно происходит с Flickr, но я могу помочь исправить некоторые детали проблемы.

Вы не можете установить часовой пояс для меток времени GPS ( GPS:GPSDateStampи GPS:GPSTimeStamp), потому что метки времени GPS должны быть в формате UTC. Всегда будет +00:00.

Причина, по которой ваш пример команды GPS не работает, заключается в том, что координаты GPS разделены на шесть отдельных тегов, каждый из которых содержит абсолютное значение для каждой координаты ( / / ), GPSLatitudeа GPSLongitudeдругой GPSAltitude- опорное направление ( GPSLatitudeRef/ GPSLongitudeRef/ GPSAltitudeRefс N/S/ E/W/сверху/снизу). Вам нужно установить оба, чтобы получить точную координату GPS. К счастью, с помощью exiftool вы можете использовать подстановочный знак, чтобы установить оба параметра одновременно.
exiftool -GPSLatitude*=56.9359839838 -GPSLongitude*=-4.4651045874 -GPSAltitude*=30.42 DSC00320_a.JPG

Обратите внимание, что это относится только к GPS-координатам, которые появляются в блоке EXIF ​​(который exiftool группирует в группу GPS). Теги GPS в XMP-exifгруппе включают опорное направление в одном и том же теге, но не все программы могут читать эти теги.

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

Блестящий ответ! Я отредактировал свой вопрос, так как не могу добавить изображение в комментарий, если вам интересно увидеть разницу метаданных. Похоже, что существенная разница заключалась в том, что «неправильный» файл добавил все соответствующие данные в разные группы, но ваша рабочая команда поместила их все в одну группу.
Данные Compositeгруппы можно игнорировать, так как это данные, которые exiftool создает на основе других тегов. На самом деле его нет в файле в таком виде. Например, Compositeметки GPS состоят из комбинации числовой метки и опорного направления, а не для самостоятельного комбинирования данных. Это делает данные более доступными и читаемыми.