Выбрать линии у которых нет пересечений.

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Anik
Новоприбывший
Сообщения: 6
Зарегистрирован: 22 июн 2017, 13:58
Репутация: 0

Выбрать линии у которых нет пересечений.

Сообщение Anik »

Всем добрый день!
Подскажите, пожалуйста!
Даны линии, у некоторых есть дубликаты, у некоторых нет. Моя задача удалить те линии, у которых нет дублей. Как их выбрать в QGIS? Именно те, у которых нет дублей, чтобы их затем удалить.
Константин Силкин
Завсегдатай
Сообщения: 447
Зарегистрирован: 21 мар 2012, 07:37
Репутация: 67
Откуда: Воронеж

Re: Выбрать линии у которых нет пересечений.

Сообщение Константин Силкин »

Здравствуйте? Можно пойти от обратного. Выбрать те, которые с кем-то пересекаются, а затем инвертировать выделение
Anik
Новоприбывший
Сообщения: 6
Зарегистрирован: 22 июн 2017, 13:58
Репутация: 0

Re: Выбрать линии у которых нет пересечений.

Сообщение Anik »

я даже их выбрать не могу, не нахожу инструмент(( пересечение в одном слое не ищет(
Константин Силкин
Завсегдатай
Сообщения: 447
Зарегистрирован: 21 мар 2012, 07:37
Репутация: 67
Откуда: Воронеж

Re: Выбрать линии у которых нет пересечений.

Сообщение Константин Силкин »

Я бы написал скрипт (мне проще в R, кому-то в Python) с перебором всех объектов и так выявил кто с кем делит общие координаты или пересекается. Их бы скопировал в отдельный файл, а остальные пропустил
crashkkm
Активный участник
Сообщения: 147
Зарегистрирован: 17 окт 2016, 16:37
Репутация: 15

Re: Выбрать линии у которых нет пересечений.

Сообщение crashkkm »

Освоить R или питон чтобы потом писать скрипт проще чем запустить уже готовые инструменты проверки топологии?
https://pro.arcgis.com/ru/pro-app/lates ... atures.htm
Anik
Новоприбывший
Сообщения: 6
Зарегистрирован: 22 июн 2017, 13:58
Репутация: 0

Re: Выбрать линии у которых нет пересечений.

Сообщение Anik »

crashkkm, про топологию я знаю, и нахожу эти пересечения с помощью топологии, но он их только подсвечивает, а мне нужно в таблице атрибутов исходного шейпа их отобразить/выделить, чтобы дальше с ними производить манипуляции.
drrrrr
Участник
Сообщения: 86
Зарегистрирован: 31 янв 2012, 10:51
Репутация: -1204801158

Re: Выбрать линии у которых нет пересечений.

Сообщение drrrrr »

Если речь о дубликатах, не о пересечениях, то создайте виртуальный слой по SQL запросу

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

select *, count(*) cnt  from test group by test.geometry
Результирующий слой будет содержать поле cnt - счетчик дубликатов геометрии текущего объекта.
Диалог создания виртуального слоя:
20230309_173741.png
20230309_173741.png (82.16 КБ) 2537 просмотров
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Выбрать линии у которых нет пересечений.

Сообщение gamm »

drrrrr писал(а): 09 мар 2023, 17:39group by test.geometry
интересно, а группировка идет потекстовому представлению (wkt?)?
crashkkm
Активный участник
Сообщения: 147
Зарегистрирован: 17 окт 2016, 16:37
Репутация: 15

Re: Выбрать линии у которых нет пересечений.

Сообщение crashkkm »

Anik писал(а): 09 мар 2023, 15:57crashkkm, про топологию я знаю, и нахожу эти пересечения с помощью топологии, но он их только подсвечивает, а мне нужно в таблице атрибутов исходного шейпа их отобразить/выделить, чтобы дальше с ними производить манипуляции.
не знаю про какую топологию вы пишете, ту, про которую пишу я именно это все и можно делать. Задавать нужные правила, подсвечивать, видеть все ошибки в атрибутивной таблице, видеть зоны исправления.
AlexRomantsov
Завсегдатай
Сообщения: 421
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Выбрать линии у которых нет пересечений.

Сообщение AlexRomantsov »

Еще вариант.
Меню - Слой - Открыть таблицу атрибутов.
В ней, кнопка Открыть калькулятор полей.
В диалоге - Создать новое поле, Имя, Тип - текст.
В вкладке Выражение вызовем функцию, проверяющую, совпадает ли пространственно текущий объект хотя бы с одним другим:

overlay_equals( 'слой')

Не забудьте выбрать вместо 'слой' в навигаторе (справа от выражения) Слои карты - Ваш слой.
Ок.
После выполнения, в таблице появится поле с заданным именем, в этом поле TRUE - двойной (тройной) объект, FALSE - уникальный объект без дублей.
Ну и осталось отсортировать по полю, выделить в таблице нужное, удалить/классифицировать/скопировать...
Anik
Новоприбывший
Сообщения: 6
Зарегистрирован: 22 июн 2017, 13:58
Репутация: 0

Re: Выбрать линии у которых нет пересечений.

Сообщение Anik »

AlexRomantsov, спасибо, но что-то он всем линиям одно задал, хотя есть линии и без пересечений.
AlexRomantsov
Завсегдатай
Сообщения: 421
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Выбрать линии у которых нет пересечений.

Сообщение AlexRomantsov »

А "что то одно"- false? А ваши двойные линии - точно координатные дубликаты? или просто похожие?
Ответить

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

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

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