Видалення лише полігонів з пончиками за допомогою ArcGIS Desktop?


15

Я використовую ArcGIS Desktop 10.0.

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

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


4
Я проголосував за те, щоб це питання було відкритим, тому що я вважаю, що ОП намагається видалити деякі, але не всі пампушки. Він шукає спосіб зберегти деякі з них.
Фестер

Спасибі! Я додав імідж, сподіваюся, що все прояснить. Я не можу йти вперед і видаляти більші площі, перш ніж об’єднати все разом, тому що я можу випадково видалити основні багатокутники (сам зелений).
Араш

1
Дуже схоже на Як видалити невеликі багатокутники «сіль та перець» із шару? , але з використанням QGIS-процесу. Можливо, ви могли б працювати з дуже подібними процесами в ArcGIS.
RyanKDalton


Відповіді:


24

Я б спробував інструмент Union з NO_GAPS:

NO_GAPS - Буде створена функція для областей у виході, повністю закритих полігонами. Ця функція матиме порожні атрибути.

Потім ви можете вибрати функції з порожніми атрибутами нижче порогового розміру та обчислити їх атрибути, які будуть такими ж, як оригінальний багатокутник - або скопіювати / вставити їх у вікно Редактор атрибутів.

Особливості з порожніми атрибутами вище порогового розміру слід видалити.

Звідти інструмент Dissolve повинен виконати завдання.


1
як ви "обчислюєте [новий пончик полі] таким, як оригінальний [містить] багатокутник"? У них немає спільних значень атрибутів, тому їх не можна приєднати. Звідки Island poly C знає, що він повинен набувати нових значень attrib з (містять) озера Poly A та ігнорувати (десь ще) Lake poly B?
matt wilkie

Я не робив недавнього тесту, але "новий пончик полі" - це "оригінальний [містить] багатокутник". Якщо є декілька таких багатокутників з пончиками, які обробляються масово, тоді потрібно буде позначати невеликі отвори пончикним полігоном, який вони потрапляють всередину.
PolyGeo

8

Рішення PolyGeo - це те, у кого я працював і працюю добре (+1). Іншою альтернативою є буферність ваших полігонів невеликою кількістю, а потім де-буферний результат на ту саму кількість (скажімо + 1м, а потім -1м). Це також добре працює, але несе невеликий ризик випадкового приєднання полігонів, які сусіда, на стільки ж, як і ваш буфер. Це також може збільшити кількість вершин (що може бути або не бути проблемою).

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


5

У ArcToolbox можна скористатись інструментом "Елімінація частини багатокутника" (Інструменти управління даними -> Узагальнення). Ви можете вказати мінімальну площу отвору / відсоток для видалення.


1
Для цієї функції потрібен рівень ліцензії Advanced / ArcInfo.
Мартін

Я спробував інструмент Eliminate Polygon Part, в ArcGIS Pro 2.0. Але це не мало нічого для функції багатокутника, яку я тестував. У функції було кілька внутрішніх кілець, і я хочу, щоб вони всі зникли. Чи працює цей інструмент лише в тому випадку, якщо функція складається з багаточастинної геометрії?
Майк Фінч

Не тільки". Він також працює одинарними багатокутниками з отворами.
Кадір Şahbaz

4

Ось ще один спосіб видалення озер з полігонів (наприклад, шар зіштового коду з Navteq). Це також корисно для очищення шарів карти території, які були створені шляхом розчинення шару карти поштового індексу кодом території.

  1. Використовуйте географічну обробку "Союз" на шарі карти багатокутника та зніміть прапорець "Дозволені пропуски" (це встановлено за замовчуванням.) Це створить багатокутники для всіх отворів "пончиків" у полігонах.
  2. У отриманому шарі карти Союзу додайте поля для ID, X та Y. Ідентифікатор повинен бути окремим від імені / ідентифікатора полігонів, у яких є отвори для пончиків, які ви хочете видалити.
  3. У таблиці атрибутів використовуйте калькулятор поля для обчислення ідентифікатора з поля ObjectID та використовуйте "Обчислити геометрію" для заповнення значень X та Y.
  4. Відокремте багатокутники з пончиками від інших багатокутників, вибравши (Вибрати за атрибутами) ті, де поле імені є нульовим.
  5. Експортуйте вибрані записи в нову таблицю. (Випадкові параметри таблиці -> Експорт ...)
  6. Використовуйте параметр "Додати XY", щоб створити шар події. (Шар правої кнопки миші -> Відображення даних XY ....
  7. Експортуйте шар події в новий клас функцій. (клацніть правою кнопкою миші -> Дані -> Експорт даних)
  8. Зробіть просторове з'єднання між новим точковим шаром та шаром картографії ОРИГІНАЛЬНОГО полігону, у якому немає полігонів пончика. Використовуйте варіант "найближчий", щоб назва навколишнього багатокутника додалася до таблиці атрибутів пончикових полігонів.
  9. Використовуйте стандартну таблицю з'єднання між об'єднаним точковим шаром та отриманим шаром карти з Союзу (на основі поля ідентифікатора). (Шар правої кнопки миші -> Приєднується і відноситься -> Приєднатися -> Приєднати дані з іншого шару на основі просторового розташування)
  10. Використовуйте калькулятор поля в таблиці атрибутів, щоб обчислити нульові імена багатокутника з шару з'єднаних точок.
  11. Запустіть геопереробку «Розчинити» на основі назви багатокутника, щоб об’єднати багатокутники з пончиками з більшим названим багатокутником.

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


3

Якщо полігони класу характеристик містять інші багатокутники того ж класу характеристик (наприклад, Лесото всередині Південної Африки), і якщо вам потрібно усунути ручне редагування на користь ModelBuilder тощо, використання "Усунути частину полігону" є найшвидшим рішенням. Налаштування інструмента:

- "Умова (необов'язково)" = AREA - "Площа (необов'язково)" = дуже велика кількість (скажімо, 1е + 100) - "Усуньте лише деталі, що містяться (необов'язково)" = [позначено]

Це дозволить отримати Південну Африку, в якій заповнена зона Лесото, необхідна для робочих процесів, таких як виведення вершин для використання в полігонних візуалах в Табау.


1

Оскільки про це не згадували дотепер, і, здається, це правильний інструмент для того, що саме ви намагаєтеся досягти: Агрегати полігонів

Встановіть minimal_hole_size на мінімальний розмір отвору на багатокутнику, який ви хочете зберегти. Менші будуть ліквідовані.

Необов'язкове значення minimal_area в тому ж інструменті робить те ж саме для частин багатокутника, які не є отворами.

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