Message posté par : alix71000
----------------------------------------
Update :
J'ai réussi à "comprendre" et faire fonctionner le code (dans calculatrice
de champ) !
Au début cela m'affichait des durées étranges par rapport au recensement mais en fait
c'est parce que les valeurs attribuées aux années doivent directement commencer par 29
en 1952.
-----------------
Code :
with_variable('champcalc', 221, -- on crée une variable pour stocker le nom du
champ qu'on veut calculer, il faudra remplacer 'cult_1' par votre valeur
d'occupation de sol
with_variable(
'annees_recensement_duree', -- on crée une autre variable tableau associant
l'année d'observation à la durée d'existence correspondante depuis le
précédent recensement
map('C_1952', 29
,'C_1981', 18
,'C_1999', 5
,'C_2004', 4
,'C_2008', 4
,'C_2012', 2
,'C_2014', 2
,'C_2016', 2
,'C_2018', 2
,'C_2020', 2),
array_sum( -- on va sommer les valeurs d'une liste
array_foreach(-- laquelle liste est créée à partir des champs année
d'observation sur lesquels on va itérer
map_akeys(@annees_recensement_duree), -- ceci renvoie la liste des années
d'observation
CASE WHEN attributes()[@element]=@champcalc -- si l'observation dans
l'année est celle voulue
THEN map_get(@annees_recensement_duree, @element) -- on récupère le nombre
d'années correspondantes dans le tableau
ELSE 0 -- sinon on met 0
END
)
)
)
)
-----------------
Encore merci pour votre aide Santanna !!
Bien à vous :)
Alix
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=351882#p351882
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net