Пересечение точек и линий (QGIS)

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
UlvHare
Интересующийся
Сообщения: 24
Зарегистрирован: 19 авг 2017, 10:38
Репутация: 9
Откуда: Москва

Пересечение точек и линий (QGIS)

Сообщение UlvHare » 13 май 2020, 14:34

Здравствуйте!
Имеется слой с маршрутами (линии) и слой точек находок (след пересекает маршрут). Точность плюс-минус ошибка GPS, поэтому точки могут лежать чуть-чуть не на маршруте. Надо получить число пересечений на километр каждого маршрута. Сейчас просто визуально считаю точки и через инструмент "определить объекты" смотрю длину маршрута. А хотелось бы автоматизировать процесс. Например, поле в таблице маршрутов со значением "найти все точки в слое точек, которые лежат не дальше 5 м от этого маршрута, поделить их число на длину маршрута". Если, конечно, такое возможно. Если да, то нужна ссылка на учебник SQL-диалекта, используемого в QGIS, с примерами. Или пример запроса, если нетрудно. Да, оба слоя - таблицы в одной БД (файл gpkg).

drrrrr
Участник
Сообщения: 86
Зарегистрирован: 31 янв 2012, 10:51
Репутация: 51

Re: Пересечение точек и линий (QGIS)

Сообщение drrrrr » 13 май 2020, 15:49

Диалект - SQLite.
Создайте виртуальный слой, добавьте слои и обзовите их pnt и lin
запрос

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

select lin.fid,count(pnt.fid) , st_length(lin.geometry)/count(pnt.fid) from lin, pnt where st_intersects(lin.geometry, st_buffer(pnt.geometry, 5)) group by lin.fid, lin.geometry;
создаст таблицу с идентификатором линейного объекта, количеством пересечений, и искомым значением расстояния для каждой линии. Пороговое расстояние от точки до линии - размер буфера в запросе.

UlvHare
Интересующийся
Сообщения: 24
Зарегистрирован: 19 авг 2017, 10:38
Репутация: 9
Откуда: Москва

Re: Пересечение точек и линий (QGIS)

Сообщение UlvHare » 15 май 2020, 15:52

Спасибо! Долго бился, пытаясь понять, почему только 1 строка в итоговой таблице, но понял, что это глюк именно просмотрщика таблицы атрибутов - он ставит некий необнаружимый фильтр (на минимальном примере с 2 линиями и 10 точками "Features Total:2, Filtered:1, Selected:0 "). Если просматривать таблицу через менеджер БД - всё ОК. Осталось сообразить, как эту табличку в отчёт вкрячить. Подозреваю, что придётся изучать R-пакеты, связанные с ГИС, я давно уже все отчёты и черновики статей в rmarkdown делаю.
Кстати, русского учебника по SQLite+spatialite (или английского с кучей примеров) так и не нашёл, если знаете, дайте ссылку, пожалуйста.

drrrrr
Участник
Сообщения: 86
Зарегистрирован: 31 янв 2012, 10:51
Репутация: 51

Re: Пересечение точек и линий (QGIS)

Сообщение drrrrr » 15 май 2020, 16:57

Про учебники ничего сказать не могу, документация по spaialite с примерами https://www.gaia-gis.it/gaia-sins/spati ... opics.html. Хорошо описаны функции геообработки в документации postgis http://postgis.net/docs/manual-2.5/reference.html

Ответить

Вернуться в «Я новичок!»

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

Сейчас этот форум просматривают: Kyliepably и 33 гостя