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

Программы и алгоритмы для обработки данных дистанционного зондирования: ERDAS, ENVI и другие.
Ответить
sergsh
Активный участник
Сообщения: 205
Зарегистрирован: 20 фев 2013, 21:48
Репутация: 30

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

Сообщение sergsh » 20 фев 2013, 22:27

Есть гиперспектральные снимки спутника 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 и знает как правильно прочитать гиперкуб данных ?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

Сообщение KolesovDmitry » 21 фев 2013, 07:44

Может просто переконвертировать все в геотиф и импортировать?

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

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

sergsh
Активный участник
Сообщения: 205
Зарегистрирован: 20 фев 2013, 21:48
Репутация: 30

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

Сообщение sergsh » 21 фев 2013, 08:03

KolesovDmitry писал(а):Может просто переконвертировать все в геотиф и импортировать?

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

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

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

sergsh
Активный участник
Сообщения: 205
Зарегистрирован: 20 фев 2013, 21:48
Репутация: 30

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

Сообщение sergsh » 15 мар 2013, 21:37

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

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

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

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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

Сообщение Максим Дубинин » 15 мар 2013, 21:44

GeoTIFF бывает разный, для начала попробуйте LZW компрессию.
А в исходных данных наверняка не только растровые матрицы.
пристегивайтесь, турбулентность прямо по курсу

Ответить

Вернуться в «Обработка ДДЗ»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя