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

Индексы вегетации в ENVI

Добавлено: 23 май 2010, 20:49
Sergey_USU
Здравствуйте!
У меня возник вопрос при использовании индексов вегетации в ENVI (правда пользователь этой программы я еще не очень опытный :) ).
В ENVI есть встроенный индекс вегетации NDVI, который получается из двух каналов (RED и NIR). При этом через инструмент Band Math можно составлять другие индексы, например, трех канальные (+Green). Но если требуется составить более сложный индекс вегетации, который нельзя выразить одним выражением, а нужно использовать if, and и or. В справке написано, что and и or использовать вроде можно, но вот как использовать ветвление не знаю :( . Можете помочь?
Вообще задача у меня стоит в идентификации лесов, т.е. в простой идентификации от почвы и других объектов (или вообще идентификация растительности). Если может кто помочь, буду очень рад!

Re: Индексы вегетации в ENVI

Добавлено: 24 май 2010, 14:07
nadiopt
лес от не-леса можно даже неконтролируемой классификацией отличить
а что за хитрый индекс вы хотите составить?

Re: Индексы вегетации в ENVI

Добавлено: 24 май 2010, 21:41
Sergey_USU
Мне нужно посчитать индекс, который называется TCHVI (three-channel vegetation index)
TCHVI=((RED-GR)-(NIR-RED))/(abs(RED-GR)+abs(NIR-RED)) (*)

индекс зависит от значения яркости пикселя, в некоторых случаях в виде (*) он принимает значения +1 или -1; алгоритм его вычисления представляется следующим образом:

D1=RED-GR, D2=NIR-RED

if ((D1>0 and D2<0) or (D1<0 and D2>0)) { TCHVI=(D1+D2)/(absD1+absD2) }

if ((D1>0 and D2>0) or (D1<0 and D2<0)) { TCHVI=(D1-D2)/(absD1+absD2) }

//взято из статьи: Бондур В.Г., Чимитдоржиев Т.Н. Дистанционное зондирование растительности оптико-микроволновыми методами. Известия ВУЗов. Геодезия и аэрофотосъемка. 2008 г.

Re: Индексы вегетации в ENVI

Добавлено: 24 май 2010, 23:55
alexandr cherepanov
pro файл скопируйте в sav_add

FUNCTION TCHVI, b2, b3, b4
; D1=RED-GR
b100 = float(b3)-float(b2)
; D2=NIR-RED
b200 = float(b4)-float(b3)
; (absD1+absD2)
b300 = abs(b100)+abs(b200)
b1=(b100 gt 0 and b200 lt 0 or b100 lt 0 and b200 gt 0)*((b100+b200)/b300)+(b100 gt 0 and b200 gt 0 or b100 lt 0 and b200 lt 0)*((b100-b200)/b300)
RETURN, b1
END

Запускается через Band Math выражением
TCHVI(b2, b3, b4)

Проверьте выражение, может что не так записал

Re: Индексы вегетации в ENVI

Добавлено: 25 май 2010, 16:50
Sergey_USU
Спасибо! Вроде получилось.

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 14:34
olgagolubeva
добрый день!
помогите пожалуйста, как сделать индекс NDVI.
Я делаю через spectral - vegetation analisis- vegetation index calculator.....что дальше

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 16:49
nadiopt
смотрим картинку

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 18:52
olgagolubeva
у меня такая картинка

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 19:15
nadiopt
ну ды надо сказать OK

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 20:26
olgagolubeva
я нажимаю ОК.
НО он выдает мне ошибку(см.картинку)

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 21:21
nadiopt
ааа ну я в таком случае использую band math хотя говорят что значения каналов можно вручную в hdr прописать

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 21:45
olgagolubeva
что писать в диалоговом окне

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 22:05
nadiopt
как в посте про bandmath
viewtopic.php?f=20&t=5620
а потом про бэнды он сам спросит

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 22:42
olgagolubeva
спасибо, вообщем что то получилось)Но картинка местности осталась прежней. Нужно что то дальше делать, чтоб получить картинку о существующей растительности и ее состоянии
Например получить такую же картину как (см.картинку)Изображение

Re: Индексы вегетации в ENVI

Добавлено: 14 мар 2011, 23:29
funkyman
а вы картинку то раскрашивали?