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

Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 05:11
lesnik
Доброе время суток! Уважаемые форумчане, помогите решить следующую задачку:
Необходимо сравнить два слоя (полигональный и точечный) по одному общему полю. Результатом данного сравнения должен быть слой, в которой будут скопированы точки не попавшие в полигоны. (пример полигоны и точки имеют общее поле "название административных районов региона", таких районов около 20, а точек несколько тысяч, визуально видно что некоторые точки лежат не в своем районе, но вручную перебирать очень долго и проводить эту процедуру нужно периодически). как это осуществить?? Заранее благодарю за помощь

Re: Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 06:29
dab
Исходя из предпосылки что Вы используете QGIS 2
Слой Т - точечный, слой П - полигональный
1. в свойствах слоя Т, закладка "Общие", "Подмножество объектов" установите подмножество по условию равенства "название административных района" конкретному району Р, то есть на Т слое должны отображаться только точки со значением атрибута "название ..." = Р
2. в слое П выделите этот район Р
3. модуль "Пространственные запросы": выбрать объекты в слое Т, где объект не пересекает объекты слоя П (x только выделенные объекты) - получите в результате выделенные точки с атрибутом Р, но не лежащие в районе Р

1-3 повторить для следующего района

Re: Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 07:02
lesnik
Спасибо, это ручное решение (просто примет на административных районах), а хотелось бы все таки автомат...так как таких административных районов может быть гораздо больше, и каждый раз проводить такие процедуры то же не айс...

Re: Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 07:07
dab
lesnik писал(а):а хотелось бы все таки автомат...
Скрипт на Python

Re: Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 07:38
lesnik
признаюсь честно (стыднооо) не знаю как

Re: Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 08:16
dab
lesnik писал(а):признаюсь честно (стыднооо) не знаю как
Стыдиться то нечего. Каждый своим делом должен заниматься, я так считаю.
Для реального скрипта нужен пример реальных данных. Иначе, обычно, "выливается" в нудную переписку вопрос-ответ... Времени жаль.

Re: Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 08:45
lesnik
не вопрос (данные могу скинуть)

Re: Сравнение двух слоёв по одному полю

Добавлено: 31 окт 2013, 12:17
rhot
lesnik писал(а):Спасибо, это ручное решение (просто примет на административных районах), а хотелось бы все таки автомат...так как таких административных районов может быть гораздо больше, и каждый раз проводить такие процедуры то же не айс...
На SQL делается всё в 1 запрос.

Re: Сравнение двух слоёв по одному полю

Добавлено: 05 ноя 2013, 05:34
dab
lesnik писал(а):не вопрос (данные могу скинуть)
Посмотрите ЛС в Вашем личном разделе.

Re: Сравнение двух слоёв по одному полю

Добавлено: 07 ноя 2013, 09:57
dab
Скрипт на Python для QGIS 2.
Имена слоёв и названия общих атрибутов можно изменять в строках

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

# Имена проверяемых векторных слоёв
layerPolygonName    = u'UCH_LESNICHESTVO'
layerPointName      = u'1468ppn'

# Имена одинаковых по значению атрибутов
fieldPolygonName    = u'NAME'
fieldPointName      = u'Name'

Re: Сравнение двух слоёв по одному полю

Добавлено: 07 ноя 2013, 10:15
lesnik
спасибо большое