Количественная оценка неравномерности границ полигонов?

13

У меня есть два полигона: Полигон 1 и Полигон 2.

Используя две метрики, площадь и длину периметра, я хочу количественно выразить, что у Полигона 1 периметр неровный / неровный / нерегулярный, чем у Полигона 2.

введите описание изображения здесь

Каждый многоугольник имеет одинаковую длину периметра, но каждый покрывает совершенно разные области. Для количественной оценки неравномерности / неровности / нерегулярности каждого полигона следует рассчитать следующее:

area/perimeter 

или

perimeter/area 

Я думал perimeter/area, но потом я нашел этот пост в блоге, который использует area/perimeter: http://www.r-bloggers.com/measuring-the-gerrymander-with-spatstat/

Лучиано
источник
7
Ни одно из этих соотношений не имеет смысла, поскольку они оба зависят от единиц измерения. Вы можете сделать их независимыми от единиц, сформировав из них однородную функцию нулевой степени, например, периметр / площадь (площадь). Такие измерения часто называют «извилистостью». Некоторые другие подходы можно найти, выполнив поиск на нашем сайте о извилистости .
whuber
В чем вопрос? F1 (X) / F2 (Y) или F2 (Y) / F1 (X) не являются разными мерами, точно так же, как a не отличается от 1 / a.
BradHards
1
@Bradhards Многие люди утверждают, что a и 1 / a - это разные способы выражения одной и той же базовой величины, даже если между ними существует математическая связь. Нелинейность этого соотношения следует , это не просто смена единиц. Эти два выражения следует считать действительно разными, так же как (скажем) логарифмическая концентрация и концентрация - это разные способы выразить концентрацию, или мили на галлон и галлоны на милю - это существенно разные способы выражения экономии топлива. (И обратите внимание, что галлоны за милю будут трактоваться как расточительность , а не как «экономия».)
whuber

Ответы:

3

Взгляните на программу под названием FRAGSTATS ( http://www.umass.edu/landeco/research/fragstats/downloads/fragstats_downloads.html ). В разделе метрик патчей упоминается «Индекс измерения фракталов», который в примечаниях гласит «Индекс измерений фракталов привлекателен, потому что он отражает сложность формы в диапазоне пространственных масштабов (размеров патчей). Таким образом, как и индекс формы (SHAPE), он преодолевает одно из основных ограничений отношения площади прямого периметра как меры сложности формы ». ( http://www.umass.edu/landeco/research/fragstats/documents/Metrics/Shape%20Metrics/Metrics/P9%20-%20FRAC.htm ).

user14134
источник
Я бы добавил, что формула для расчета индекса фрактальной размерности выглядит простой для вычисления без необходимости использования самого программного обеспечения FRAGSTATS. Формула приведена в ссылке выше. Индекс фрактальной размерности приближается к 1 для фигур с очень простыми периметрами, такими как квадраты, и приближается к 2 для очень сложных фигур.
user14134
1

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

Чтобы вычислить "неровность", я думаю, вам нужно знать, сколько вершин находится под углами, превышающими 180 градусов. Это не должно быть слишком сложно для расчета, если вы используете хранилище геометрии, где известно направление вращения многоугольника (обычно против часовой стрелки, и в этом случае, если вы переходите от точки 1 к точке 2, угол превышает 180 градусов, если точка 3 находится справа от линии, определенной пунктами 1 и 2). В противном случае вам нужно сначала определить вращение.

Рассел в ISC
источник
Это в основном то, что я думал. Какой-то «отсчет» острых углов по периметру.
Балток
1
Проблема с этим предложением состоит в том, что оно зависит от того, как форма представлена больше, чем от самой формы, что делает ее произвольной и ненадежной. Например, можно заменить каждую острую точку формы последовательностью из двух очень близко расположенных вершин, имеющих углы менее 180 градусов, без видимой модификации формы. Важность этого ответа заключается в том, чтобы указать, что на этот вопрос нельзя ответить, не имея оперативного описания того, что «зубчатость» должна означать.
whuber
Я предполагаю, что «зубчатый» означает «с вогнутостью». Вышеуказанный пример с зазубринами имеет ряд вогнутостей. Принимая это как функциональное описание, невозможно создать вогнутость в многоугольнике без создания угла, который больше 180 градусов относительно направления вращения вершин многоугольника
Рассел на ISC
Я также предполагаю, что многоугольник не является самопересекающимся.
Рассел на ISC
1
@ Рассел Это хорошо, но все равно не работает. «Вогнутость» может быть представлена ​​единственной вершиной или последовательностью из тысяч близко расположенных вогнутых вершин (что происходит, например, когда объект создается путем вычитания буферов других объектов). Еще раз, проблема в том, что ваше предложение зависит от нерелевантных деталей представления формы, а не от присущих ей свойств самой фигуры. Этого можно преодолеть многими способами, оценивая фрактальную размерность или полную абсолютную кривизну и т. Д. , Но ваш ответ, похоже, не идет в этом направлении.
whuber
1

Попробуйте индекс нормализованного периметра ( http://clear.uconn.edu/tools/Shape_Metrics/ ). Индекс нормализованного периметра использует круг равной площади для нормализации метрики. Таким образом, формула является эффективной (в Python, импорт математика)normPeriIndex = (2*math.sqrt(math.pi*Area))/perimeter

Для вашего примера:

Полигон 1: нормализованный индекс периметра = 0,358

Полигон 2: нормализованный индекс периметра = 0,947

Нормализованный индекс периметра сравнивает входной периметр с наиболее компактным многоугольником с той же площадью (круг равной площади), то есть вы можете использовать его для идентификации объектов с нерегулярными границами. Еще одна замечательная вещь заключается в том, что это легко и быстро рассчитать.

Вы также можете посмотреть на нормированную дисперсию, которая рассчитывает среднее расстояние от точек по периметру от центроида (дисперсия). Для этого вы также рассчитаете отклонение, которое представляет собой среднюю разницу между каждым расстоянием и радиусом круга равной площади, тогда окончательная формула будет (дисперсия - отклонение) / дисперсия.

CRLD
источник