2017-01-24 2 views
0

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

Я прочитал страницу руководства, но я не уверен, что это возможно.

ответ

2

Для согласования точной координаты, что-то вроде этого (версия для Windows):
exiftool -if "$GPSLongitude eq '‎74 deg 2\' 40.20\" W' and $GPSLatitude eq '40 deg 41\' 21.28\" N'" -gps*= FileOrDir

или если вы используете числовые координаты
exiftool -if "$GPSLongitude# == -74.0445 and $GPSLatitude# == 40.6892444444444" -gps*= FileOrDir

Я использовал -gps*=, чтобы очистить все теги, которые начинаются с gps, потому что возможно, что может быть больше тегов, а также тегов XMP gps. Если вы хотите просто удалить данные о местоположении, оставив данные GPS-направления/скорости/времени/места назначения/etc, тогда вы можете использовать вместо этого -GPSLatitude= -GPSLongitude= -GPSLatitudeRef= -GPSLongitudeRef= (возможно, -GPSAltitude= -GPSAltitudeRef=).

Для первой команды в Windows вам придется избегать одиночных и двойных кавычек, которые находятся внутри одинарной кавычки уравнения с обратными косыми чертами. Я не уверен, как это будет сделано на Mac/Linux.

Одной из основных проблем будет степень точности. Если у вас есть номер, близкий, но не точно равный локальному gps, хранящемуся в файле, вы не получите соответствия. В этот момент вы можете заглянуть в опцию -c, где вы можете указать степень точности.
exiftool -if "$GPSLongitude == -74.0445 and $GPSLatitude == 40.689244" -c "%+.6f" -gps*= FileOrDir

Наконец, если вы хотите получить более сложными, вы можете поставить только о каком-либо PERL выражения в качестве аргумента для опции -if. Например, вы можете вычесть свой номер из $GPSLatitude и получить абсолютное значение, чтобы получить диапазон для сравнения. Example с форумов Exlectool:
exiftool -if 'abs($gpslatitude# - 52.3728268506806) < 1e-3 and abs($gpslongitude# - 4.89373108651944) < 1e-3'

+0

С вашей командой я не могу заставить скрипт соответствовать файлам. Он всегда говорит, что файлы X не смогли выполнить условие. Откуда я должен получить цифры? Из карт Google? Использование окна свойств из Windows? Можете ли вы немного расширить на -c переключатель? Я не мог найти информацию об этом в google. http://www.sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html Этот веб-сайт говорит -c делает что-то другое. – Freedo

+0

Как я уже сказал, проблема заключается в степени точности. Трудно совместить точное число в файле, если вы не знаете точную координату и степень точности. Тогда это также зависит от того, в каком формате находится координата. Здесь используется опция '-c'. Она позволяет указать формат, чтобы он соответствовал формату, в котором находится ваша координата. Пример I дал «-c»% +. 6f »дал шесть десятичных знаков точности, что до уровня точности сантиметров. Далеко не точное, ИМО. Какая именно команда вы пытались и в каком формате находятся ваши координаты? – StarGeek

+0

Мое предложение - использовать последнюю команду, если это возможно. Эта команда использует 1e-3 (или 0.001), которая по шкале координат является радиусом около футбольного поля. Чтобы затянуть его дальше, используйте 0,0001, который будет около 30 'радиуса. Таким образом, вам не нужно получать точно такую ​​же координату, вы можете быть достаточно близко и все же удалить данные gps. – StarGeek

Смежные вопросы