Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 24 May 2022 18:17

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 166

QGIS: Legende Atlas / CLC ?

Je cherche à ajouter à la légende Corine Land Cover la proportion de l'occupation du sol dans l'emprise de mon Atlas.
J'essaye via une expression du type

Code:

aggregate( layer:='clc', 
aggregate:='sum',
expression:="surf", filter:="code"=112)

mais sans succès j'ai la surface totale à chaque fois

Hors ligne

 

#2 Wed 25 May 2022 09:06

shirosaki
Participant actif
Lieu: Lyon
Date d'inscription: 30 Mar 2018
Messages: 124

Re: QGIS: Legende Atlas / CLC ?

Bonjour,
la formule que vous avez renseigné renvoi la somme des surfaces des entités "Tissu urbain discontinu" (code = 112) de votre couche Corine Land Cover
pour avoir la somme des surfaces des entités "Tissu urbain discontinu" intersectants l'entité courante de l'atlas, il faut renseigner une formule de ce genre :

Code:

 area(
    intersection(
    @atlas_geometry,
    collect_geometries(
        overlay_intersects(
            layer:='clc',
            expression:=$geometry,
            filter:="code"=112
            )
    )
    )
)

ps : la couche 'clc' et la couche sur laquelle l'atlas repose doivent être dans le même système de coordonnées

Dernière modification par shirosaki (Wed 25 May 2022 09:16)


Paul QUESNOT

Hors ligne

 

#3 Wed 25 May 2022 11:31

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 166

Re: QGIS: Legende Atlas / CLC ?

ah ok merci
cependant je voudrais que ce soit dynamique pour chaque étiquettes

Code:

 area(
    intersection(
    @atlas_geometry,
    collect_geometries(
        overlay_intersects(
            layer:='clc',
            expression:=$geometry,
            filter:="code"= @symbol_label
            )
    )
    )
)

cela me renvoi une chaine vide...

Hors ligne

 

#4 Wed 25 May 2022 13:59

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1622

Re: QGIS: Legende Atlas / CLC ?

Bonjour,

Essayez ceci

aggregate('clc','sum', "surf",filter:=within($geometry,@atlas_geometry))


Vous n'aurez que la somme, la proportion est une autre paire de manches...

Hors ligne

 

#5 Wed 25 May 2022 15:32

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 166

Re: QGIS: Legende Atlas / CLC ?

Vous n'aurez que la somme, la proportion est une autre paire de manches...


Mon but est justement de faire des proportions hmm

Hors ligne

 

#6 Wed 25 May 2022 16:54

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3799

Re: QGIS: Legende Atlas / CLC ?

Bonjour,
@Ricola62, la suggestion de Paul vous renvoie-t-elle le résultat escompté? Si oui, la classification est bien faite sur le champ code? Et le texet de légende pas modifiée entre temps? Cf. https://docs.qgis.org/3.22/fr/docs/user … end-labels

Hors ligne

 

#7 Thu 02 June 2022 11:02

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 166

Re: QGIS: Legende Atlas / CLC ?

@santana merci, la doc qgis m'a bcp aidé

Code:

format( '%1 - %2 %',
        @symbol_label,
        round( aggregate(@layer, 'sum', $area, filter:= "lib"=@symbol_label AND  "id_ctxt" =  @atlas_featureid  )*100/area( @atlas_geometry ),1))

Hors ligne

 

#8 Thu 02 June 2022 12:39

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 166

Re: QGIS: Legende Atlas / CLC ?

du coup je reviens sur mon résultat, je cherche à filtrer les items de légendes ( >0%) cependant dans l'outil "filtrer l'expression" je n'ai pas accès aux variables @symbol_label etc. avez vous une idée?


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

Pied de page des forums

Powered by FluxBB