Объединить смежные параллельные линии и добавить количество в качестве атрибута в QGIS?


9

У меня есть слой, содержащий несколько линий, представляющих летящие следы самолетов. Моя цель - создать карты для анализа потока трафика в определенных воздушных пространствах.

Я хотел бы объединить все параллельные или почти параллельные линии сегменты, которые находятся на определенном расстоянии друг от друга (скажем, 1 морская миля).

Новые объединенные строки должны содержать атрибут, содержащий количество исходных строк, которые были объединены. Например, если 5 параллельных линий объединяются в одну, новая объединенная строка должна иметь атрибут count 5, что позволило бы мне соответствующим образом ее стилизовать.

Рассмотрим следующий схематический пример:

Входные данные:

введите описание изображения здесь

Три отдельные линии, две из которых имеют общий параллельный сегмент.

Желаемый результат:

введите описание изображения здесь

Общая часть зеленой и оранжевой линий была объединена в одну линию (красная). Новая красная линия будет иметь атрибут count 2.

Примечание: в этом примере красная линия будет средней из двух исходных отрезков. Оставшиеся зеленые и оранжевые отрезки не обязательно должны точно соединяться с новой красной линией. Другими словами, топология не должна быть неповрежденной, поскольку результат будет использоваться только для визуального представления.

По сути, я пытаюсь создать что-то вроде этого:

введите описание изображения здесь

(источник)

Как мне добиться такого результата в QGIS? Имейте в виду, что фактический набор данных намного больше, чем в моем примере выше, поэтому решение должно быть масштабируемым.

Я наткнулся на этот урок, который делает что-то очень похожее на то, что я пытаюсь сделать. Тем не менее, я хотел бы иметь возможность сделать это с помощью QGIS.

Ответы:


1

Во-первых, вы не хотите, чтобы линии перекрывались, а только отражали в атрибутах количество рейсов, которые используют один и тот же путь. Это можно сделать, выполнив следующие действия:

Убедитесь, что вы создали новый столбец для своих линий, назовите его «рейсы» и используйте значение 1 для всех из них. Я использовал имя «Граф», которое не самое лучшее.

Затем выполните буферную операцию с желаемой близостью, вам нужно будет поиграть с расстоянием, которое вы считаете подходящим для вашего анализа: (моя QGIS на испанском, но я уверен, что вы можете это выяснить)

буфер

Затем у вас есть буферизованные строки, которые, скорее всего, касаются друг друга, например колбасы. Ваш последний шаг - выполнить пространственное объединение под векторным меню управления данными. Используйте параметры пересечения, как показано ниже:

присоединиться

Убедитесь, что вы добавили итоговую опцию с суммой. Результатом будет новый столбец в каждом атрибуте, добавляющий количество других пересекающихся рейсов. Если у линий есть идентификатор, вы можете присоединить этот новый столбец к исходным строкам или превратить буферизованные полигоны обратно в линии.

Если вы хотите упростить и удалить лишние строки, это другая проблема, но я надеюсь, что мог бы помочь вам начать хотя бы.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.