Страница 1 из 1
Есть ли инструмент Collect events для линий?
Добавлено: 20 ноя 2015, 11:52
amnesiac
Добрый день.
У меня такая задача - есть сеть маршрутов, нужно посчитать, на каких участках сети сколько маршрутов проходит. Геометрически трассировка линий там, где на одном участке несколько маршрутов, совпадает. Подскажите, пожалуйста, есть ли в тулбоксе инструмент для линий, аналогичный "Собрать события" для точек?
Я это реализую достаточно нудным алгоритмом (разбиение маршрутов на пересечениях -> создание точек на пересечениях -> буфер вокруг отрезков маршрутов -> буфер большего размера вокруг точек пересечения -> вырезание буфера пересечений из буферного слоя маршрутов -> и! наконец! геометрическое соединение, из которого я беру созданный атрибут COUNT).
Есть ли более простой способ, может кто-то решал подобную задачу?
Re: Есть ли инструмент Collect events для линий?
Добавлено: 24 ноя 2015, 13:14
giser
Надеюсь, я правильно смоделировал аналогичную ситуацию. Попробовал собрать небольшой инструмент.
1. Настроен на работу с классами в базе геоданных.
2. Потребуется 2 класса линейных объектов: 1 - непосредственно слой маршрутов; 2 - слой дорожной сети. Слой дорожной сети должен включать в себя только один сложный объект (предварительно нужно произвести объединение всех объектов). Важно, чтобы объект этого слоя геометрически совпадал с объектами слоя маршрутов, а также полностью "покрывал" (вообще можно просто взять тот же слой с маршрутами, сохранить в отдельный класс, создать в нем сложный объект через Merge всех объектов).
3. Запустить инструмент в ArcCatalog, указать пути к классам. Новый класс должен появиться в той же директории, где лежит класс с маршрутами.
4. Если что-то получится не так, то, возможно, наведет Вас на какие-то мысли...
Re: Есть ли инструмент Collect events для линий?
Добавлено: 25 ноя 2015, 15:29
amnesiac
Спасибо большое, сейчас попробую! Относительно слоя дорожной сети - в своем долгом способе я так и делала, в идеале конечно круто было бы из него граф УДС сделать
Re: Есть ли инструмент Collect events для линий?
Добавлено: 16 дек 2015, 18:35
amnesiac
Товарищи, возвращаясь к этой задаче обнаружила очень полезную вещь, может быть, кому-нибудь пригодится.
Оказывается, если запустить инструмент "Пространственное соединение" не из подменю слоя, а из тулбокса, там появляется куча дополнительных параметров присоединения - опции сопоставления (intersect, contain, identical итд) и правила слияния (first, sum, count итд). Мне очень помогло просуммировать пассажиропотоки по разным видам транспорта разных маршрутов и посчитать, сколько какого транспорта на каждом участке УДС.
Re: Есть ли инструмент Collect events для линий?
Добавлено: 16 дек 2015, 19:11
giser
Я, честно говоря, думал, что Вам нужен единый слой без накладок, разбитый на участки согласно количеству маршрутов. А если только посчитать, то этот инструмент хорош, сам его всегда использую. А в геометрическом смысле накладывает объекты друг на друга целиком, если выполняется установленное условие.
Re: Есть ли инструмент Collect events для линий?
Добавлено: 17 дек 2015, 10:47
amnesiac
Да, именно такой и нужен был!) Просто потом возникла необходимость привязать данные по количеству пассажиров для визуализации на карте.
Поэтому я сделала слой с отрезками маршрутов, удалив идентичные, как в вашей модели, а потом привязала к нему все маршруты этим инструментом, считая количество присоединенных к каждому отрезку объектов другого слоя и суммы одноименных полей атрибутов.