Message posté par : SANTANNA
----------------------------------------
Je pense que l'extrait ci-dessous marche. A confirmer. J'ai essayé de commenter le
code mais je vous invite à lire l'aide des fonctions qui sont utilisées, voire à
commenter des blocs pour voir ce qui est renvoyé à chacune des étapes.
-----------------
Code :
with_variable('champcalc', 'cult_1', -- 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(1952, 0
,1981, 29
,1999, 18
,2004, 5
,2008, 4
,2012, 4
,2016, 4
,2018, 2
,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
)
)
)
)
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=351856#p351856
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