Групування суміжних багатокутників, що торкаються кутів, за допомогою ArcGIS Desktop?


12

Використовуючи ArcGIS 10, у мене є клас функцій, який я перетворив з растрового (GRID) (інструмент растрового в багатокутний).

  • Є бл. 180 000 багатокутників.
  • Таблиця атрибутів містить поле [grid_code], яке мені потрібно зберегти.
  • Якщо один або більше многокутників суміжні з торкаються кутами І вони мають однакове значення [grid_code], то я хотів би згрупувати їх (в основному розчинити) в один многокутник (запис).
  • Тоді мені потрібно обчислити площу згрупованого багатокутника.

Використовуючи інструмент Select By Location, я можу успішно вибрати багатокутники, які мені потрібні для групування, але як потім перетворити їх у ОДНИЙ багатокутник, зберігаючи [grid_code]?


3
Чи розглядали ви запускати команду Region Group перед перетворенням растру на багатокутники?
Кірк Куйкендалл

1
Кірк абсолютно правий: ви хочете зробити цей розрахунок за допомогою оригінальної сітки, де це буде швидко та ефективно, а не у форматі вихідного вектора, де це буде повільно та болісно.
whuber

2
Дякую Кірк і Білл. Так, Група регіонів - це правильний інструмент. На жаль, використання регіональної групи на моєму великому наборі даних викликає горизонтальну смужку, відому помилку просторового аналітика. Ці смуги були задокументовані ще в грудні 2009 року, але зараз, використовуючи ArcGIS 10, ці проблеми ВИНАГО існують. Ви можете прочитати все про це тут: [посилання] ( forums.arcgis.com/threads/… ) Моя робота полягає в тому, щоб записати вихідний інструмент від групи регіонів на старий старомодний робочий простір ArcInfo як GRID. Це, здається, виправить!
mjn

Без цього обходу, і враховуючи помилку RegionGroup, вам доведеться провести розрахунок фокусного розмаху 2x2, щоб визначити потенційні кути (сорт повинен бути 3 або 4), а потім використовувати їх для створення таблиці потенційних куточків до кутові зв’язки між багатокутниками, які могли б (значно) впорядкувати пошук багатокутників, що торкаються кутів. Який біль ...
блукання

Майте на увазі, що якщо багатокутники поділяють лише одну вершину, ви вводите самоперетин і тим самим знецінюєте геометрію.
Джим Б

Відповіді:


2

Ви можете розчинити суміжні багатокутники із загальними значеннями id, скориставшись інструментом Dissolve .

  1. Виберіть поле Grid code як своє "Dissolve_Field (необов'язково)"
  2. У нижній частині форми інструменту поставте прапорець "Нерозкладені лінії (необов’язково)".
  3. Створіть поле області
  4. Клацніть правою кнопкою миші поле області та виберіть Розрахувати геометрію

2

Це багато багатокутників. Я б також знайшов рішення у растровому форматі спочатку, коли з топологією простіше обробляти. Але якщо ви не хочете писати код, ви можете:

  1. Виберіть заданий код сітки.
  2. буфер цього сіткового коду дуже невеликою кількістю (опція об'єднаних буферів)
  3. буферний результат негативно тим самим дуже малим приблизно.

У геометрії буде незначне округлення.

Щоб створити один шар, переріжте отримані шари кодової сітки та очистіть, щоб видалити багатокутники.


-1

Я особисто писав би код, який прокручується через багатокутники, і перевіряв, чи 4 кутових координати багатокутника є такими ж, як і будь-які інші кути багатокутника, і рекурсивно називаю його - заповнення заповнення як такого.

Я роблю це з сітками netCDF для створення відповідних подібних багатокутників.

Іншим варіантом було б прогаматично зробити це в корені за допомогою сітки.


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