Страница 1 из 1
					
				Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 21 мар 2021, 16:26
				 _taras_
				Приветствую всех!
Есть ли простая возможность в калькуляторе полей использовать в расчетах столбцы из другого векторного слоя?
Или вставить в таблицу атрибутов колонку из другого векторного слоя?
Естественно проекция, п/н строк и т.п. совпадает.
Задача стоит посчитать прирост по вегетативному индексу, где каждый слой - месяц.
Я решил ее в "лоб" - использовав вектор--управление данными--присоединить атрибуты.... Но слишком много мороки.
			 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 09:14
				 freeExec
				Сложить всё в geopackage, тогда SQL позволит доставать данные из любой таблицы(слоя).
			 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 11:52
				 konst555
				Идея правильная. Давно пора переходить в geopackage.
В вопросе не увидел - как записи связаны между собой?  Только координатами? Или одна из таблиц вообще без координат?
Традиционно делаются индексные поля для связи полей. В противном случае никто не гарантирует порядок вычислений между таблицами.
			 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 12:35
				 _taras_
				Спасибо ответившим!
konst555 писал(а): ↑22 мар 2021, 11:52как записи связаны между собой
 
Порядковый номер (id) полигона для всех слоев одинаковый. Это одни и те-же полигоны, только с данными изменяющихся по месяцам. Полигон 1 (id=1) значения апрель -0,2 и май -0,4 т.д. Каждый месяц отдельный слой.
Предполагалось взять значение мая и вычесть апрель (определить прирост) и не хранить в таблице слоя значения пред. месяца.
 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 12:45
				 Ivor
				_taras_, тогда вам нужно хранить отдельно - полигоны с их id и отдельно - таблицы данных (но без геометрии!) по месяцам и с приростом (или вычислять его, не суть). И связывать их по полю id. Дублировать геометрию (полигоны) в кучу слоёв - откровенно избыточно и не совсем корректно.
			 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 12:56
				 freeExec
				Тогда действительно, храните значения в каком нибудь CSV и далее на настройках слоя есть пункт "связи" где эти данные надо присоединить.
			 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 13:30
				 _taras_
				Ivor писал(а): ↑22 мар 2021, 12:45тогда вам нужно хранить отдельно - полигоны с их id и отдельно - таблицы данных (но без геометрии!) по месяцам и с приростом (или вычислять его, не суть). И связывать их по полю id. 
 
Как это вглядит? Получается два слоя -- полигоны и данные?
freeExec писал(а): ↑22 мар 2021, 12:56 на настройках слоя есть пункт "связи" где эти данные надо присоединить.
 
Не нахожу.
Свойства слоя--связи предлагает выбрать только  другой векторный слой
 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 13:49
				 freeExec
				Другой слой, но не обязательно векторный. Так же там могут быть и табличные данные.
			 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 13:58
				 Ivor
				_taras_, Выглядит это следующим образом:
1. Векторный слой (полигоны) с границами областей и целочисленным полем id (плюс другие какие поля, если есть - кроме помесячных данных)
2. Таблица с помесячными данными, в которой лежат записи вида (условно) 
id, месяц, значение. Это не векторный слой, это просто таблица данных (имеет тип геометрии No Geometry).
Удобно и вектор, и данную таблицу хранить в одном GeoPackage.
3. В проект подгружаете векторный слой. Таблицу данных подгружаете столько раз, сколько у вас месяцев. Для каждого месяца прописываете в свойствах слоя, во вкладке 
Источник данных (вроде, у меня английский стоит, там это 
Source) в поле 
Provider Feature Filter (по-русски не знаю, простите. Большое поле внизу) выражение 
id - именно так, в кавычках, значение месяца - ну уж как вы там их закодировали, не знаю.
4. И через 
свойства слоя -> связи связываете вектор с данными по id (можете все сразу, можете попарно по месяцам).
 
			 
			
					
				Re: Связать или вставить несколько стобцов из одного слоя в другой слоем
				Добавлено: 22 мар 2021, 14:02
				 _taras_
				Ivor , спасибо, буду разбираться.