Как прочитать в Matlab снимок Гипериона типа HDR ?
-
- Активный участник
- Сообщения: 205
- Зарегистрирован: 20 фев 2013, 21:48
- Репутация: 30
Как прочитать в Matlab снимок Гипериона типа HDR ?
Есть гиперспектральные снимки спутника 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 и знает как правильно прочитать гиперкуб данных ?
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 и знает как правильно прочитать гиперкуб данных ?
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как прочитать в Matlab снимок Гипериона типа HDR ?
Может просто переконвертировать все в геотиф и импортировать?
ЗЫ Интересно стало: а как вы их в матлабе обработать хотите? Какой анализ будете делать?
[ Сообщение с мобильного устройства ]
ЗЫ Интересно стало: а как вы их в матлабе обработать хотите? Какой анализ будете делать?
[ Сообщение с мобильного устройства ]
-
- Активный участник
- Сообщения: 205
- Зарегистрирован: 20 фев 2013, 21:48
- Репутация: 30
Re: Как прочитать в Matlab снимок Гипериона типа HDR ?
GeoTIFF конечно можно переконвертировать например в бинарный файл типа mat.KolesovDmitry писал(а):Может просто переконвертировать все в геотиф и импортировать?
ЗЫ Интересно стало: а как вы их в матлабе обработать хотите? Какой анализ будете делать?
[ Сообщение с мобильного устройства ]
Но проблема в том что после распаковки GeoTIFF занимает на диске 2-4 Гб, а HDR всего 400 Мб.
При 50 - 100 файлах разница уже значительная.
А анализ в Матлабе - да любой, какой угодно. Кластеризация например, много встроенных методов, и много сторонних с открытым кодом. Вообще очень много встроенных функций.
Большой плюс в том что в матлабе параллельный счет делается тремя строчками кода. У меня на Core i7 под Linux сразу 8 потоков. А если не хватает - можно вроде запустить на кластере из локальных машин. Но пока хватает.
-
- Активный участник
- Сообщения: 205
- Зарегистрирован: 20 фев 2013, 21:48
- Репутация: 30
Re: Как прочитать в Matlab снимок Гипериона типа HDR ?
Перевел GeoTIFF в формат matlab по имени *.mat
Все 242 гиперспектральных слоя, и получился гиперкуб размером 200 Mb ( у GeoTIFF размер был 1.7 Gb ).
Это в ДВА раза компактнее чем формат HDR, у которого размер 480 Mb. Зачем тогда он вообще нужен ?
Читать этот HDR-HDF не получается, там куча разных версий формата, и ни один нельзя толком открыть
А mat файл открывается за полтычка, просто пишем
load file.mat
и все 242 слоя доступны, и место занимает в 2.5 раза меньше чем HDR и в восемь раз меньше чем GeoTIFF.
Все 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 ?
GeoTIFF бывает разный, для начала попробуйте LZW компрессию.
А в исходных данных наверняка не только растровые матрицы.
А в исходных данных наверняка не только растровые матрицы.
пристегивайтесь, турбулентность прямо по курсу
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя