Як ідентифікувати багатокутники з помилками повзунка “прапор”


12

Працюючи в ArcMap, я натрапив на помилки в шарі багатокутника, який я буду називати "слайверами прапорів" (взяті з аналогічної мови в посилках називають "лотами прапорів"). Ці багатокутники заслінки (див. Зображення нижче), як правило, складаються лише з одного додаткового вузла, який випадково додав користувач.

На наведених нижче зображеннях "прапор" та "флагшток" є однією частиною, в якій "флагшток" просто перекривається. Зображення ліворуч загалом має 5 вузлів.

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

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

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

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


3
Цікаво, чому Есрі передбачає правило, яке не потрібно перетинати для ознак ліній, а не для багатокутників.
Кірк Куйкендалл

Чи знаходить їх інструмент «Перевірка геометрії»?
mkennedy

Також шукайте в повісі та перестрілці. Обидва виробили деякі архрипти, але нічого актуального та багато для поліліній, а не багатокутників.
mkennedy

Раян, чи можна було б надати підмножину даних? Також ви випадково досліджували коментар mkennedy щодо інструменту "Перевірити геометрію"?
Аллан Адаїр

Яка версія arcmap?
Кірк Куйкендалл

Відповіді:


5

якщо у вас є доступ до інструментів Safe Fme, ви знайдете корисним трансформатор під назвою spikeRemover, подивіться на нього. Ви можете спробувати обмежену версію SAFE FME, яку можна завантажити, або перевірити свою ліцензію ArcGis на "Розширення FME для ArcGIS"

http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm

http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf


Мені вдалося успішно використовувати SpikeRemover в розширенні ArcGIS Data Interop для очищення шипів. Він також має виходи, які дозволяють задавати незмінені, змінені та позначені функції (шипи). Все це було дуже зручним у виявленні особливостей, що мали шипи, і створити новий шар "без колосків" було дуже просто, просто розмістивши як незмінені, так і змінені виходи на одному шарі, і "позначений" вихід на рівень QC для подальшої перевірки. esri.com/software/arcgis/extensions/datainteroperability/…
RyanKDalton

2

Я не впевнений, де виникає ваша проблема чи де ви маєте можливість її уникнути / виправити. Але я багато чого бачив у нашій базі даних SDE, хоча геометрії в SDE завжди повинні бути правильними. У нашому випадку це було тому, що ми імпортували форми файлів за допомогою ArcObjects в SDE. Коли геометрії були збережені, вони підключилися до сітки SDE і, таким чином, створили неправильні геометрії зі слайсами, які ви описуєте, коли геометрія мала тонкий шип. Це тому, що формати мають повну подвійну точність координат, а SDE - більш грубу сітку.

Нашим рішенням було виправити геометрії, коли вони були імпортовані шляхом:
1. Встановити просторовий довідник геометрії з
файлу форм до просторового посилання відповідного класу функцій SDE 2. Прив’язати геометрію до просторової посилання (IGeometry.SnapToSpatialReference () )
3. Встановіть ITopologicalOperator2.IsK knownSimple = false (важливо, інакше спрощення нічого не робить)
4. Виконайте деяку спрощену операцію. Для багатокутників ми використовували IPolygon.SimplifyPreserveFromTo ()


2

За допомогою arcmap 9.3.1 я б додав поле під назвою Flag (або, можливо, FlagFlag?) І використав VBA-код у польовому калькуляторі для обчислення цього поля.

Код VBA затьмарить змінну як ITopologicalOperator3 і встановить її в поле Shape.

Тоді він би викликав не дуже простий метод IsSimpleEx .

Встановіть значення поля Прапор значення esriNonSimpleEnum . Імовірно, повернеться помилка, яку ви хвилюєте esriNonSimpleSelfIntersections.

З 10.0 може бути спосіб зробити це з python в калькуляторі (?) ... Я не впевнений. Я використовував би команду надбудови. IMO Esri повинен забезпечити підтримку c # в польовому калькуляторі. Зрештою, компілятор c # встановлений як частина .NET фреймворку.

Оновлення

Код, який я розмістив тут, може виявити полюси прапорів, якщо застосувати вираз Definition "Left_OID" = "Right_OID"до отриманого полілінієвого функціонального шару.


1

Цей сценарій Python - це зручний інструмент

Усуньте багатокутники з косою з формних файлів

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

Операції геообробки та допуски кластерів можуть призвести до формування зайвих крихітних багатокутників. Вони можуть бути безглуздими і можуть порушити надійність просторових даних ".

Примітка: вам доведеться перевірити свої дані з різними відхиленнями (спершу візьміть копію своїх даних)

http://arcscripts.esri.com/details.asp?dbid=14672


1
З покриттями ArcInfo> Чисті дуги> Полігони ....
Mapperz

Я не впевнений, що цей інструмент фактично усуне помилки, які я зображую. Розумієте, слайвер (флагшток) та основне тіло багатокутника (прапор) - насправді одна особливість. Тому цей скрипт НЕ ТИЛЬКО видаляє частину багатокутника "flagpole", не видаляючи при цьому всю функцію "flag".
RyanKDalton

1

Райан,

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

Це лише мій спосіб визначити проблему. Просто поділитися цим із вами.


1

Якщо ідентифікація не є головним моментом, а лише автоматичне виправлення, спробуйте це. Потім додайте дані до нового порожнього картографічного документа;

  • Створіть топологію карти
  • виберіть усі функції
  • використовувати функції конструкції, щоб розділити наявні функції

Я перевірив це, і, здається, це працює, але я не впевнений, що я точно копіював ваше джерело даних

Розважись, CDB


1

Тут ми маємо кілька способів вирішити це, і на мою думку, найелегантнішим є використання розширення під назвою GIS Data Reviewer . GIS Data Reviewer дозволяє створювати спеціалізовані та спрощені перевірки просторової та атрибутичної точності на додаток до основної топології. Всередині Topology є недоступні речі, які є частиною стандартних перевірок для Data Reviewer Like

  • 3D закриття
  • Недійсна діра
  • SQL Expression
  • Площа менше просторової орієнтації
  • Показ на Feature
  • та багато іншого

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

Сподіваюся, це допоможе, CDB

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