Pages: 1
- Sujet précédent - QGIS / PPA: Methode pour prioriser les territoires selon l enjeu - Sujet suivant
#1 Fri 12 July 2019 15:50
- J.Brgn
- Juste Inscrit !
- Date d'inscription: 5 Jul 2019
- Messages: 3
QGIS / PPA: Methode pour prioriser les territoires selon l enjeu
Bonjour à toutes et à tous,
Je me permets de poster un message car j’ai grandement besoin de votre aide sur QGIS.
Je travaille dans une structure qui est PPA sur les documents d’urbanisme, donc nous émettons régulièrement des avis dans ce cadre. Nous souhaiterions mieux nous organiser en priorisant les sollicitations sur les documents d’urbanisme par rapport à certains critères que l’on n’a pas encore défini précisément, mais j’ai ma petite idée :
- Le type de territoire : plutôt urbain ? plutôt rural ?
- Le nombre d’habitants
- L’évolution du nombre d’habitants
- La densité de population
- Le nombre d’entreprises artisanales
- L’évolution du nombre d’entreprises artisanales
- Le nombre de commerces
- L’évolution du nombre de commerces
- Projet d’infrastructure
- Projet urbains
- Projet de développement local
....
Nous voulons réaliser une carte qui montre le niveau de priorité pour chaque commune (avec une nuance du vert au rouge par exemple). Cette carte indiquerait si l’enjeu est faible, moyen ou fort. A chacun des critères de cette liste ci-dessus, nous allons associer des seuils pour pouvoir ensuite traiter cela sous QGiS. Par exemple :
Nombre d’habitants :
10000 = 3
Evolution du nombre d’habitants :
-5 à 5 = 1
-20 à -5 et 5 à 20 = 2
>-20 et >20 = 3
L’idée est de dire : pour un territoire X, si les critères montrent une majorité de 3, ce territoire comporte de forts enjeux, donc ce territoire est prioritaire.
Au contraire, si le territoire X, les critères montrent une majorité de 1, alors ce territoire comporte des enjeux plus faibles et n’est donc pas prioritaire.
J'espère que vous voyez ce que je veux dire, j'ai l'impression de ne pas être très clair haha.
Vous avez des solutions pour moi ? Je précise que je ne suis pas du tout géomaticien mais par contre j'aime passer du temps à expérimenter sur QGiS
Je vous remercie d'avance, Bon week-end
Hors ligne
#2 Mon 15 July 2019 11:27
Re: QGIS / PPA: Methode pour prioriser les territoires selon l enjeu
Bonjour,
Dans l'idée, il faut rapatrier au sein d'une couche toutes les colonnes correspondant aux variables avec le niveau
Pour cela, si plusieurs couches, utiliser union
Soit une couche ayant cette forme :
Code:
id | V1 | V2 | V3 1 | 1 | 3 | 3 2 | 3 | 1 | 1
Par la suite, pour calculer les statistiques de comptage, alors on peut utiliser l'expression suivante qui donne quel niveau a la majorité parmi les trois variables du tableau :
Code:
with_variable('counts', array( array_count(array("V1", "V2","V3"), 1), array_count(array("V1", "V2","V3"), 2), array_count(array("V1", "V2","V3"), 3) ), array_find(@counts, array_max(@counts)) + 1 )
Soit, en résultat :
Code:
id | V1 | V2 | V3 | majorite 1 | 1 | 3 | 3 | 3 2 | 3 | 1 | 1 | 1
Histoire de décomposer :
Code:
array("V1", "V2","V3")
crée un tableau contenant les niveaux pour chacune des trois colonnes
Code:
array_count(array("V1", "V2","V3"), 1)
compte le nombre de cellules contenant la valeur de niveau 1 pour chacune des lignes
Ainsi, soit un tableau contenant ces valeurs :
Code:
[1,0,2]
Code:
array_find(@counts, array_max(@counts))->2
retourne l'index dans le tableau de comptage qui contient la valeur de comptage maximale, soit ici l'index 2 pour la valeur maximale de 2 (l'index va de 0 à 2)
Pour avoir un index plus réaliste :
Code:
array_find(@counts, array_max(@counts)) + 1
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Tue 16 July 2019 16:15
- J.Brgn
- Juste Inscrit !
- Date d'inscription: 5 Jul 2019
- Messages: 3
Re: QGIS / PPA: Methode pour prioriser les territoires selon l enjeu
Merci beaucoup pour ta réponse MathieuR !
J'essaye cela dès que possible. A première lecture, je sens que je vais galérer, je n'ai jamais eu à faire quelque chose de ce type. Mais c'est l'occasion d'essayer
Je vous tiens au courant
Hors ligne
#4 Wed 17 July 2019 15:24
- J.Brgn
- Juste Inscrit !
- Date d'inscription: 5 Jul 2019
- Messages: 3
Re: QGIS / PPA: Methode pour prioriser les territoires selon l enjeu
Bonjour,
Dans l'idée, il faut rapatrier au sein d'une couche toutes les colonnes correspondant aux variables avec le niveau
Pour cela, si plusieurs couches, utiliser union
Soit une couche ayant cette forme :Code:
id | V1 | V2 | V3 1 | 1 | 3 | 3 2 | 3 | 1 | 1Par la suite, pour calculer les statistiques de comptage, alors on peut utiliser l'expression suivante qui donne quel niveau a la majorité parmi les trois variables du tableau :
Code:
with_variable('counts', array( array_count(array("V1", "V2","V3"), 1), array_count(array("V1", "V2","V3"), 2), array_count(array("V1", "V2","V3"), 3) ), array_find(@counts, array_max(@counts)) + 1 )Soit, en résultat :
Code:
id | V1 | V2 | V3 | majorite 1 | 1 | 3 | 3 | 3 2 | 3 | 1 | 1 | 1Histoire de décomposer :
Code:
array("V1", "V2","V3")crée un tableau contenant les niveaux pour chacune des trois colonnes
Code:
array_count(array("V1", "V2","V3"), 1)compte le nombre de cellules contenant la valeur de niveau 1 pour chacune des lignes
Ainsi, soit un tableau contenant ces valeurs :Code:
[1,0,2]Code:
array_find(@counts, array_max(@counts))->2retourne l'index dans le tableau de comptage qui contient la valeur de comptage maximale, soit ici l'index 2 pour la valeur maximale de 2 (l'index va de 0 à 2)
Pour avoir un index plus réaliste :Code:
array_find(@counts, array_max(@counts)) + 1
Bonjour,
J'ai bien compris la logique du raisonnement que vous m'avez expliqué MathieuR, mais quelques points me bloquent :
- dans votre formule, je remplace bien les V1, V2, V3 par le nom de mes champs ?
- à quoi correspondentexactement les 1, 2 et 3 à la fin de ce code ?
array_count(array("V1", "V2","V3"), 1),
array_count(array("V1", "V2","V3"), 2),
array_count(array("V1", "V2","V3"), 3)
- y a t-il autre chose à rajouter dans cette formule (signe =, des espaces à supprimer) ?
Quand je copie-colle votre formule dans la calculatrice de champ, en changeant les V1, V2, V3 par le nom de mes champs, cela me met que la formule est incorrecte.
Je sais bien que mes questions peuvent paraître simplistes, mais c'est une des première fois que suis amené à utiliser ce type de formule.
Un grand merci d'avance.
Bonne journée,
Hors ligne
Pages: 1
- Sujet précédent - QGIS / PPA: Methode pour prioriser les territoires selon l enjeu - Sujet suivant