Выбрать линии у которых нет пересечений.
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 22 июн 2017, 13:58
- Репутация: 0
Выбрать линии у которых нет пересечений.
Всем добрый день!
Подскажите, пожалуйста!
Даны линии, у некоторых есть дубликаты, у некоторых нет. Моя задача удалить те линии, у которых нет дублей. Как их выбрать в QGIS? Именно те, у которых нет дублей, чтобы их затем удалить.
Подскажите, пожалуйста!
Даны линии, у некоторых есть дубликаты, у некоторых нет. Моя задача удалить те линии, у которых нет дублей. Как их выбрать в QGIS? Именно те, у которых нет дублей, чтобы их затем удалить.
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Выбрать линии у которых нет пересечений.
Здравствуйте? Можно пойти от обратного. Выбрать те, которые с кем-то пересекаются, а затем инвертировать выделение
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 22 июн 2017, 13:58
- Репутация: 0
Re: Выбрать линии у которых нет пересечений.
я даже их выбрать не могу, не нахожу инструмент(( пересечение в одном слое не ищет(
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Выбрать линии у которых нет пересечений.
Я бы написал скрипт (мне проще в R, кому-то в Python) с перебором всех объектов и так выявил кто с кем делит общие координаты или пересекается. Их бы скопировал в отдельный файл, а остальные пропустил
-
- Активный участник
- Сообщения: 144
- Зарегистрирован: 17 окт 2016, 16:37
- Репутация: 15
Re: Выбрать линии у которых нет пересечений.
Освоить R или питон чтобы потом писать скрипт проще чем запустить уже готовые инструменты проверки топологии?
https://pro.arcgis.com/ru/pro-app/lates ... atures.htm
https://pro.arcgis.com/ru/pro-app/lates ... atures.htm
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 22 июн 2017, 13:58
- Репутация: 0
Re: Выбрать линии у которых нет пересечений.
crashkkm, про топологию я знаю, и нахожу эти пересечения с помощью топологии, но он их только подсвечивает, а мне нужно в таблице атрибутов исходного шейпа их отобразить/выделить, чтобы дальше с ними производить манипуляции.
-
- Участник
- Сообщения: 86
- Зарегистрирован: 31 янв 2012, 10:51
- Репутация: 51
Re: Выбрать линии у которых нет пересечений.
Если речь о дубликатах, не о пересечениях, то создайте виртуальный слой по SQL запросу
Результирующий слой будет содержать поле cnt - счетчик дубликатов геометрии текущего объекта.
Диалог создания виртуального слоя:
Код: Выделить всё
select *, count(*) cnt from test group by test.geometry
Диалог создания виртуального слоя:
-
- Гуру
- Сообщения: 4068
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1063
- Ваше звание: программист
- Откуда: Казань
-
- Активный участник
- Сообщения: 144
- Зарегистрирован: 17 окт 2016, 16:37
- Репутация: 15
Re: Выбрать линии у которых нет пересечений.
не знаю про какую топологию вы пишете, ту, про которую пишу я именно это все и можно делать. Задавать нужные правила, подсвечивать, видеть все ошибки в атрибутивной таблице, видеть зоны исправления.
-
- Завсегдатай
- Сообщения: 328
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 141
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Выбрать линии у которых нет пересечений.
Еще вариант.
Меню - Слой - Открыть таблицу атрибутов.
В ней, кнопка Открыть калькулятор полей.
В диалоге - Создать новое поле, Имя, Тип - текст.
В вкладке Выражение вызовем функцию, проверяющую, совпадает ли пространственно текущий объект хотя бы с одним другим:
overlay_equals( 'слой')
Не забудьте выбрать вместо 'слой' в навигаторе (справа от выражения) Слои карты - Ваш слой.
Ок.
После выполнения, в таблице появится поле с заданным именем, в этом поле TRUE - двойной (тройной) объект, FALSE - уникальный объект без дублей.
Ну и осталось отсортировать по полю, выделить в таблице нужное, удалить/классифицировать/скопировать...
Меню - Слой - Открыть таблицу атрибутов.
В ней, кнопка Открыть калькулятор полей.
В диалоге - Создать новое поле, Имя, Тип - текст.
В вкладке Выражение вызовем функцию, проверяющую, совпадает ли пространственно текущий объект хотя бы с одним другим:
overlay_equals( 'слой')
Не забудьте выбрать вместо 'слой' в навигаторе (справа от выражения) Слои карты - Ваш слой.
Ок.
После выполнения, в таблице появится поле с заданным именем, в этом поле TRUE - двойной (тройной) объект, FALSE - уникальный объект без дублей.
Ну и осталось отсортировать по полю, выделить в таблице нужное, удалить/классифицировать/скопировать...
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 22 июн 2017, 13:58
- Репутация: 0
Re: Выбрать линии у которых нет пересечений.
AlexRomantsov, спасибо, но что-то он всем линиям одно задал, хотя есть линии и без пересечений.
-
- Завсегдатай
- Сообщения: 328
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 141
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Выбрать линии у которых нет пересечений.
А "что то одно"- false? А ваши двойные линии - точно координатные дубликаты? или просто похожие?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя