я еще совсем неопытный пользователь данной материи, но порывшись в нэте нашел вот такую функцию:
FUNCTION_NDVI cala.b1,b2
NDVI_float=(float(b1)-b2)/(float(b1)+b2)
b1=BYTSCL(NDVI_float,min= -1.0, max= 1.0)
RETURN, b1
END
пробовал вставить -ничего не получается - значит неправильная функция
напишите пожалуйста,как она правильно пишется, и если можно подскажите литературу или сайт , где можно глянуть примеры написания формул под индексы!!!
NDVI можно рассчитать через стандартные инструменты Transform -> NDVI
Spectral -> Vegetation Analysis -> Vegetation Index Calculator
либо просто через band math выражение (float(b4)-b3)/(float(b4)+b3), где b4 - ближняя ИК зона, b3 - красная зона
необходимости в написание функции здесь нету
если же вам все таки нужна функция то ту, которую вы пытались запустить, можно записать в виде:
FUNCTION NDVI_byte, b3, b4
NDVI_float=(float(b4)-b3)/(float(b4)+b3)
NDVI_byte=BYTSCL(NDVI_float, min= -1.0, max= 1.0)
RETURN, NDVI_byte
END
Запускается через Band Math выражением
NDVI_byte(b3, b4)
Просто NDVI
FUNCTION NDVI_float, b3, b4
NDVI_float=(float(b4)-b3)/(float(b4)+b3)
RETURN, NDVI_float
END
Запускается через Band Math выражением
NDVI_float(b3, b4)
Последний раз редактировалось alexandr cherepanov 14 мар 2011, 16:56, всего редактировалось 1 раз.
Причина:Исправление формул (float(b4)-b3)/(b4+b3) на (float(b4)-b3)/(float(b4)+b3)
снимок с обычного WV не может быть использован для расчета NDVI, т.к. в нем всего 1 канал, а нужно что бы их было 2 - красный и инфракрасный. Судя по нумерации каналов в примере, он создан для данных Landsat, т.к. именно в нем каналы 3 и 4 соотвествуют К и ИК.
Ошибка 'Wavelenghs must be defined to calculate vegetation indeces" означает именно то, что в ней написано - у каналов не проставлен спектральный диапазон длин волн, вернее их средняя (а может медиана, точного описания не встречал). Из-за этого стандартная функция не знает какие два канала надо взять расчетов.
Здравствуйте, при расчете NDVI с помощью функции band math по формуле ((float(b1)-float(b2))/(b1+b2)), значения индекса получаются намного выше и ниже единицы. не подскажите с чем это может быть связано??? и как избавиться от этих значений?
В общем ошибка с этим выражением возникает при использование байтовых величин.
То есть если вы считаете индекс по сырым данным Ландсат, то сумма Красного и БИК для некоторых объектов вполне может перевалить за 255 и получается ошибка в расчете значения для этого пиксела.
Во избежание проблем вернемся к старому длинному написанию с перестраховкой
(float(b4)-float(b3))/(float(b4)+float(b3))
или можно более короткий вариант
(float(b4)-b3)/(float(b4)+b3)
я вложила рисунок, и судя по Available band list в этом снимке вроде бы 4 канала!?
Что тогда нужно сделать предварительно (и каким образом), чтоб расчитать NDVI, сделанный со спутника WV
И еще вопрос: расчет индекса NDVI со спутников WorldView и QuickBird будет по одинаковому принципу
так что за WV? и какие его каналы вам достались? числом их действительно 4, но почему же тогда у них нет спектральных характеристик?
Должны вот так выглядеть:
В стандартной поставке WorldView-2 действительно четыре канала. Восемь поставляется по запросу. Но на рисунке olgagolubeva не видно какие именно каналы использованы.