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

Сложение снимков в ENVI

Добавлено: 06 июл 2013, 04:38
Natalia Novoselova
Как можно сложить 2 снимка на одну территорию: цветная композиция RGB (из одного файла шестиканального Landsat) + Панхроматичный (1 канал, из другого файла)?
Через функцию Band Math - не получается, т.к. он складывает, вычитает и пр. - только каналы одного снимка (одного файла).

Возможно, эти два файла получены из одного Landsat снимка, однако, поскольку они в двух разных файлах, не получается их так сложить. :(

В учебнике (по обработке снимков) есть раздел, в котором эта операция вроде бы описывается теоретически, однако как это делать в ENVI не понятно.

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 12:25
nadiopt
разрешение панхрома и цветного небось разные? он тогда вроде не грузит бэнды с разным разрешением в одно окно, может и на математике отражается

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 14:52
Natalia Novoselova
nadiopt писал(а):разрешение панхрома и цветного небось разные? он тогда вроде не грузит бэнды с разным разрешением в одно окно, может и на математике отражается
А есть способ, чтобы подгрузить каналы двух разных файлов в одно окно? (Что значит в одно окно - в один файл?)
Когда я пробовала делать это Band Math:назначаю B1+B2+B3+B4 в строке формул, то потом при операции присвоения этим параметрам - соотв. каналов в окне "Variable to band pairing" - я могу назначать или каналы одного снимка, или другого.

Может быть, я неправильно делаю эту операцию в Band Math?


Насчет разрешения, пока затрудняюсь ответить. А как его можно узнать из Envi?

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 15:19
nadiopt
в окне авайлабл бэндс есть плюсики под каждым файлом. Там вроде пиксель сайз
вот придет Александр Черепанов, скажет умнее, а я делаю лэерстэк из нужных каналов

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 15:58
Natalia Novoselova
nadiopt писал(а):в окне авайлабл бэндс есть плюсики под каждым файлом. Там вроде пиксель сайз
вот придет Александр Черепанов, скажет умнее, а я делаю лэерстэк из нужных каналов
Вы делаете Envi Layer Stacking?
По описанию - это то, что я ищу. Но не могу разобраться как это делать по хелпу..
То, кстати, что я не понимаю, почему в Envi хелп к операциям написан частично в виде программного кода? :roll:

Вот, пример по Layer Stacking
Спойлер
Example
The following example is used to layer stack the Bighorn TM and DEM images. This example uses the following files found in the IDLxx\products\envixx\data directory of the ENVI installation (where xx is the software version number):
• bhtmref.img
• bhtmref.hdr
and the following files found in the bh_3d directory of the ENVI Resource DVD that shipped with your software:
• Bhdemsub.img
• bhdemsub.hdr
The example uses an inclusive range (encompassing all the files) with cubic convolution resampling. Each of the six TM bands and the single DEM band are output to a new layer-stacked image with the same projection as the TM data.
forward_function envi_get_projection

pro example_envi_layer_stacking_doit
;
; First restore all the base save files.
;
envi, /restore_base_save_files
;
; Initialize ENVI and send all errors
; and warnings to the file batch.txt
;
envi_batch_init, log_file='batch.txt'
;
; Open the first input file.
; We will also open the one band
; dem file to layer stack with
; this file.
;
envi_open_file, 'bhtmref.img', r_fid=t_fid
if (t_fid eq -1) then begin
envi_batch_exit
return
endif
;
; Open the second input file.
;
envi_open_file, 'bhdemsub.img', r_fid=d_fid
if (d_fid eq -1) then begin
envi_batch_exit
return
endif
;
; Use all the bands from both files
; and all spatial pixels. First build the
; array of FID, POS and DIMS for both
; files.

;
envi_file_query, t_fid, $
ns=t_ns, nl=t_nl, nb=t_nb
envi_file_query, d_fid, $
ns=d_ns, nl=d_nl, nb=d_nb
;
nb = t_nb + d_nb
fid = lonarr(nb)
pos = lonarr(nb)
dims = lonarr(5,nb)
;
for i=0L,t_nb-1 do begin
fid = t_fid
pos = i
dims[0,i] = [-1,0,t_ns-1,0,t_nl-1]
endfor
;
for i=t_nb,nb-1 do begin
fid = d_fid
pos = i-t_nb
dims[0,i] = [-1,0,d_ns-1,0,d_nl-1]
endfor
;
; Set the output projection and
; pixel size from the TM file. Save
; the result to disk and use floating
; point output data.
;
out_proj = envi_get_projection(fid=t_fid, $
pixel_size=out_ps)
out_name = 'testimg'
out_dt = 4
;
; Call the layer stacking routine. Do not
; set the exclusive keyword allow for an
; inclusive result. Use cubic convolution
; for the interpolation method.
;
envi_doit, 'envi_layer_stacking_doit', $
fid=fid, pos=pos, dims=dims, $
out_dt=out_dt, out_name=out_name, $
interp=2, out_ps=out_ps, $
out_proj=out_proj, r_fid=r_fid
;
; Exit ENVI
;
envi_batch_exit
end


Мне, видимо, с шага "Use all the bands from both files
; and all spatial pixels. First build the
; array of FID, POS and DIMS for both
; files.

Может быть вы подскажете, как мне попробовать сделать это со своими файлами?

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 16:10
nadiopt
чето как-то мрачно все
из главного окна энви - бэйсик тулз - лэерстэкинг, вот и все

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 17:03
Natalia Novoselova
nadiopt писал(а):чето как-то мрачно все
из главного окна энви - бэйсик тулз - лэерстэкинг, вот и все
Спасибо, как делать теперь понимаю
Но один файл прошел, а по другому файлу (шестиканальный ландсат ETM) - выдан ответ, что "input file must be georeferenced"
Видимо, поэтому в Available band list он и не показывал Map Info.

Вы не знаете - как можно поднять эту информацию (видимо о проекции и пр) для данного файла, чтобы он стал "georeferenced" если ее почему то нет.
Может быть через Available band list - Edit Header - Edit Atributes .. там данные о проекции и разрешении можно внести, но где брать саму инфу?
(у меня нет полного скачанного исходника, всё что было в задании - эти 2 файла со снимками).
Можно тут что-то сделать..?

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 17:09
nadiopt
дык взять инфу из панхрома, только пиксель сайз 30

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 17:22
alexandr cherepanov
Как можно сложить 2 снимка на одну территорию: цветная композиция RGB (из одного файла шестиканального Landsat) + Панхроматичный (1 канал, из другого файла)?
У меня только один вопрос - зачем их вообще складывать? Конечная цель какая?

А так, чтобы работать через Band Math растры должны иметь одинаковый размер = количество строк/столбцов, в принципе это единственное условие. Совпадают растры или не совпадают по объектам программе без разницы. Получить одинаковый размер можно вырезанием по области/растру или собрать их в одном файле - Layer Stacking. Второй вариант проще и позволяет заодно привести данные к одной системе координат и одинаковому пространственному разрешению.
А после этого можете делать с каналами все что угодно, только не забудьте про ограничения на диапазон значений у различных типов данных. Если будете складывать/вычитать, то лучше сразу переводите свои значения из byte в integer.
вместо

Код: Выделить всё

B1+B2+B3+B4

Код: Выделить всё

fix(B1)+B2+B3+B4
как можно поднять эту информацию (видимо о проекции и пр) для данного файла, чтобы он стал "georeferenced" если ее почему то нет.
открываете EDIT HEADER и нажимаете ок для шестиканалки и панхрома. Закрываете оба файла, открываете через любой текстовый редактор оба header файлы. Переносите строчку map info и меняете разрешение. Сохраняете изменения и открываете снимки в ENVI.

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 18:40
gamm
alexandr cherepanov писал(а):[У меня только один вопрос - зачем их вообще складывать? Конечная цель какая?
толстый троллинг ...

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 19:24
Natalia Novoselova
alexandr cherepanov писал(а):
Как можно сложить 2 снимка на одну территорию: цветная композиция RGB (из одного файла шестиканального Landsat) + Панхроматичный (1 канал, из другого файла)?
У меня только один вопрос - зачем их вообще складывать? Конечная цель какая?.

Возможно, я не совсем верно поняла задание, т.к. полученный результат - и в самом деле не знаю точно как интерпретировать.
В задании было: Faça uma fusão entre a composição colorida selecionada no item anterior e a banda pancromática, utilizando a técnica IHS (que no Envi chama-se HSV)

Сделать смесь из цветной композиции,сделанной в предыдущем пункте (это была композиция RGB) и панхроматического канала, используя технику IHS (в ENVI именующуюся HSV).

Цель - думаю, или просто так отработать технику, или\и - в конечном итоге - получить какую-то особую возможность дешифровки местности на геологические формации разных минералов (о чем было все задание из разных пунктов).


Я перевела композицию RGB в HSV, повысила контрастность каждого канала H, S, V, из этого - опять перевела в RGB. И уже этот снимок по описанными вами шагам - соединила в один файл при помощи Layer Stacking.
Однако, не понимаю, этот ли результат был нужен. Поскольку в задании значилось "слияние" всего, то я сложила все итоговые каналы в Bandmath (3 канала RGB, получение которых описала выше + панхроматический канал), итог, понятное дело, открывается только через Gralescale. Что-то такое он и правда показывает, чего не было видно на цветных.. но не знаю.. :roll:

возможно, преподаватель имел в виду какие то иные шаги и мой результат не совсем верный.

Но по обозначенным вопросам - я разобралась, большое спасибо!! :)

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 20:15
alexandr cherepanov
Faça uma fusão entre a composição colorida selecionada no item anterior e a banda pancromática, utilizando a técnica IHS (que no Envi chama-se HSV
Оно?
E: Transformações
3. Rotação MNF (MNF Rotation) ............................................................................................ 6
4. Merge de Imagens (Fusão) ......................................................................................................... 6
4.1. Fusão pancromática / Multiespectral por IHS ...................................................... 6
4.2. Fusão Pancromática/Multi-Espectral pelo Método de brovey (Color Normalized) ... 7
Поскольку в задании значилось "слияние" всего.....возможно, преподаватель имел в виду какие то иные шаги и мой результат не совсем верный
Скорее всего имелся в виду fusion - повышение пространственного разрешения мультиспека по панхрому. Transform->ImageSharpening->HSV, с различными вариантами синтеза из трех каналов на входе.
Там же все с пошаговыми картинками вроде?

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 20:27
Natalia Novoselova
alexandr cherepanov писал(а):
Faça uma fusão entre a composição colorida selecionada no item anterior e a banda pancromática, utilizando a técnica IHS (que no Envi chama-se HSV
Оно?
E: Transformações
3. Rotação MNF (MNF Rotation) ............................................................................................ 6
4. Merge de Imagens (Fusão) ......................................................................................................... 6
4.1. Fusão pancromática / Multiespectral por IHS ...................................................... 6
4.2. Fusão Pancromática/Multi-Espectral pelo Método de brovey (Color Normalized) ... 7
Там же все с пошаговыми картинками вроде?
Нда.... а я там еще не смотрела. Читала задание, другой учебник и хелп. :oops:
Кстати, не знала что это мануал просто где то в сети выложен, нам его на лекциях в виде файла дали.
Думаю, скорее вы правы. Пойду разбираться дальше по нему.

Re: Сложение снимков в ENVI

Добавлено: 06 июл 2013, 22:04
Natalia Novoselova
alexandr cherepanov писал(а): Скорее всего имелся в виду fusion - повышение пространственного разрешения мультиспека по панхрому. Transform->ImageSharpening->HSV, с различными вариантами синтеза из трех каналов на входе.
Там же все с пошаговыми картинками вроде?

Спасибо! Теперь, надеюсь, всё более правильно.
Обсуждение выше также было использовано (внесения информации о привязке)
В итоге получилась композиция с 3 каналами
HSV Sharp R (Band2:ETM_230_088_LosMen)
HSV Sharp G (Band3:ETM_230_088_LosMen)
HSV Sharp B (Band1:ETM_230_088_LosMen)

думаю, это конечный результат..
В том смысле, что, как мне кажется, эта технология не предполагает перевода полученных каналов в RGB (сравнивая с другой методикой перевода из RGB - HSV - и опять в RGB)

Re: Сложение снимков в ENVI

Добавлено: 07 июл 2013, 04:30
Natalia Novoselova
В продолжении темы по мат. операциям с каналами в ENVI. Для операции вычитания каналов в теории написано, что перед тем, как из одного канала вычесть другой, - следует повысить контрастность в обоих и выровнять параметры St. Dev.

Но - повышая контрастность (н-р Tools- Interective Stretching - Linear2%) у каналов, это происходит только в Дисплее в котором открыт канал, то есть если просто повышать контрастность в дисплее без сохранения, это ведь не должно ничего менять в их свойствах при вычитании каналов через Bandmath? А как сохранить в канале повышение контрастности? :roll: