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