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

Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 09:49
WeMaN
Граждане, добрый день!
Задача такая.
1. Есть снимок WV-2
2. С помощью него в ENVI 5.3, на нужный участок, построил карту на основе индекса NDVI
3. В итоге получил растр со значением ячеек от -1 до 1
4. Дело в том, что значения больше 0,8 на данном растре не нужны
5. С помощью маски в ENVI 5.3 удалил с растра все значения от 0,8 до 1
6. В итоге получил растр с "дырками"
7. Задача такая, как внутри этих дырок интерполировать значения рядом расположенных ячеек
8. Софт есть как ENVI 5.3, так и GM, ArcGIS и QGIS
9. Формат растра исходный формат ENVI, но при желании его можно конвертнуть хоть в TIFF, хоть во что.
10. Пример растра скинуть не могу, ограничен в возможностях интернета (пишу с телефона)

Спасибо за внимание! Если что не написал, уточню, спрашивайте :wink:

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 10:30
jerry-maori
ну технически в GDAL (вроде) есть fill hole в растре.
Но как-то сама задача странно выглядит.

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 10:42
freeExec
Может тогда не удалять, а заменить всё на 0,79

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 13:45
WeMaN
jerry-maori писал(а):
26 дек 2017, 10:30
ну технически в GDAL (вроде) есть fill hole в растре.
Но как-то сама задача странно выглядит.
ну почему странно, не использовать же растр с дырками?
Ничего необычного тут нет, вот есть для ENVI утилита, которая убирает известные всем диагональные полосы в Landsat 7, Вот ссылка - https://yceo.yale.edu/how-fill-gaps-landsat-etm-images
По идее должен быть инструмент который делает это для разных растров. Чисто технически, можно сделать растр 2 вектор, получить полигоны или точки, сделать GRID, применить в ArcGIS какой то метод интерполяции (кригинг, IDL) и получить растр. Но как то это уж очень заморочено, задача не сложная. Вот наподобие решения есть, см. ссылку выше. К сожалению работает только с L7...
freeExec писал(а):
26 дек 2017, 10:42
Может тогда не удалять, а заменить всё на 0,79
Нет ну вы что, там же не всегда рядом лежащий пиксель равен 0,79!

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 14:06
jerry-maori
полосатость ландсата - дык там вроде сенсор протух слегка.. т.е. это артефакт строго инородного по отношению к системе происхождения..
а раз уж получили значения -- то с ними и жить надо.
есть инструмент...
http://www.gdal.org/gdal_fillnodata.html

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 14:15
alexandr cherepanov
Envi Classic
Topographic ->Replace Bad Values

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 14:18
lam

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 15:03
gamm
WeMaN писал(а):
26 дек 2017, 13:45
Нет ну вы что, там же не всегда рядом лежащий пиксель равен 0,79!
так вы еще хуже хотите поступить, заменить правильные (расчетные) значения неизвестно чем из соседних пикселей.

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 15:12
MYS
Постановка вопроса в варианте ТС в принципе возможна, если предполагается, что значения>0.8 не отражают на самом деле свойства NDVI на поверхности.

Например, есть лужок, на нем стоят зеленые шатры. У шатров NDVI >0.8, но нам хочется получить непрерывную поверхность для лужка, в том числе, под шатрами.

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 16:56
Natalia Novoselova
WeMaN писал(а):
26 дек 2017, 09:49
4. Дело в том, что значения больше 0,8 на данном растре не нужны
5. С помощью маски в ENVI 5.3 удалил с растра все значения от 0,8 до 1
А чего снимок, если не секрет?

Значения NDVI от 0.8 до 1 - могут быть лишь на очень хороших и мощных тропических лесах. Где-то так ненарушеннная Амазонская сельва. Деградированные тропические леса - уже на границе 0.8 и его меньше.

И вам такие территории "не нужны"?

Но я сомневаюсь, что вы картируете тропические леса. Тогда что дает у вас такое высокое значение NDVI? Вы уверены, что ничего не напутали с созданием самой карты? ИМХО, в пределах России NDVI не должно уходить выше 0.8..
пусть специалисты меня поправят, если я не права.

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 17:14
nadiopt
не люблю индексов, но вот в этой статье: http://gis-lab.info/qa/ndvi.html - за 0.8 вылетают и хвойно-широколиственные, как и лиственные леса, то есть явно не только тропики

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 17:29
Natalia Novoselova
nadiopt писал(а):
26 дек 2017, 17:14
но вот в этой статье:
Где об этом сказано в этой статье? Там вообще нет упоминаний типов леса, и нет слов, что хвойно-широколиственные и лиственные леса имеют NDVI>0.8

Может быть, какая-то другая статья имелась в виду? Это совсем общая, там нет таких деталей. А все данные взяты почти из мануалов.

Научные статьи могли бы это сказать, но я не помню значений NDVI для лесов умеренных широт.

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 26 дек 2017, 18:11
jerry-maori
NDVI -- величина мало того, что механистическая, так ещё и достаточно колдунская...
Имхо надо не пикселя выбрасывать, а сначала разобраться -- с чего бы банька то сгорела (в смысле почему там не может быть выше 0.8 и почему в данной точке выше).. может в этих якобы аутлаерах вааще весь смысл и цимес зашит...

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 27 дек 2017, 09:01
WeMaN
Граждане!
Сначала по теме вопроса
Я обязательно с вами подискутирую по поводу значения выше 0,8, но давайте не будем углубляться в частности.
Вопрос звучит ведь, не "какой объект может быть выше 0,8", правильно?
Стоит задача - интерполировать в "дырки" которые no data, значения полученные по расчётам какого - нибудь алгоритма интерполяции, чтобы картинка не была рваной.
Для примера, я вам привёл ситуацию с Landsat 7, где по сути такая же задача была, есть полосы no data и в них интерполируются значения.
К слову, хорошо работает та утилита, для L7, я в своё время пользовался.
Так вот, интересно, есть ли такой инструмент и для других задач, не связанных с Landsat 7 :) А именно чтобы закрыть "дырки".
Спасибо alexandr cherepanov и lam за инструменты, буду пробовать, о результатах доложу.

Уважаемые, Natalia Novoselova и nadiopt я уже давно на форуме, и насколько знаю, у вас достаточно богатый опыт работы с космоснимками, и с растрами в частности, вы ни разу не сталкивались с заполнением no data на растре интерполированными значениями?

Re: Интерполяции растра (полученного по индексу NDVI)

Добавлено: 27 дек 2017, 09:33
Игорь Белов
Вы желаете странного. Вот модельный профиль поля NDVI в Вашей интерпретации:
img_20171227_093438.png
img_20171227_093438.png (3.98 КБ) 9448 просмотров
Ни о каком интерполировании не может быть и речи, вместо дырок должны быть значения 0,8. Выше freeExec уже озвучил эту простую истину.
И задача в случае Landsat 7 по сути совершенно другая.