#python #image #tiff
Вопрос:
Я обрабатываю ETOPO1.tif в тени холмов с обрезанной областью.
Я получаю изображение в формате tiff, похожее на :
Когда я обрабатываю его с помощью ImageMagick, он успешно запускается. Но я получаю следующий набор предупреждающих сообщений:
convert Yug-shadedrelief.tmp.tif -fuzz 7% -fill "#FFFFFF" -opaque "#DDDDDD" whited.jpg # lighter (0.9M)
convert.im6: Unknown field with tag 33550 (0x830e) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/768.
convert.im6: Unknown field with tag 33922 (0x8482) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/768.
convert.im6: Unknown field with tag 34735 (0x87af) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/768.
convert.im6: Unknown field with tag 34736 (0x87b0) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/768.
convert.im6: Unknown field with tag 34737 (0x87b1) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/768.
convert.im6: Unknown field with tag 42113 (0xa481) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/768.
Мой .tif поврежден ?
Что я могу сделать, чтобы удалить эти сообщения ?
Комментарии:
1. Не поврежден — похоже, что любая программа, создавшая изображение, использовала некоторые пользовательские теги TIFF, которые ImageMagick не распознает. Я бы отказался от них с
convert x.tiff ... 2> /dev/null
помощью или, если вы находитесь в Windowsconvert -quiet x.tiff ...
2. Я использовал инструмент-скрипт ГИС
gdal
для создания входного файла этого вопроса.
Ответ №1:
В отличие от вашего первоначального заголовка (который я изменил), это не сообщение об ошибке, а просто предупреждение:
TIFFReadDirectory: Warning, Unknown field with tag 33550 (0x830e) encountered. [...]
TIFFReadDirectory: Warning, Unknown field with tag 33922 (0x8482) encountered. [...]
TIFFReadDirectory: Warning, Unknown field with tag 34735 (0x87af) encountered. [...]
[...]
Перечисленные здесь теги являются частными тегами GeoTIFF. Смотрите здесь:
Чтобы просмотреть их (вероятно, не очень значимый для вас) контент, вы можете воспользоваться утилитой tiffdump
(или tiffutil -dump
). Есть шанс, что exiftool
он сможет показать вам значения этих тегов:
exiftool -a -U -u -g1 Yug-Shadedrelief.tmp.tif
-u
И -U
должен извлечь также все неизвестные ( exiftool
кому ) теги. Если у вас нет «мусора» в вашем выводе, exiftool
вы смогли сделать орел и решку из того, что увидели, и вам тоже следует 🙂
Может быть, это вариант для вас, чтобы освобождатьудалить эти теги? exiftool
также могу сделать это для вас…
Если вы хотите только убрать раздражающие сообщения из поля зрения, а не менять свои разногласия, то 2> /dev/null
для ваших команд будет достаточно перенаправления stderr:
convert
Yug-shadedrelief.tmp.tif
-fuzz 7%
-fill "#FFFFFF"
-opaque "#DDDDDD"
whited.jpg
2>/dev/null
Обновить
Code | Code | |
(dec) | (hex) | Tag Name | Short Description
------ ------- --------------------- --------------------------------------------------------
33550 | 830E | ModelPixelScaleTag | Used in interchangeable GeoTIFF files
33922 | 8482 | ModelTiepointTag | Originally part of Intergraph's GeoTIFF,
34735 | 87af | GeoKeyDirectoryTag | Used in interchangeable GeoTIFF files
34736 | 87b0 | GeoDoubleParamsTag | Used in interchangeable GeoTIFF files
34737 | 87b1 | GeoAsciiParamsTag | Used in interchangeable GeoTIFF files
42113 | a481 | GDAL_NODATA | Used by GDAL lib, contains ASCII encoded nodata or ...
Объяснения:
- 33550: «…дополнительно предусмотрено для определения точных аффинных преобразований между растром и пространством модели….»
- 33922: «…также известный как «Географический тег». Этот тег хранит растровые->пары точек привязки модели…»>
- 34735: «…также известный как «Проекционный инфотег» и «Системный инфотег»»
- 34736: «…используется для хранения всех ДВУЗНАЧНЫХ геокей, на которые ссылается тег GeoKeyDirectoryTag…»
- 34737: «…используется для хранения всех геокей со значением ASCII, на которые ссылается тег GeoKeyDirectoryTag»
- 42113: «…специальное значение пикселя для обозначения геопространственных областей, для которых информация недоступна…»
Комментарии:
1. Спасибо, Курт. Я также обновил содержание вопроса «предупреждением», я изучу вашу информацию завтра утром.
2. Я наткнулся на этот вопрос, так как у меня возникли проблемы с моей
libtiff
версией, у которой, похоже, возникают аналогичные проблемы. Для того , чтобы понять, что происходит, я попытался найтиexiftool
,tiffdump
иtiffutil
. К сожалению, я нашел толькоexiftool
на веб-сайте SourceForge, но он не дает информации, которую я ищу. Кто-нибудь может сказать мне, где я могу скачатьtiffdump
и/илиtiffutil
откуда?3. @Dominique:
tiffdump
является частью стандартаtiff
илиlibtiff
пакета.tiffutil
является частью Mac OS X, код которой основан наtiffcp
tiffinfo
пакете иlibtiff/tiff
из него.4. Спасибо за информацию, Курт, вы не знаете, существует ли соответствующий инструмент для операционной системы Windows?
5. @Dominique: tiff/libtiff доступны для Windows (AFAIR также как часть пакета gnuwin32/tiff в SourceForge), а вместе с ним
tiffinfo
иtiffdump
.
Ответ №2:
Мой .tif поврежден?
Нет, это просто предупреждения о дополнительных метаданных (частные теги TIFF), которые Imagemagick не знает.
Что я могу сделать, чтобы удалить эти сообщения?
Добавьте опцию командной строки -quiet
для подавления всех предупреждающих сообщений (как предложил Марк Сетчелл в комментарии).
Ответ №3:
Вы можете перекомпилировать libtiff с помощью :
- добавление в tiff.h таких строк
#define TIFFTAG_ModelPixelScale 33550
- добавление в TIFFFieldInfo в tif_dirinfo.c
static const TIFFFieldInfo;
tiffFieldInfo[] = {...,
{ TIFFTAG_ModelPixelScale,1, 1,
TIFF_LONG, FIELD_SUBFILETYPE, 1, 0, "ModelPixelScale" },
...
};