Страница 1 из 1

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

Добавлено: 09 мар 2023, 12:03
Anik
Всем добрый день!
Подскажите, пожалуйста!
Даны линии, у некоторых есть дубликаты, у некоторых нет. Моя задача удалить те линии, у которых нет дублей. Как их выбрать в QGIS? Именно те, у которых нет дублей, чтобы их затем удалить.

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

Добавлено: 09 мар 2023, 12:43
Константин Силкин
Здравствуйте? Можно пойти от обратного. Выбрать те, которые с кем-то пересекаются, а затем инвертировать выделение

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

Добавлено: 09 мар 2023, 13:00
Anik
я даже их выбрать не могу, не нахожу инструмент(( пересечение в одном слое не ищет(

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

Добавлено: 09 мар 2023, 13:12
Константин Силкин
Я бы написал скрипт (мне проще в R, кому-то в Python) с перебором всех объектов и так выявил кто с кем делит общие координаты или пересекается. Их бы скопировал в отдельный файл, а остальные пропустил

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

Добавлено: 09 мар 2023, 15:54
crashkkm
Освоить R или питон чтобы потом писать скрипт проще чем запустить уже готовые инструменты проверки топологии?
https://pro.arcgis.com/ru/pro-app/lates ... atures.htm

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

Добавлено: 09 мар 2023, 15:57
Anik
crashkkm, про топологию я знаю, и нахожу эти пересечения с помощью топологии, но он их только подсвечивает, а мне нужно в таблице атрибутов исходного шейпа их отобразить/выделить, чтобы дальше с ними производить манипуляции.

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

Добавлено: 09 мар 2023, 17:39
drrrrr
Если речь о дубликатах, не о пересечениях, то создайте виртуальный слой по SQL запросу

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

select *, count(*) cnt  from test group by test.geometry
Результирующий слой будет содержать поле cnt - счетчик дубликатов геометрии текущего объекта.
Диалог создания виртуального слоя:
20230309_173741.png
20230309_173741.png (82.16 КБ) 2497 просмотров

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

Добавлено: 09 мар 2023, 18:44
gamm
drrrrr писал(а):
09 мар 2023, 17:39
group by test.geometry
интересно, а группировка идет потекстовому представлению (wkt?)?

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

Добавлено: 10 мар 2023, 04:48
crashkkm
Anik писал(а):
09 мар 2023, 15:57
crashkkm, про топологию я знаю, и нахожу эти пересечения с помощью топологии, но он их только подсвечивает, а мне нужно в таблице атрибутов исходного шейпа их отобразить/выделить, чтобы дальше с ними производить манипуляции.
не знаю про какую топологию вы пишете, ту, про которую пишу я именно это все и можно делать. Задавать нужные правила, подсвечивать, видеть все ошибки в атрибутивной таблице, видеть зоны исправления.

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

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

overlay_equals( 'слой')

Не забудьте выбрать вместо 'слой' в навигаторе (справа от выражения) Слои карты - Ваш слой.
Ок.
После выполнения, в таблице появится поле с заданным именем, в этом поле TRUE - двойной (тройной) объект, FALSE - уникальный объект без дублей.
Ну и осталось отсортировать по полю, выделить в таблице нужное, удалить/классифицировать/скопировать...

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

Добавлено: 10 мар 2023, 15:10
Anik
AlexRomantsov, спасибо, но что-то он всем линиям одно задал, хотя есть линии и без пересечений.

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

Добавлено: 13 мар 2023, 05:46
AlexRomantsov
А "что то одно"- false? А ваши двойные линии - точно координатные дубликаты? или просто похожие?