Как ArcGIS Desktop рассчитывает ВНУТРЕННЮЮ точку для объекта от точки к точке?

11

Позвольте мне вернуться назад и сказать, что из того, что я понимаю, есть два распространенных способа вычисления центроида многоугольника в ArcGIS Desktop:

  1. Использование Calculate Geometry для полей в таблице атрибутов класса пространственных объектов.
  2. Использование Data Management -> Features -> Feature to Pointиз панели инструментов.

Оба они дают один и тот же результат - геометрический центроид многоугольника. Однако нет никакой гарантии, что точка лежит внутри многоугольника.

Инструмент Feature to Point имеет опцию внутри флажка, которая в соответствии с документацией:

Использует местоположение, содержащееся в объекте ввода, в качестве местоположения его выходной точки.

Я хотел бы знать, как эта точка рассчитывается ArcGIS Desktop и каков ее «теоретический» смысл, если это имеет смысл.

mindless.panda
источник
2
Учитывая общую неопределенность документации ESRI, вам, вероятно, придется перепроектировать процедуру путем тестирования. Когда я делал это с AV 3.x 15 лет назад, алгоритм был (1) найти геометрический центроид, а затем (2) переместить его горизонтально к ближайшей точке внутри многоугольника.
whuber
@whuber - в этом случае внутренняя точка может отличаться, даже если сам центроид находится внутри многоугольника, поэтому я думаю, что это совершенно другой расчет
mindless.panda
3
Этот пост на сайте ESRI интересен и, похоже, указывает на его черный ящик.
mindless.panda
Используя python в 9.3.1, я сравнил несколько возможных способов создания 'центроида'. Здесь можно увидеть ! на форумах ESRI.
SaultDon
@mindless В старом алгоритме, если центроид был внутри многоугольника, он, конечно, не был перемещен: он совпадает с ближайшей точкой внутри многоугольника. Тем не менее, сообщение на форуме , где вы нашли делает эту проблему спорное: ESRI изменил алгоритм. Я бы не сделал вывод, что это «совершенно другой», хотя. Это может быть просто уточнение старого. Однако обратный инжиниринг будет нелегким.
whuber

Ответы:

4

Алгоритмы являются собственностью, но здесь есть две основные концепции. Центроид использует алгоритм центра тяжести (есть много разных способов вычислить это). Флажок «изнутри» вычисляет центроид, но затем перемещает точку внутрь, если она выпадает наружу, как это желательно в некоторых случаях.

На уровне ArcObjects эти подходы определяются как Centroid и Label Point . См. Ссылку Centroid для примеров изображений.

Крейг Уильямс
источник
Хотя это не говорит нам о том, как рассчитывается внутренняя точка, оно говорит нам о ее синониме с точкой метки.
mindless.panda
1

Мы использовали ArcMap 10.3. Вычисляемый (1) объект, чтобы указать с внутренней опцией (2), объект, чтобы указать без внутренней опции (3) центроид, вычисляя геометрию.

Точки из (2) и (3) имеют общее местоположение, иногда эти точки находятся за пределами многоугольника. (1) создает точки внутри многоугольников, как и ожидалось, в основном совпадает с точками из (3) и (2). Иногда точки из (1) отличаются, даже если точки из (3) или (2) находятся внутри многоугольника (!): Мы не можем обнаружить необходимость пространственного сдвига для получения внутренней точки.

Смещенные точки из (1) не смещены строго в направлении WE или NS. Иногда излишне смещенные точки оказываются новыми для позиции, которая определенно не представляет точку притяжения и являются неожиданными.

Научная работа должна быть воспроизводимой. Мы не можем найти документацию для алгоритма или объяснить смещение, особенно там, где это не нужно. Таким образом, центроид ESRI-признаков не применим.

Christoph
источник