Работая в ArcMap, я сталкивался с ошибками в слое многоугольника, который я назову «осколки флага» (взятые из аналогичного языка в посылках, называют «участки флага»). Эти многоугольники (см. Изображение ниже) обычно состоят только из одного дополнительного узла, который пользователь случайно добавил.
На изображениях ниже «флаг» и «флагшток» представляют собой одну особенность, в которой «флагшток» просто перекрывает себя. Левое изображение имеет в общей сложности 5 узлов.
Если рассматривать их отдельно, ошибки очень очевидны, но когда несколько многоугольников находятся рядом, их почти невозможно увидеть, поскольку они кажутся границей между двумя многоугольниками.
Вероятно, это происходит потому, что они используют редактор на основе шейп-файлов, и поэтому я не могу реализовать какие-либо правила редактирования на основе топологии, чтобы предотвратить это в будущем.
У кого-нибудь есть способ выявления и устранения этих типов ошибок? Я бы предпочел автоматизированный метод идентификации и разрешения, так как полевые пользователи - те, кто создал ошибки, но я застрял после их устранения. Благодарю.
источник
Ответы:
Если у вас есть доступ к инструментам Safe Fme, вы найдете полезный преобразователь spikeRemover, посмотрите на него. Вы можете попробовать загружаемую ограниченную версию SAFE FME или проверить свою лицензию ArcGis на «FME Extension for 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
источник
Я не уверен, где ваша проблема возникает, или где у вас есть возможность избежать / исправить ее. Но я часто видел это в нашей базе данных SDE, хотя геометрия в SDE всегда должна быть правильной. В нашем случае это было потому, что мы импортировали шейп-файлы, используя ArcObjects, в SDE. Когда геометрии были сохранены, они привязывались к сетке SDE и, таким образом, создавали неправильные геометрии с осколками, которые вы описываете, когда у геометрии был тонкий шип. Это потому, что шейп-файлы имеют полную двойную точность для координат, а SDE - более грубую сетку.
Нашим решением было исправить геометрии, когда они были импортированы:
1. Установите пространственную привязку геометрии из шейп-файла к пространственной привязке соответствующего класса пространственных объектов SDE.
2. Прикрепите геометрию к пространственной привязке (IGeometry.SnapToSpatialReference (). )
3. Установите ITopologicalOperator2.IsKnownSimple = false (важно, иначе упрощение ничего не делает).
4. Выполните некоторую упрощенную операцию. Для полигонов мы использовали IPolygon.SimplifyPreserveFromTo ()
источник
В arcmap 9.3.1 я бы добавил поле с именем Flag (или, может быть, FlagFlag?) И использовал бы код VBA в калькуляторе полей для вычисления этого поля.
Код VBA затемнит переменную как ITopologicalOperator3 и установит ее в поле Shape.
Затем он вызвал бы не очень простой метод IsSimpleEx .
Установите значение поля Флаг в esriNonSimpleEnum . Предположительно, ошибка, с которой вы столкнулись, вернется
esriNonSimpleSelfIntersections
.С 10.0 может быть способ сделать это с помощью python в калькуляторе (?) ... Я не уверен. Я бы использовал команду надстройки. ИМО Esri должен обеспечить поддержку c # в полевом калькуляторе. В конце концов, компилятор c # устанавливается как часть .NET Framework.
Обновить
Код, который я разместил здесь, может найти флажки, если вы примените выражение Definition
"Left_OID" = "Right_OID"
к результирующему слою объектов Polyline.источник
Этот скрипт Python является удобным инструментом
Удалите осколки полигонов из шейп-файлов
"EliminateSlivers.py циклически перебирает все объекты в шейп-файле многоугольника и удаляет те из выходного шейп-файла, которые падают ниже заданного порога площади.
Операции геообработки и кластерные допуски могут привести к созданию дополнительных, крошечных кусочков полигонов. Это может быть бессмысленным и может нарушить надежность пространственных данных ".
Примечание: вам придется тестировать данные с разными допусками (сначала сделайте копию ваших данных)
http://arcscripts.esri.com/details.asp?dbid=14672
источник
Райан,
Я работал с офисом почвенного обследования и периодически проверял их полигоны. То, что я делаю, проверяется на предмет осколков. Я бы отправил класс объектов в покрытие, а затем собрал их для маркировки, чтобы выявить ошибки. Если вы видите 2 метки в одном многоугольнике, это ошибка. Если это одна метка на полигон, вы знаете, что это правильно. Я хотел бы создать класс объектов как точку, чтобы отметить ошибку. Или вы можете выбрать несколько меток в новый класс объектов. Таким образом, вы можете вернуться и исправить ошибку. Это очень хорошо работает с почвенными полигонами. Я использую это, чтобы сообщить почвоведам, чтобы решить проблему.
Это просто мой способ определить проблему. Просто делюсь этим с вами.
источник
Если идентификация не важна, а просто автоматическое исправление, попробуйте это. Добавьте данные в новый пустой документ карты, затем;
Я проверил это, и, кажется, работает, но я не уверен, точно ли я скопировал ваш источник данных
Веселись, CDB
источник
Здесь мы рассмотрим несколько способов решения этой проблемы, и, на мой взгляд, наиболее элегантным является использование расширения под названием GIS Data Reviewer . Средство просмотра данных ГИС позволяет создавать настраиваемые и упрощенные проверки пространственной точности и точности атрибутов в дополнение к основной топологии. В топологии есть вещи, которые недоступны, которые являются частью стандартных проверок для Data Reviewer.
Я бы использовал это для опроса ваших данных. Еще один способ - создать новый класс пространственных объектов на основе существующего класса пространственных объектов многоугольника. а затем создайте новый класс пространственных объектов Polygon и заполните его линиями, используя инструмент конструктивных элементов на панели инструментов топологии. Это тогда означало бы, что осколки должны отображаться как таковые, а любые другие инструменты топологии должны исправить ошибку. Тогда это вопрос выбора, удаления и замены объектов в существующем классе объектов.
Надеюсь, это поможет, CDB
источник