Сообщение
Boris » 27 апр 2016, 20:25
Что видно сразу:
1. gdal_translate создал не Erdas Imagine (.img), а GeoTIFF, поскольку нет оператора -f "HFA", задающего результирующий формат файла.
2. Но это не плохо, поскольку дало таки новые данные - при конвертации TIF->TIF : программа говорит, как я понимаю, что метаданные из исходного GeoTIFF слишком велики, что бы их поместить в результирующий GeoTIFF.
3. Теперь по исходному растру:
а) он 16-битный
б) похоже он создан в Erdas, и видимо, там же настроен для отображения, а затем еще раз пропущен через какую то из утилит GDAL.
в) метаданные просто огромные. И судя по всему смешанные - есть метаданные от Erdas Imagine и есть метаданные от GDAL.
Теперь предположения:
1. В метаданных есть блоки "STATISTICS_HISTOBINVALUES=" и "<GDALRasterAttributeTable " с огромным количеством цифр, видимо, они задают способ отображения 16-битного растра на экране. Можно предположить, что ArcGIS использует первый из них, поскольку имеет большие связи с ERDAS, а QGIS - второй, поскольку построен на 100% GDAL. Это объясняет разницу в отображении.
2. 16-битовый раст просто для просмотра редко используют, т.к. на экране он все равно приводится к 8-битам. Такой раст может быть исходным у WV, или использоваться в программе анализа, но для просмотра надежней его перевести в 8-битный. Правда для этого нужна программа, которая умеет реализовывать некоторый алгоритм "свертки" 16-бит в 8-бит. В реальности никогда не бывает занято все 16-бит, но подстройка гистограммы или ее трансформация - это отдельная работа. Вроде бы gdal_translate что то такое умеет, но я не пробовал - я делал только в экранных программах обработки растров.
Выводы:
1. и 16-бит с таблицей перекодирования цветов и огромные метаданные могут переполнять какой-нибудь внутренний буфер в ArcGIS, который потом может портить другие данные программы и вызывать ее падение.
2. В блоке "STATISTICS_HISTOBINVALUES" метаданных огромное количество нулей, не знаю его истинного смысла, но если он сформирован не правильно, то это может вызывать ошибки деления на 0.
Возможные решения:
1. почистить метаданные. Фотошоп отлично убивает все метаданные, которых не знает, а не знает он никаких пространственных тегов. Где то в утилитах GDAL есть "gdal_edit" - утилита для корректировки метаданных. На самый простой случай сойдет и gdal_translate TIF->TIF с опцией "PROFILE=GeoTIFF", которая должна убрать тэги не соответствующие стандартному GeoTIFF.
2. Привести растр к 8-битам и настроить каналы RGB, поскольку в исходном растре их 4. Для уменьшения разрядности с настраиваемым сжатием цветового пространства стоит использовать опцию "-scale" из gdal_translate. Но, на мой вкус, ПО, предназначенное для обработки растров с отображением результата на экране, а ля фотошоп (убьет привязку - ее необходимо сохранить заранее, как и другие гео-тэги), ENVI, Erdas Image, Scanex IP - подойдет в этом случае лучше.
3. Если и после этого файл будет "ронять" ArcGIS, то придется построить новые гипотезы, или просто поделить его на 4 части.
...
Хотя, вот только сейчас пришло в голову, что такое было у ArcGIS, не помню версии, когда она автоматом пытается строить растровые пирамиды при открытии растра, и умирает не осилив этой задачи. Для этого случая, можно попробовать самому построить пирамиды заранее, и в отдельном файле, что бы не перегружать исходный, утилитой "gdaladdo -ro".