Pages: 1
- Sujet précédent - QGIS: Selection geograph avec critere de pourcentage de superposition - Sujet suivant
#1 Tue 20 September 2022 17:27
- nicolas34
- Juste Inscrit !
- Date d'inscription: 6 Sep 2022
- Messages: 8
QGIS: Selection geograph avec critere de pourcentage de superposition
Bonjour,
Je souhaite identifier des éléments d'une couche A qui intersectent des éléments d'une couche B. Les 2 couches sont surfaciques.
Mais ma couche B étant dessinée assez grossière, je souhaite que seuls les éléments A qui ont au moins 95% (ou disons 0,5 ha) de leur surface dans un élément B ressortent. Je ne veux pas que la sélection puisse prendre des éléments A qui ont juste un bout dans un élément B.
La sélection par localisation ne fonctionne pas car si je choisis :
- A contenu dans B, ils faut que tout l'élément A soit inclus dans B
- A intercepte B non plus car on a même les toutes petites superpositions.
Je pense qu'il faut faire une sélection par expression, mais avez-vous une idée de la formule adéquate ?
Merci d'avance.
Dernière modification par nicolas34 (Tue 20 September 2022 17:28)
Hors ligne
#2 Thu 22 September 2022 15:18
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3928
Re: QGIS: Selection geograph avec critere de pourcentage de superposition
Bonjour,
Sur une >=3.26, la fonction overlay_intersects, avec son argument min_overlap devrait faire l'affaire, pour ce qui est du 0,5 ha.
Pour la méthode à 95%, il faudrait pouvoir intersecter chaque entité A avec chacune des superposées B, en définir la surface, comparer celle-ci avec la surface de A et décider si on retient ou pas. Ça donne, en passant par l'outil de sélection par entité
Code:
with_variable( 'liste_superposes', -- Pour chaque entité, on crée une liste overlay_intersects('couche B', NOM), -- des entités en superposition dans l'autre couche -- où NOM est un champ identifiant de façon unique les entités dans B case when array_max( -- on va ensuite créer une liste des pourcentages de superposition entre l'entité actuelle -- et chacune des entités en superposition dans l'autre couche et -- comparer la plus grande valeur de cette liste array_foreach( @liste_superposes, with_variable( 'zone_superpose', intersection($geometry, geometry(get_feature('couche B', 'NOM', @element))), round(area(@zone_superpose)*100/area($geometry),2) ) ) ) >=95 -- à la proportion seuil précédemment définie then TRUE END -- Si c'est supérieur on prend, -- TRUE peut être remplacé par une valeur texte si on veut stocker l'info dans un champ par ex. )
EDIT: Modification du code pour utiliser les noms de couche dans le commentaire initial
Dernière modification par SANTANNA (Mon 26 September 2022 17:00)
Hors ligne
#3 Mon 26 September 2022 16:36
- nicolas34
- Juste Inscrit !
- Date d'inscription: 6 Sep 2022
- Messages: 8
Re: QGIS: Selection geograph avec critere de pourcentage de superposition
Bonjour,
Merci pour votre réponse, je vais tester cette sélection !
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Selection geograph avec critere de pourcentage de superposition - Sujet suivant