Закріплення тисяч маленьких багатокутників, що перекриваються?


21

Я використовую ArcMap 10.3.

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

Користуючись відповіддю @ radouxju , я побудував топологію шару землекористування (з правилом не повинні перетинатися). Потім я використав злиття, щоб закріпити великі багатокутники, що перекриваються.

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

Чи є більш швидкий спосіб виправити всі ці помилки?

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

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


Я оновив карту, щоб показати всі типи використання земель. Полігони перекриваються один з одним; не слизери.


2

@Fezter Я не думаю, що тому, що багатокутники не мають однакової площі, і я не можу використовувати однаковий допуск XY для всього шару.
блискучий

1
@aelwan: Яка мета у цих даних? Чи створюєте ви ці дані, щоб їх використовували інші (як ніби ви є джерелом даних)? Або ви намагаєтесь «очистити його» для використання в карті чи аналізі? Причина, яку я запитую, - ці дані виглядають як дані про сміття. Це виходить за межі ГІС-аналізу, його потрібно повністю переосмислити, щоб хтось з владою (робочими знаннями) приймав обґрунтовані рішення щодо того, де мають бути ці межі. В іншому випадку я б просто залишив дані такими, які вони є.
alexGIS

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

Відповіді:


6

Занепокоєння, висловлене @Adam Cara, є дуже справедливим. Однак, коли я подивився на самоперетин, виявилося, що більшість з них є або худими бітами на межі між двома масивними багатокутниками, або роз'єднаними бітами / островами великого багатокутника, що сидить усередині іншого. У цьому випадку стирання накладок та призначення розпущених перекриттів атрибут найближчого сусіда (що станеться першим) може працювати.

Процес:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

Тест:

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

Повідомлення:

  • Виконання: Перетинайте "розчинено #" D: \ Scratch \ test.shp ВСЕ # ВХОД
  • Час початку: Пт 22 квітня 10:16:07 2016
  • Особливості читання ...
  • Особливості тріщин ...
  • Складання особливостей ...
  • ПОПЕРЕДЖЕННЯ 000117: Попередження генерує порожній вихід.
  • Успіх у пт. 22 квітня 10:16:09 2016 (минулий час: 2,34 секунди)

Зверніть увагу, що це повідомлення означає, що у висновку від остаточного Dissolve немає самопересічень

Результат:

https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing


1
Це рішення робить його "акуратним", але не "правильним". Якщо ОП не переймається тим, що територія, яка перетиналася з "Молочна продукція" та "Вівця / Яловичина", тепер віднесена до категорії "Будівництво / Парки / Інші", та інші подібні довільні перекатегорії, які я бачу при порівнянні вхідних даних із результатами, це рішення працює. Як сказано, це елегантний робочий процес, приємна робота.
alexGIS

1
З такими даними ніхто не знає, що правильне
FelixIP

7

Якщо ваші багатокутники є перемичками, команда delete добре працює, щоб об'єднати їх у полігон більшої площі або найдовший край.

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


Дякуємо за ваш час та допомогу. Мої багатокутники перекриваються. Щоб слідкувати за вашою відповіддю, як я можу виділити накладки на окремий шар? Перекриття відображаються як помилки області після того, як я побудував топологію.
блискучий

Просто запустіть Intersect ( resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//… ) на шарі полігонів. Результатом перетину будуть всі перекриття в цьому шарі.
iRfAn

@iRfAn Дякую, що я запускаю перехрестя і отримав перекриття.
блискучий

@Bryan Waller Я намагався виконувати те, що ви запропонували: я вибрав перекриття в окремий шар, використовуючи "перетинатися"; потім об'єднайте їх у "НЕ СТВОРЕНО НЕ СІЛЬВЕРІ". Після того, як я використав команду elim, я все ще можу знайти той самий багатокутник, який має два різні типи використання землі. Будь-яка допомога буде вдячна. Ви можете знайти шар землекористування тут goo.gl/0aE3wq
блискучий

6
  1. Виберіть невелику область та перетворіть у два файли форми, щоб побачити, чи працює цей процес.
  2. Створіть нове поле з назвою тест (число) у s1 та s2.
  3. Перетинають два файли форми S1 і S2.
  4. Області, що перекриваються, будуть ідентифіковані в окремому файлі, наприклад, з назвою Common1 (Зображена область на малюнку).
  5. Обчисліть польовий тест як 1 у загальному.
  6. Союз S1 та загальний
  7. Виберіть 1 введіть тут опис зображенняіз тестового поля та видаліть вилуплену область.
  8. Тепер Злиття s2 і загальне. Команда "Стерти" може бути використана для видалення загальної області.

@Shampe Дякую за допомогу. У мене перекриття знаходяться в одному файлі форми, а не в двох файлах форми.
блискучий

6

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

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


2
Ви порушуєте тут найважливіше питання: Як класифікувати перекриття? Якщо зробити дані "акуратними", це не означає, що вони "правильні".
alexGIS

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

Це може бути хорошою ідеєю з іншої причини. Перекриття можуть представляти зміни меж поля та обрізання з часом.
nmtoken

5

Після створення топології ви виявили помилки.

У списку, який відображає помилки, ви можете вибрати всі помилки одного типу, клацніть правою кнопкою миші на цьому списку та обравши «виправити». У вашому випадку виправленням було б "створити функцію", яка створить новий багатокутник, якщо два полігони перекриваються. Це перший крок (зауважте, що ви можете досягти подібного результату, використовуючи інструмент об'єднання з шаром використання землі як єдиним входом, потім інструментом з багаточастинним до одночасним (але тоді перекриття все одно перекриватимуться, тому вам потрібно видалити один із значення атрибута) або перетворити ваш багатокутник у рядки, потім повернутися до багатокутника (але тоді ви втратите атрибут, для відновлення атрибутів вам потрібно просторове приєднання))

Другий крок полягав би у видаленні невеликих багатокутників. Проблема полягає в тому, що ви насправді не маєте права визначати, яке значення атрибуту ви хочете зберегти. Мій улюблений інструмент - це інструмент усунення , де ви можете вибрати, до якого сусіднього багатокутника будуть об'єднані малі багатокутники (на основі найбільшої спільної межі чи найбільшої площі)

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


4

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

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


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

4

Одним із можливих рішень, якщо у вас є просторовий аналітик або 3D-аналітик, ви перетворите багатокутники наземного використання в растрове зображення, використовуючи інструмент (Перетворення полігону в растр), щоб переконатися, що полігони, що перекриваються, не вийдуть, оскільки ви не можете отримати пікселі, що перекриваються. Потім перетворіть растр назад у багатокутники за допомогою інструменту (Raster to Polygon), якщо він все ще потрібен у векторному форматі. У цьому випадку виберіть розмір комірок високої роздільної здатності (детальний розмір комірки), щоб отримати полігони хорошої якості, але вам потрібно врахувати пам'ять. Можливо, вам доведеться спробувати кілька разів, змінивши розмір комірки, поки ви не будете задоволені результатами. Можливо, вам доведеться виконати згладжування вихідних полігонів, якщо вони не є ідеальними, але це залежить від того, чи маєте ви хоча б стандартну ліцензію для ArcGIS Desktop. Я знаю, що це непросте завдання, але воно може вирішити вашу проблему.


4

Перевірте кілька прогалин або кілька перекриттів між полігонами, щоб знайти толерантність, і використовуйте Інтегральний інструмент від Arctoolbox з належними значеннями допуску.

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

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