Связать или вставить несколько стобцов из одного слоя в другой слоем

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение _taras_ » 21 мар 2021, 16:26

Приветствую всех!
Есть ли простая возможность в калькуляторе полей использовать в расчетах столбцы из другого векторного слоя?
Или вставить в таблицу атрибутов колонку из другого векторного слоя?
Естественно проекция, п/н строк и т.п. совпадает.
Задача стоит посчитать прирост по вегетативному индексу, где каждый слой - месяц.
Я решил ее в "лоб" - использовав вектор--управление данными--присоединить атрибуты.... Но слишком много мороки.

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение freeExec » 22 мар 2021, 09:14

Сложить всё в geopackage, тогда SQL позволит доставать данные из любой таблицы(слоя).

konst555
Активный участник
Сообщения: 211
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение konst555 » 22 мар 2021, 11:52

Идея правильная. Давно пора переходить в geopackage.
В вопросе не увидел - как записи связаны между собой? Только координатами? Или одна из таблиц вообще без координат?
Традиционно делаются индексные поля для связи полей. В противном случае никто не гарантирует порядок вычислений между таблицами.

_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение _taras_ » 22 мар 2021, 12:35

Спасибо ответившим!
konst555 писал(а):
22 мар 2021, 11:52
как записи связаны между собой
Порядковый номер (id) полигона для всех слоев одинаковый. Это одни и те-же полигоны, только с данными изменяющихся по месяцам. Полигон 1 (id=1) значения апрель -0,2 и май -0,4 т.д. Каждый месяц отдельный слой.
Предполагалось взять значение мая и вычесть апрель (определить прирост) и не хранить в таблице слоя значения пред. месяца.

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение Ivor » 22 мар 2021, 12:45

_taras_, тогда вам нужно хранить отдельно - полигоны с их id и отдельно - таблицы данных (но без геометрии!) по месяцам и с приростом (или вычислять его, не суть). И связывать их по полю id. Дублировать геометрию (полигоны) в кучу слоёв - откровенно избыточно и не совсем корректно.

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение freeExec » 22 мар 2021, 12:56

Тогда действительно, храните значения в каком нибудь CSV и далее на настройках слоя есть пункт "связи" где эти данные надо присоединить.

_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение _taras_ » 22 мар 2021, 13:30

Ivor писал(а):
22 мар 2021, 12:45
тогда вам нужно хранить отдельно - полигоны с их id и отдельно - таблицы данных (но без геометрии!) по месяцам и с приростом (или вычислять его, не суть). И связывать их по полю id.
Как это вглядит? Получается два слоя -- полигоны и данные?
freeExec писал(а):
22 мар 2021, 12:56
на настройках слоя есть пункт "связи" где эти данные надо присоединить.
Не нахожу.
Свойства слоя--связи предлагает выбрать только другой векторный слой

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение freeExec » 22 мар 2021, 13:49

Другой слой, но не обязательно векторный. Так же там могут быть и табличные данные.

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение Ivor » 22 мар 2021, 13:58

_taras_, Выглядит это следующим образом:
1. Векторный слой (полигоны) с границами областей и целочисленным полем id (плюс другие какие поля, если есть - кроме помесячных данных)
2. Таблица с помесячными данными, в которой лежат записи вида (условно) id, месяц, значение. Это не векторный слой, это просто таблица данных (имеет тип геометрии No Geometry).

Удобно и вектор, и данную таблицу хранить в одном GeoPackage.

3. В проект подгружаете векторный слой. Таблицу данных подгружаете столько раз, сколько у вас месяцев. Для каждого месяца прописываете в свойствах слоя, во вкладке Источник данных (вроде, у меня английский стоит, там это Source) в поле Provider Feature Filter (по-русски не знаю, простите. Большое поле внизу) выражение

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

"id" = значение месяца
id - именно так, в кавычках, значение месяца - ну уж как вы там их закодировали, не знаю.
4. И через свойства слоя -> связи связываете вектор с данными по id (можете все сразу, можете попарно по месяцам).

_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Re: Связать или вставить несколько стобцов из одного слоя в другой слоем

Сообщение _taras_ » 22 мар 2021, 14:02

Ivor , спасибо, буду разбираться.

Ответить

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

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

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