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

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

Добавлено: 03 июн 2014, 15:33
aspirant-1
Добрый час!

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

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

Поискал в интернете как ее вычисляют (Герасимов А.П. ЛАНДШАФТНЫЙ ПОДХОД В ФОРМИРОВАНИИ ЭКОЛОГИЧЕСКОГО КАРКАСА РЕГИОНА (на примере Курганской области), Пермь, 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 - делю каждый растр на общую площадь контуров (см. выше по англ.).

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

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

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

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

Добавлено: 03 июн 2014, 16:27
novia
как задать скользящее окно,
вам нужен инструмент focal statistics

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

Добавлено: 03 июн 2014, 16:28
Максим Дубинин

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

Добавлено: 04 июн 2014, 12:45
aspirant-1
Спасибо! Про fragstat слышал и читал давно, однако, руководство требует решения задачи именно с использованием штатных средств ArcGIS (т.е. никаких fragstats и даже дополнительного инструмента Patch Analyst).

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

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

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

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

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

Добавлено: 04 июн 2014, 12:45
aspirant-1
Вот как то так)

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

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

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

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

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

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

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