Можно ли однозначно идентифицировать каждую геометрию в слое объектов?
По сути, у меня есть полигональный векторный слой со множеством строк данных, представленных одной и той же геометрией. Я хотел бы 1 ряд для каждой уникальной геометрии. Поэтому я ищу какую-то готовую методологию для объединения атрибутов на основе формы геометрии.
Я из мира Postgres и могу решить эту проблему там, но я не знаю, как это сделать (или, если это возможно), сделать это не программно с помощью инструментов ESRI.
arcgis-desktop
arcmap
arcgis-10.0
geometry
Дилан Хеттингер
источник
источник
Ответы:
Если у вас есть расширенная лицензия, вы можете использовать Найти идентичный или Удалить идентичный .
Оба могут быть использованы для поиска / удаления объектов, имеющих одинаковые атрибуты, или, если указано поле «Форма», идентичных геометрий.
Если у вас нет расширенной лицензии, этот пост будет полезен.
Короче говоря, вы добавляете два поля для X, Y в свою таблицу атрибутов и запускаете Dissolve для указанных полей.
Если у вас есть многоугольники, которые имеют один и тот же центроид, но не являются геометрически идентичными, вы можете добавить два других поля (Периметр и Площадь). Этого должно быть достаточно для идентификации идентичных геометрий почти во всех обычных случаях. Смотрите комментарии @ whuber ниже.
источник
У меня есть набор данных на основе данных опроса. Моя проблема в том, что старые функции не всегда удаляются до импорта новых снимков. Поэтому у нас есть «дубликаты» с разной геометрией: т.е. снимки съемки могут быть на расстоянии 1/4 фута друг от друга. В наборе классов объектов 12000 сложно найти каждый из них и идентифицировать их. Использование ArcMap Basic 10.2: вот хакерская модель, которую я придумал.
Я заново изобрел колесо. Кроме того, я расстроился из-за Моделестроителя и, в общем-то, разбросал все это. Должно быть более элегантное решение. Я с удовольствием приму критику и предложения.
Кроме того, кажется, что это работает правильно только из Model Builder, я запускаю из панели инструментов, и это не сохраняет буферный слой.
источник
В течение некоторого времени я искал ответ на тот же вопрос, чтобы преодолеть уплощение проблемы перекрывающихся буферных полигонов, и думаю, что нашел надежное решение для этого. На самом деле @ комментарий Уубер,
Ответ @ Paul был для меня главным стимулом продолжать попытки. Он использует оператор ARE_IDENTICAL_TO инструмента Spatial Join, поскольку он является наиболее эффективным среди других идентичных детекторов. Вот шаги:
Следующие шаги могут быть выполнены двумя способами, с Python или без:
С питоном
print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))
,Помните, что я использую вторую копию фиктивного поля OID, в моем случае это EX_OID_1;
OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)
. В результате вы увидите унифицированные возможности перекрывающихся частей. Здесь есть ограничение по размеру, 30000 символов. Чтобы преодолеть эту проблему, вам нужно выполнить шаги «без питона».БЕЗ ПИТОНА
Используйте инструмент «Частота» для отображения уникальных значений во второй копии фиктивного поля OID, в моем случае это EX_OID_1;
Наконец, объедините поле OBJECTID исходного класса пространственных объектов с выводом EX_OID_1 инструмента Частота , выбрав параметры «Сохранить только совпадающие записи».
источник