Страница 1 из 1

Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 17:24
Дардон
Есть три типа объектов. Первый: жирные полигоны (сх поля). Второй: маленькие полигончики в основном округлой формы, составляющие вместе единую выборку, в которой в финале дырок быть не должно. Третий: вытянутые объекты (лесополосы между сх полями). Задача удалить второй тип объектов, но находящихся не в общей массе, а на определённом расстоянии от них. Дали мне подсказку - использовать инструмент Буфер. Буфер построил на всю территорию...а дальше...затормозил. Как быть, посоветуйте. Или, возможно, есть другой способ. Спасибо.

Re: Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 19:18
giser
Какое ПО-то? Если ArcGIS, то используйте выборку по месторасположению, например (там можно указать расстояние до объектов).

Re: Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 19:36
Дардон
Да, ArcGIS. Выборка по местоположению - select by attributes в табл. слоя или другое что-то ? Извините за подобный вопрос. в этом ПО работаю недавно.

Re: Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 19:50
giser
Select by location (там выбираете целевой и исходный слои, расстояние)

Re: Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 20:23
Дардон
Не очень понятно, как этот инструмент работает. Что за "Каждый объект во Входном векторном слое (Input Feature Layer) сравнивается с объектами в слое Выбирающих объектов (Selecting Features) или классом объектов; если входной объект соответствует значению в параметре Отношения (Relationship), он выбирается". Как это понять. Входной для меня - это шейп с полигонами, среди которых я должен удалить мусор. А "выбирающие" ? http://resources.arcgis.com/ru/help/mai ... 072000000/

Re: Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 21:15
giser
Перепрочитал условия, теперь получше понял. Наверное, Вас немного повел не в ту сторону. Если теперь все правильно понял, то, думаю, Вам нужно посмотреть в сторону инструмента Near. Он рассчитает для каждого объекта из общей массы расстояние до ближайшего, а потом нужно будет с помощью условия > выборкой по атрибуту выбрать и удалить "далекие" объекты.

Re: Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 22:56
Ariki
Near должен сработать. В качестве входных данных нужно дважды указать один и тот же класс пространственных объектов, а финальную выборку делать по расстоянию и площади.
Идея с буфером тоже работоспособна, но, скорее всего, будет работать медленнее. Строите буфер по заданному расстоянию, dissolve type ставите ALL, чтобы получился один мультиполигон. Буфера близко расположенных геометрий при этом сольются вместе, буфера отдельно стоящих будут отдельными частями мультиполигона. Разбиваете мультиполигон на простые полигоны (Multipart To Singlepart) и удаляете имеющие маленькую площадь. Оставшиеся используете для пространственной выборки из исходного слоя.

Re: Удаление точечных "мусорных объектов.

Добавлено: 25 дек 2014, 23:12
giser
Да, Near точно сработает. Сейчас даже, чтобы человека не обманывать, создал тестовый набор. Все прошло в штатном режиме и очень быстро. Указать 2 раза один и тот же слой, добавятся поля с расстоянием и ID, удалить объекты, превышающие допустимое расстояние. Через буфер слишком запарно, имхо.

Re: Удаление точечных "мусорных объектов.

Добавлено: 26 дек 2014, 14:57
Дардон
а search radius указывать ? в окне near

Re: Удаление точечных "мусорных объектов.

Добавлено: 26 дек 2014, 15:05
Дардон
376479 Га - это площадь, в пределах к-ой необходимо найти и уничтожить эти объекты. Пока считает компьютер, минут 10 уйдёт.

Re: Удаление точечных "мусорных объектов.

Добавлено: 26 дек 2014, 15:32
giser
Вряд ли Вам нужно указывать радиус поиска. Как я понимаю, нужно удалить объекты, находящиеся на расстоянии большем, чем возможно по условию (хотя Вы его не указали). Поэтому Nearом нужно просто вычислить ближайшие объекты для каждого и удалить те, у которых ближайший слишком далеко.

Re: Удаление точечных "мусорных объектов.

Добавлено: 29 дек 2014, 12:52
Дардон
А это...я ведь после применения к буферу Multipart to singlepart удаляю только...буферы ? И у меня получается буферная картинка. А мне надо получить картинку в терминах полигонов (сх полей, то есть). Это надо Юнионом и т.п. инструментами пользоваться ?