Вычисление энтропии Шеннона

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
aspirant-1
Активный участник
Сообщения: 127
Зарегистрирован: 04 май 2012, 21:23
Репутация: 12
Откуда: Пенза

Вычисление энтропии Шеннона

Сообщение aspirant-1 » 03 июн 2014, 15:33

Добрый час!

Стоит следующая задача: вычислить почвенное (а затем и ландшафтное) разнообразие в одном из ООПТ региона.

Почитал про различные способы, в основном пишут, что для решения подобных задач вычисляют энтропию Шеннона.

Поискал в интернете как ее вычисляют (Герасимов А.П. ЛАНДШАФТНЫЙ ПОДХОД В ФОРМИРОВАНИИ ЭКОЛОГИЧЕСКОГО КАРКАСА РЕГИОНА (на примере Курганской области), Пермь, 2006) и здесь)

Во втором источнике прописано следующее:

"Entropy is calculated as -sum(Pi*ln(Pi)) where; Pi is the probability of each landcover. In this case "probability" is referring to proportion of the class in relation to all the other classes. To calculate this you will need a raster for each class that represents the proportion of that class within the specified window. You would then apply a raster algebra statement to calculate entropy (H).

H = -1*( (lc1 * Ln(lc1) + (lc2 * Ln(lc2) + ...)

The expected maximized entropy is where a window is equally split between all classes or Ln(m) where; m is number of classes. You can get tricky with this method and test variable scales (window sizes)."

И в первом и во втором источниках сказано, что необходимо работать со скользящими окнами (по ним собственно и вопрос).

Работаем с ArcGIS Desktop (лицензия Advanced).

Итак, у меня есть шейп-файлы типов почв. Нарезал эти шейпы по созданной сетке (Crete Fishnet tool). Далее я конвертирую каждый шейп в растр.

Начинаю вычислять значение pi - делю каждый растр на общую площадь контуров (см. выше по англ.).

Складываю все растры с вычисленными значениями и получаю на выходе один растр с одним значением.

В причине разобрался. По видимому так получается, потому что вычисление идет не к скользящем окне, а по всем растрам.

Вопрос: как задать скользящее окно, чтобы вычисление энтропии проходило именно в нем???

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Вычисление энтропии Шеннона

Сообщение novia » 03 июн 2014, 16:27

как задать скользящее окно,
вам нужен инструмент focal statistics
понравилось? жми палец вверх :!:

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Вычисление энтропии Шеннона

Сообщение Максим Дубинин » 03 июн 2014, 16:28

пристегивайтесь, турбулентность прямо по курсу

aspirant-1
Активный участник
Сообщения: 127
Зарегистрирован: 04 май 2012, 21:23
Репутация: 12
Откуда: Пенза

Re: Вычисление энтропии Шеннона

Сообщение aspirant-1 » 04 июн 2014, 12:45

Спасибо! Про fragstat слышал и читал давно, однако, руководство требует решения задачи именно с использованием штатных средств ArcGIS (т.е. никаких fragstats и даже дополнительного инструмента Patch Analyst).

Пролистал дополнительно форум гис-лаба, наткнулся на очень интересные обсуждения вот тут и тут.

1. Может способы, предложенные в этих топиках помогут?

2. Если честно, я просто не совсем представляю на каком этапе использовать faocal statistics и какую, собственно статистику вычислять? суммарную (sum), среднюю (mean), median и др.?

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

aspirant-1
Активный участник
Сообщения: 127
Зарегистрирован: 04 май 2012, 21:23
Репутация: 12
Откуда: Пенза

Re: Вычисление энтропии Шеннона

Сообщение aspirant-1 » 04 июн 2014, 12:45

Вот как то так)

lam
Гуру
Сообщения: 1018
Зарегистрирован: 01 авг 2012, 13:55
Репутация: 241

Re: Вычисление энтропии Шеннона

Сообщение lam » 10 июн 2014, 12:14

aspirant-1 писал(а):Стоит следующая задача: вычислить почвенное (а затем и ландшафтное) разнообразие в одном из ООПТ региона.
Почвенное разнообразие представим как количество почв на единицу площади. Возможный алгоритм решения задачи:
1. Создать полигональную сетку необходимой размерности, например 30х30 метров
2. Шейп почв порезать полигональной сеткой (инструмент из тулбокса Intersect)
3. Посчитать количество почв в каждой ячейке и записать в таблицу атрибутов порезанного слоя почв (учесть тот момент, что в пределах одной ячейки могут быть дубли почв)
4. По уникальному полю присоединить информацию о количестве почв из порезанного слоя почв в слой полигональной сетки.
5. Конвертировать полигональную сетку в точечный слой центров полигонов.
6. В таблице атрибутов слоя точек вычислить поле "количество почв на единицу площади"
7. Интерполировать в растр слой точек по полю "количество почв на единицу площади" (необходим модуль Spatial Analyst)

aspirant-1
Активный участник
Сообщения: 127
Зарегистрирован: 04 май 2012, 21:23
Репутация: 12
Откуда: Пенза

Re: Вычисление энтропии Шеннона

Сообщение aspirant-1 » 12 июн 2014, 21:08

Всё получилось! Спасибо "lam" за помощь! Есть один нюанс: количество почв в каждой ячейке считал в MS Excel. Потом таблицу, с расчетом подвязал к слою порезанных почв.

Второй нюанс: если большое количество записей в таблице - не забывайте про ограничение в Excel'е

И, как говорилось выше, многое зависит от размера скользящего окна!

Ещё раз спасибо "lam"!

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя