Страница 1 из 1

Как прочитать в Matlab снимок Гипериона типа HDR ?

Добавлено: 20 фев 2013, 22:27
sergsh
Есть гиперспектральные снимки спутника EO-1 Hyperion
http://eros.usgs.gov/#/Find_Data/Produc ... ilable/ALI

Там два формата можно скачать GeoTIFF и HDR.
С GeoTIFF понятно, каналы спектральные там разложены в разные TIFF файлы.

С HDR тоже примерно понятно, скачиваем такой набор :
EO1H1600412003061110KY.AUX
EO1H1600412003061110KY.hdr
EO1H1600412003061110KY.L1R
EO1H1600412003061110KY.MET
EO1H1600412003061110KY_SGS_01.fgdc

Далее нужно прочитать это в Matlab
есть много сторонних программ (типа m) для получения общей информации , например
read_envi_info.m
и они работают, дают информацию о файле данных
но далее именно прочитать не получается.

есть например программа envidataread.m
читает она без ошибок
D=envidataread('EO1H1600412003061110KY.L1R',info);
но когда рисуем например 45-й слой гиперкуба
colormap(colorcube);
figure(1), imagesc(D(:,:,45));
получается не правильная картинка, снимок разваливается на какие то полоски

Вопрос - может кто уже читал HDR в Matlab и знает как правильно прочитать гиперкуб данных ?

Re: Как прочитать в Matlab снимок Гипериона типа HDR ?

Добавлено: 21 фев 2013, 07:44
KolesovDmitry
Может просто переконвертировать все в геотиф и импортировать?

ЗЫ Интересно стало: а как вы их в матлабе обработать хотите? Какой анализ будете делать?

[ Сообщение с мобильного устройства ]

Re: Как прочитать в Matlab снимок Гипериона типа HDR ?

Добавлено: 21 фев 2013, 08:03
sergsh
KolesovDmitry писал(а):Может просто переконвертировать все в геотиф и импортировать?

ЗЫ Интересно стало: а как вы их в матлабе обработать хотите? Какой анализ будете делать?

[ Сообщение с мобильного устройства ]
GeoTIFF конечно можно переконвертировать например в бинарный файл типа mat.
Но проблема в том что после распаковки GeoTIFF занимает на диске 2-4 Гб, а HDR всего 400 Мб.
При 50 - 100 файлах разница уже значительная.

А анализ в Матлабе - да любой, какой угодно. Кластеризация например, много встроенных методов, и много сторонних с открытым кодом. Вообще очень много встроенных функций.
Большой плюс в том что в матлабе параллельный счет делается тремя строчками кода. У меня на Core i7 под Linux сразу 8 потоков. А если не хватает - можно вроде запустить на кластере из локальных машин. Но пока хватает.

Re: Как прочитать в Matlab снимок Гипериона типа HDR ?

Добавлено: 15 мар 2013, 21:37
sergsh
Перевел GeoTIFF в формат matlab по имени *.mat
Все 242 гиперспектральных слоя, и получился гиперкуб размером 200 Mb ( у GeoTIFF размер был 1.7 Gb ).

Это в ДВА раза компактнее чем формат HDR, у которого размер 480 Mb. Зачем тогда он вообще нужен ?
Читать этот HDR-HDF не получается, там куча разных версий формата, и ни один нельзя толком открыть

А mat файл открывается за полтычка, просто пишем
load file.mat
и все 242 слоя доступны, и место занимает в 2.5 раза меньше чем HDR и в восемь раз меньше чем GeoTIFF.

Re: Как прочитать в Matlab снимок Гипериона типа HDR ?

Добавлено: 15 мар 2013, 21:44
Максим Дубинин
GeoTIFF бывает разный, для начала попробуйте LZW компрессию.
А в исходных данных наверняка не только растровые матрицы.