Pages: 1
- Sujet précédent - QGIS: Selectionner un % de polygones en fonction nombre d'entites - Sujet suivant
#1 Mon 11 January 2021 11:48
- oligator6200
- Participant occasionnel
- Date d'inscription: 10 May 2019
- Messages: 32
QGIS: Selectionner un % de polygones en fonction nombre d'entites
Bonjour à toutes et à tous,
Meilleurs voeux pour cette nouvelle année !
Je souhaiterais effectuer un échantillonnage aléatoire stratifié sur QGIS pour cela je dispose d'une couche d'occupation des sols avec 51000 entités divisés en plusieurs classes dont chacune comportent un nombre disparate d'entités. L'idée c'est que je souhaiterais sélectionner, en fonction du nombre d'entités d'une classe, un pourcentage de polygone à vérifier. Ainsi pour les classes qui comportent plus de 5000 polygones, il faudrait de manière aléatoire ne conserver que 2 % de ces polygones, pour les classes qui comportent entre 1000 et 5000 polygones on sélectionne 5% des polygones, pour les classes qui en comportent entre 500 et 1000, 10%, pour les classes qui en comportent entre 130 et 500, 15%, pour les classes qui en comportent entre 50 et 130 Polygones, 30% et enfin 100% pour toutes les classes qui comportent moins de 50 entités.
Par exemple : la classe Surfaces baties comporte 19863 Polygones, je souhaiterais ne retenir de manière aléatoire que 2% de ces polygones soit environ 397 polygones à sélectionner tandis que la classe Prairies humides ne comporte que 637 dont je souhaiterais en sélectionner 10% soit environ 64 entités.
Quelqu'un aurait une idée sur la manière dont il faudrait s'y prendre pour faire cela s'il vous plaît ?
Je ne sais pas si je suis clair mais n'hésitez pas à me demander des précisions.
Je vous remercie par avance.
Bonne journée, Oli
Hors ligne
#2 Mon 11 January 2021 12:43
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Selectionner un % de polygones en fonction nombre d'entites
Bonjour,
Il faut utiliser la boite à outils de traitement et aussi le modeleur.
Etape 1 : faire une extraction des couches par le champs classe pour obtenir autant de couche que de classe. Cela va séparer les couches.
Etape 2 : charger le modèle en pj qui utilise l'agortihme random select mais l'adapte car le champs n'est pas fixe (j'ai mis la formule que vous souhaitiez).
Etape 3 : executer l'algorithme charger (se trouve dans les modèles (groupe teste et nom random_select_based_feature_count
Il est possible d'éxecuter ceci en mode batch via un clic droit.
Etape 4 : fusionner les couches selectionnees
Hors ligne
#3 Mon 11 January 2021 19:47
- oligator6200
- Participant occasionnel
- Date d'inscription: 10 May 2019
- Messages: 32
Re: QGIS: Selectionner un % de polygones en fonction nombre d'entites
Bonjour,
Merci beaucoup pour votre réponse et votre algorithme. Si j'ai bien compris, il me faut extraire dans ma couche d'occupation des sols chacune des classes qui la compose pour n'avoir plus qu'une classe par couche. Jusque là, pas de problème mais j'ai ensuite essayé de charger votre script dans le modeleur graphique et j'obtiens une erreur d'exécution du code python (AttributeError: 'NoneType' object has no attribute 'svgIconPath' ). Quelle manipulation ai-je loupé ?
Merci d'avance,
Oli
Hors ligne
#4 Mon 11 January 2021 21:35
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Selectionner un % de polygones en fonction nombre d'entites
Bonsoir,
vous avez quelle version de qgis ? J'ai produit le modeleur avec la dernière version de qgis 3.16
Hors ligne
#5 Tue 12 January 2021 09:08
- oligator6200
- Participant occasionnel
- Date d'inscription: 10 May 2019
- Messages: 32
Re: QGIS: Selectionner un % de polygones en fonction nombre d'entites
Bonjour,
Ah mince, effectivement ce doit être ça car je suis toujours sur la version LTR 3.4 Madeira, et je ne peux rien mettre à jour étant donné que je n'ai pas les droits sur ce pc..
En tout, cas merci de votre aide.
Bonne journée,
Oli
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Selectionner un % de polygones en fonction nombre d'entites - Sujet suivant