Як ArcGIS Desktop обчислює INSIDE точку для Feature to Point?


11

Дозвольте мені створити резервну копію і сказати, що, наскільки я розумію, існує два поширених способу обчислити центроїд багатокутника в ArcGIS Desktop:

  1. Використання Обчислити геометрію на полях у таблиці атрибутів класу характеристик.
  2. Використання Data Management -> Features -> Feature to Pointз панелі інструментів.

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

Інструмент «Feature to Point» має всередині прапорець прапорець відповідно до документації:

Використовує розташування, що міститься вхідною функцією, як своє місце вихідної точки.

Мені хотілося б знати, як обчислюється ця точка ArcGIS Desktop і в чому полягає її "теоретичне" значення, якщо це має сенс.


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.


Хоча це не говорить нам про те, як обчислюється внутрішня точка, вона вказує нам на її синонім позначки.
mindless.panda

1

Ми використовували ArcMap 10.3. Обчислена (1) функція для вказівки з внутрішньою опцією (2) функцією для вказування без внутрішнього варіанту (3) центроїда шляхом обчислення геометрії.

Точки з (2) і (3) ділять розташування, іноді ці точки знаходяться поза полігоном. (1) створює точки всередині багатокутників, як очікувалося, здебільшого ідентичні точкам з (3) та (2). Іноді точки з (1) різні, навіть там, де точки з (3) або (2) знаходяться всередині многокутника (!): Ми не можемо виявити необхідність просторового зсуву для отримання внутрішньої точки.

Зміщені точки від (1) суворо не зміщені в напрямку WE або NS. Іноді непотрібно зміщені точки розташовуються новими для позиції, яка точно не представляє точки сили тяжіння і є несподіваною.

Наукова робота потребує відтворення. Ми не можемо знайти документацію для алгоритму і не пояснити зсув, особливо там, де це не потрібно. Таким чином, центроїд із функцією ESRI не застосовується.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.