Выделение полигонов по точечному шейпу

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Воронин С.В.
Завсегдатай
Сообщения: 431
Зарегистрирован: 06 ноя 2009, 13:18
Репутация: 10
Откуда: Екатеринбург

Выделение полигонов по точечному шейпу

Сообщение Воронин С.В. »

Господа!
Этот вопрос уже поднимался, но я не нашел эту тему.
Вопрос. Как выделить только те полигоны в полигональном шейпе, в которых есть точки точечного шейпа?
И более сложная задача - Как выделить только те полигоны в полигональном шейпе, в которых есть более чем 3 точки точечного шейпа?
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Выделение полигонов по точечному шейпу

Сообщение novia »

Первая задача:
Меню Выбор (select) - по местоположению (select by location)
Составить запрос к слою полигонов, выбрать те, которые пересекаются с точками в точечном слое.

Вторая задача: выполнить пересечение полигонального слоя с точечным с помощью инструмента геообработки пересечение(intersect) из набора анализ (analysis) - наложение (overlay). После этого запустить инструмент статистики (не помню точное название, подсмотрю отредактирую сообщение), в котором указать в качестве уникального номера элемента статистики - objectid из полигонального слоя(появится в таблице точек после пересечения), а в качестве того, что статистика будет считать - количество записей с таким id. В итоге получится таблица с id полигонов и количеством точек в них. Можно соединить ее с исходным полигональным слоем и отобрать необходимые, например с помощью определяющего запроса, или с помощью выбора по атрибутам.

[Сообщение с мобильного устройства] Изображение
понравилось? жми палец вверх :!:
Воронин С.В.
Завсегдатай
Сообщения: 431
Зарегистрирован: 06 ноя 2009, 13:18
Репутация: 10
Откуда: Екатеринбург

Re: Выделение полигонов по точечному шейпу

Сообщение Воронин С.В. »

Для novia.

Первая задача прекрасно получается.

Со второй проблема.
При пересечении содается новый точечный слой, который сохраняет атрибуты обоих слоев.
Но такого атрибута как "objectid" нет.
Появился атрибут FID_***, в котором есть номера элементов. Но не могу выполнить по нему необходимую статистику.
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Выделение полигонов по точечному шейпу

Сообщение novia »

До настольной системы доберусь завтра-послезавтра.
Если возможно, поделитесь фрагментом данных (можно ссылкой в личку), либо наборами данных без объектов(скопировать классы/шейпы, запустить инструмент "удалить строки"(delete rows) соберу модель для model builder 10.0 и потом алгоритм сюда тоже выложу.

[Сообщение с мобильного устройства] Изображение
понравилось? жми палец вверх :!:
Воронин С.В.
Завсегдатай
Сообщения: 431
Зарегистрирован: 06 ноя 2009, 13:18
Репутация: 10
Откуда: Екатеринбург

Re: Выделение полигонов по точечному шейпу

Сообщение Воронин С.В. »

Для novia.

Отправил архив в личку. Не знаю дошло ли?
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Выделение полигонов по точечному шейпу

Сообщение novia »

Данные ушли в личку, а потому образец для запуска не публикуется. От данных модель не зависит, любые полигоны с любыми точками можно пересекать.

В приложении инструмент, который может считать, сколько точек попало на каждый полигон, а затем выбирать те, полигоны, в которых точек больше либо равно/больше/меньше/ и т.п. заданного количества.

У инструмента 4 параметра: Полигоны, Точки, SQL запрос к количеству точек в полигоне, выходной класс полигональных объектов.

з.ы. инструмент сначала создает в папке c:\temp служебные файлы: копия полигонов, копия точек, чтобы не переделывать имена полей при подсчете статистики, также он создаст их пересечение, таблицу статистики, полигоны с прицепленным полем количества точек. После того, как модель пачкает диск, она "прибирается" за собой.

з.з.ы. кроме исходных файлов (не измененных совсем), и готового класса полигональных объектов модель после себя ничего не оставляет = да здравствует пакетная обработка (С.В. - вам будет полезно, так как районы "разбросаны" по папкам с нерегулярными именами и будет хорошо один раз эти пути указать и запустить шарманку).

прилагаются версии для 10.0 и 9.3 (не тестировал, кто будет запускать, напишите, если не работает)
Вложения
Select_Poly_by_Points_10.zip
Набор молотков для версии 10.0
(15.42 КБ) 311 скачиваний
Select_Poly_by_Points_93.zip
Набор молотков для версии 9.3
(11.64 КБ) 302 скачивания
понравилось? жми палец вверх :!:
Воронин С.В.
Завсегдатай
Сообщения: 431
Зарегистрирован: 06 ноя 2009, 13:18
Репутация: 10
Откуда: Екатеринбург

Re: Выделение полигонов по точечному шейпу

Сообщение Воронин С.В. »

Для novia.

Антон, извените, но инструмент Select_Poly_by_Points_93, у меня не встал.
Как его встроить?

Воронин.
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Выделение полигонов по точечному шейпу

Сообщение novia »

Какая у вас ОС? Может путь к инструментам помер... у меня Win 7 x64

Вопрос для 5-ти других пользователей скачавших тулбокс (всего скачиваний для 9.3 - 6). У вас набор инструментов работает?
понравилось? жми палец вверх :!:
Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

Re: Выделение полигонов по точечному шейпу

Сообщение Slinger »

Скачал версию для 9.3, глянул, вне зависимости от SQL условий выдаёт ошибку:

Код: Выделить всё

ERROR 000210: Cannot create output C:\Temp\Polygons.shp
Failed to execute (Select (2)).
End Time: Sun Sep 04 14:24:48 2011 (Elapsed Time: 0.00 seconds)
Failed to execute (SelectPolygonsbyPoints).
End Time: Sun Sep 04 14:24:48 2011 (Elapsed Time: 1.00 seconds)
Пример был корректный. Был и слой зданий (полигоны) и подписи зданий (точечные объекты на зданиях)

UPD

Поторопился я с ответом. Надо, чтобы была папка Temp в корне диска C:\ создана, тогда операция происходит нормально. Сам инструмент создавать папку не умеет, судя по всему. С остальным нареканий нет.
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Выделение полигонов по точечному шейпу

Сообщение novia »

Arcgis действительно сам не умеет создавать папки без дополнительного программирования средствами python.

Спасибо, Slinger, что проверили работоспособность, очень не хотелось только под эту задачу сносить 10.0 и ставить 9-ку.

[Сообщение с мобильного устройства] Изображение
понравилось? жми палец вверх :!:
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Выделение полигонов по точечному шейпу

Сообщение novia »

Примечание к наборам инструментов. Инструменты запускаются только на уровне лицензии ArcInfo.
понравилось? жми палец вверх :!:
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей