Выделение полигонов по точечному шейпу
-
- Завсегдатай
- Сообщения: 431
- Зарегистрирован: 06 ноя 2009, 13:18
- Репутация: 10
- Откуда: Екатеринбург
Выделение полигонов по точечному шейпу
Господа!
Этот вопрос уже поднимался, но я не нашел эту тему.
Вопрос. Как выделить только те полигоны в полигональном шейпе, в которых есть точки точечного шейпа?
И более сложная задача - Как выделить только те полигоны в полигональном шейпе, в которых есть более чем 3 точки точечного шейпа?
Этот вопрос уже поднимался, но я не нашел эту тему.
Вопрос. Как выделить только те полигоны в полигональном шейпе, в которых есть точки точечного шейпа?
И более сложная задача - Как выделить только те полигоны в полигональном шейпе, в которых есть более чем 3 точки точечного шейпа?
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
Re: Выделение полигонов по точечному шейпу
Первая задача:
Меню Выбор (select) - по местоположению (select by location)
Составить запрос к слою полигонов, выбрать те, которые пересекаются с точками в точечном слое.
Вторая задача: выполнить пересечение полигонального слоя с точечным с помощью инструмента геообработки пересечение(intersect) из набора анализ (analysis) - наложение (overlay). После этого запустить инструмент статистики (не помню точное название, подсмотрю отредактирую сообщение), в котором указать в качестве уникального номера элемента статистики - objectid из полигонального слоя(появится в таблице точек после пересечения), а в качестве того, что статистика будет считать - количество записей с таким id. В итоге получится таблица с id полигонов и количеством точек в них. Можно соединить ее с исходным полигональным слоем и отобрать необходимые, например с помощью определяющего запроса, или с помощью выбора по атрибутам.
[Сообщение с мобильного устройства]
Меню Выбор (select) - по местоположению (select by location)
Составить запрос к слою полигонов, выбрать те, которые пересекаются с точками в точечном слое.
Вторая задача: выполнить пересечение полигонального слоя с точечным с помощью инструмента геообработки пересечение(intersect) из набора анализ (analysis) - наложение (overlay). После этого запустить инструмент статистики (не помню точное название, подсмотрю отредактирую сообщение), в котором указать в качестве уникального номера элемента статистики - objectid из полигонального слоя(появится в таблице точек после пересечения), а в качестве того, что статистика будет считать - количество записей с таким id. В итоге получится таблица с id полигонов и количеством точек в них. Можно соединить ее с исходным полигональным слоем и отобрать необходимые, например с помощью определяющего запроса, или с помощью выбора по атрибутам.
[Сообщение с мобильного устройства]

понравилось? жми палец вверх 

-
- Завсегдатай
- Сообщения: 431
- Зарегистрирован: 06 ноя 2009, 13:18
- Репутация: 10
- Откуда: Екатеринбург
Re: Выделение полигонов по точечному шейпу
Для novia.
Первая задача прекрасно получается.
Со второй проблема.
При пересечении содается новый точечный слой, который сохраняет атрибуты обоих слоев.
Но такого атрибута как "objectid" нет.
Появился атрибут FID_***, в котором есть номера элементов. Но не могу выполнить по нему необходимую статистику.
Первая задача прекрасно получается.
Со второй проблема.
При пересечении содается новый точечный слой, который сохраняет атрибуты обоих слоев.
Но такого атрибута как "objectid" нет.
Появился атрибут FID_***, в котором есть номера элементов. Но не могу выполнить по нему необходимую статистику.
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
Re: Выделение полигонов по точечному шейпу
До настольной системы доберусь завтра-послезавтра.
Если возможно, поделитесь фрагментом данных (можно ссылкой в личку), либо наборами данных без объектов(скопировать классы/шейпы, запустить инструмент "удалить строки"(delete rows) соберу модель для model builder 10.0 и потом алгоритм сюда тоже выложу.
[Сообщение с мобильного устройства]
Если возможно, поделитесь фрагментом данных (можно ссылкой в личку), либо наборами данных без объектов(скопировать классы/шейпы, запустить инструмент "удалить строки"(delete rows) соберу модель для model builder 10.0 и потом алгоритм сюда тоже выложу.
[Сообщение с мобильного устройства]

понравилось? жми палец вверх 

-
- Завсегдатай
- Сообщения: 431
- Зарегистрирован: 06 ноя 2009, 13:18
- Репутация: 10
- Откуда: Екатеринбург
Re: Выделение полигонов по точечному шейпу
Для novia.
Отправил архив в личку. Не знаю дошло ли?
Отправил архив в личку. Не знаю дошло ли?
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
Re: Выделение полигонов по точечному шейпу
Данные ушли в личку, а потому образец для запуска не публикуется. От данных модель не зависит, любые полигоны с любыми точками можно пересекать.
В приложении инструмент, который может считать, сколько точек попало на каждый полигон, а затем выбирать те, полигоны, в которых точек больше либо равно/больше/меньше/ и т.п. заданного количества.
У инструмента 4 параметра: Полигоны, Точки, SQL запрос к количеству точек в полигоне, выходной класс полигональных объектов.
з.ы. инструмент сначала создает в папке c:\temp служебные файлы: копия полигонов, копия точек, чтобы не переделывать имена полей при подсчете статистики, также он создаст их пересечение, таблицу статистики, полигоны с прицепленным полем количества точек. После того, как модель пачкает диск, она "прибирается" за собой.
з.з.ы. кроме исходных файлов (не измененных совсем), и готового класса полигональных объектов модель после себя ничего не оставляет = да здравствует пакетная обработка (С.В. - вам будет полезно, так как районы "разбросаны" по папкам с нерегулярными именами и будет хорошо один раз эти пути указать и запустить шарманку).
прилагаются версии для 10.0 и 9.3 (не тестировал, кто будет запускать, напишите, если не работает)
В приложении инструмент, который может считать, сколько точек попало на каждый полигон, а затем выбирать те, полигоны, в которых точек больше либо равно/больше/меньше/ и т.п. заданного количества.
У инструмента 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, у меня не встал.
Как его встроить?
Воронин.
Антон, извените, но инструмент Select_Poly_by_Points_93, у меня не встал.
Как его встроить?
Воронин.
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
Re: Выделение полигонов по точечному шейпу
Какая у вас ОС? Может путь к инструментам помер... у меня Win 7 x64
Вопрос для 5-ти других пользователей скачавших тулбокс (всего скачиваний для 9.3 - 6). У вас набор инструментов работает?
Вопрос для 5-ти других пользователей скачавших тулбокс (всего скачиваний для 9.3 - 6). У вас набор инструментов работает?
понравилось? жми палец вверх 

-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: Выделение полигонов по точечному шейпу
Скачал версию для 9.3, глянул, вне зависимости от SQL условий выдаёт ошибку:
Пример был корректный. Был и слой зданий (полигоны) и подписи зданий (точечные объекты на зданиях)
UPD
Поторопился я с ответом. Надо, чтобы была папка Temp в корне диска C:\ создана, тогда операция происходит нормально. Сам инструмент создавать папку не умеет, судя по всему. С остальным нареканий нет.
Код: Выделить всё
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: Выделение полигонов по точечному шейпу
Arcgis действительно сам не умеет создавать папки без дополнительного программирования средствами python.
Спасибо, Slinger, что проверили работоспособность, очень не хотелось только под эту задачу сносить 10.0 и ставить 9-ку.
[Сообщение с мобильного устройства]
Спасибо, Slinger, что проверили работоспособность, очень не хотелось только под эту задачу сносить 10.0 и ставить 9-ку.
[Сообщение с мобильного устройства]

понравилось? жми палец вверх 

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

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