Вычисление энтропии Шеннона
-
- Активный участник
- Сообщения: 127
- Зарегистрирован: 04 май 2012, 21:23
- Репутация: 12
- Откуда: Пенза
Вычисление энтропии Шеннона
Добрый час!
Стоит следующая задача: вычислить почвенное (а затем и ландшафтное) разнообразие в одном из ООПТ региона.
Почитал про различные способы, в основном пишут, что для решения подобных задач вычисляют энтропию Шеннона.
Поискал в интернете как ее вычисляют (Герасимов А.П. ЛАНДШАФТНЫЙ ПОДХОД В ФОРМИРОВАНИИ ЭКОЛОГИЧЕСКОГО КАРКАСА РЕГИОНА (на примере Курганской области), Пермь, 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 - делю каждый растр на общую площадь контуров (см. выше по англ.).
Складываю все растры с вычисленными значениями и получаю на выходе один растр с одним значением.
В причине разобрался. По видимому так получается, потому что вычисление идет не к скользящем окне, а по всем растрам.
Вопрос: как задать скользящее окно, чтобы вычисление энтропии проходило именно в нем???
Стоит следующая задача: вычислить почвенное (а затем и ландшафтное) разнообразие в одном из ООПТ региона.
Почитал про различные способы, в основном пишут, что для решения подобных задач вычисляют энтропию Шеннона.
Поискал в интернете как ее вычисляют (Герасимов А.П. ЛАНДШАФТНЫЙ ПОДХОД В ФОРМИРОВАНИИ ЭКОЛОГИЧЕСКОГО КАРКАСА РЕГИОНА (на примере Курганской области), Пермь, 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: Вычисление энтропии Шеннона
вам нужен инструмент focal statisticsкак задать скользящее окно,
понравилось? жми палец вверх 

- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
-
- Активный участник
- Сообщения: 127
- Зарегистрирован: 04 май 2012, 21:23
- Репутация: 12
- Откуда: Пенза
Re: Вычисление энтропии Шеннона
Спасибо! Про fragstat слышал и читал давно, однако, руководство требует решения задачи именно с использованием штатных средств ArcGIS (т.е. никаких fragstats и даже дополнительного инструмента Patch Analyst).
Пролистал дополнительно форум гис-лаба, наткнулся на очень интересные обсуждения вот тут и тут.
1. Может способы, предложенные в этих топиках помогут?
2. Если честно, я просто не совсем представляю на каком этапе использовать faocal statistics и какую, собственно статистику вычислять? суммарную (sum), среднюю (mean), median и др.?
Пока просто не представляю как этот инструмент применить. Ну есть шейпы, ну нарезаны они на ячейки, ну сконвертировал я их в растры, а дальше? Вот тут и вопрос...
Пролистал дополнительно форум гис-лаба, наткнулся на очень интересные обсуждения вот тут и тут.
1. Может способы, предложенные в этих топиках помогут?
2. Если честно, я просто не совсем представляю на каком этапе использовать faocal statistics и какую, собственно статистику вычислять? суммарную (sum), среднюю (mean), median и др.?
Пока просто не представляю как этот инструмент применить. Ну есть шейпы, ну нарезаны они на ячейки, ну сконвертировал я их в растры, а дальше? Вот тут и вопрос...
-
- Активный участник
- Сообщения: 127
- Зарегистрирован: 04 май 2012, 21:23
- Репутация: 12
- Откуда: Пенза
Re: Вычисление энтропии Шеннона
Вот как то так)
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: Вычисление энтропии Шеннона
Почвенное разнообразие представим как количество почв на единицу площади. Возможный алгоритм решения задачи:aspirant-1 писал(а):Стоит следующая задача: вычислить почвенное (а затем и ландшафтное) разнообразие в одном из ООПТ региона.
1. Создать полигональную сетку необходимой размерности, например 30х30 метров
2. Шейп почв порезать полигональной сеткой (инструмент из тулбокса Intersect)
3. Посчитать количество почв в каждой ячейке и записать в таблицу атрибутов порезанного слоя почв (учесть тот момент, что в пределах одной ячейки могут быть дубли почв)
4. По уникальному полю присоединить информацию о количестве почв из порезанного слоя почв в слой полигональной сетки.
5. Конвертировать полигональную сетку в точечный слой центров полигонов.
6. В таблице атрибутов слоя точек вычислить поле "количество почв на единицу площади"
7. Интерполировать в растр слой точек по полю "количество почв на единицу площади" (необходим модуль Spatial Analyst)
-
- Активный участник
- Сообщения: 127
- Зарегистрирован: 04 май 2012, 21:23
- Репутация: 12
- Откуда: Пенза
Re: Вычисление энтропии Шеннона
Всё получилось! Спасибо "lam" за помощь! Есть один нюанс: количество почв в каждой ячейке считал в MS Excel. Потом таблицу, с расчетом подвязал к слою порезанных почв.
Второй нюанс: если большое количество записей в таблице - не забывайте про ограничение в Excel'е
И, как говорилось выше, многое зависит от размера скользящего окна!
Ещё раз спасибо "lam"!
Второй нюанс: если большое количество записей в таблице - не забывайте про ограничение в Excel'е
И, как говорилось выше, многое зависит от размера скользящего окна!
Ещё раз спасибо "lam"!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя