Pages: 1
- Sujet précédent - QGIS 2.18.14: Générer plusieurs centroides par polygones selon table - Sujet suivant
#1 Tue 07 November 2017 10:32
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Bonjour,
Je sais comment générer le centroide d'un polygone, mais ma question est sensiblement différente.
En effet, j'ai un champ dans lequel j'ai des nombres entiers et j'aimerais, pour chaque polygone de ma couche (car je n'ai pas de valeur nulle) générer un nombre de centroides équivalent à mon champ d'entiers.
Tout d'abord, est-ce faisable? Si oui, comment procéder?
Je vous remercie d'avance !
Hors ligne
#2 Tue 07 November 2017 10:35
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
En programmant ?
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#3 Tue 07 November 2017 10:54
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Bonjour, et merci pour ta réponse.
J'avoue que je n'y connais absolument rien en programmation sous QGIS. Quelle(s) fonction(s) utiliser? Aurais-tu des éléments plus préciser à proposer?
Encore merci !
Hors ligne
#4 Tue 07 November 2017 10:55
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
à propos, existe-t-il quelque part une bible inter-galactique publique recensant les divers algorithmes géomatiques ?
PS édit - j'ai une autre question.
Le problème que vous souhaitez résoudre - et qui comporte vraisemblablement une composante cartographique (de cartographie statistique ?) est-il bien posé ?
(je pose la question au cas où il y aurait une autre solution plus logique que de chercher directement à trouver l'algorithme auquel vous avez commencé à penser)
PPS Pour programmer dans QGis, il me semble qu'il faut du Python. ça peut vous être utile à apprendre. Moi je m'y suis mis (un peu) après l'âge de 45 ans . :-)
Dernière modification par Pascal Boulerie (Tue 07 November 2017 10:58)
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#5 Tue 07 November 2017 11:39
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Je pense qu'on doit effectivement pouvoir trouver une telle bible (ça existe pour html, css et autres, alors pour pyhton, ça doit se trouver). Il faudra que je recherche.
Il est vrai que la solution de créer plusieurs centroides en fonction d'un champ attributaire n'est pas la seule. Je sais que je peux également passer par excel pour faire certaines manipulations simplement et réimporter mes résultats en csv.
Pour faire simple, l'affaire qui me pose souci c'est que j'aimerais compter le nombre de logements (j'ai pu obtenir les fichiers fonciers anonymisés sur mon territoire) que j'ai dans une tâche urbaine (générée par la méthode de dilatation / érosion présentée par le certu : http://lara.inist.fr/bitstream/handle/2 … sequence=1).
Mon premier souci c'est que j'ai des points qui sont situés au centroide de parcelles qui se retrouvent hors tâche urbaine alors que le bâti sur ces parcelles est bien dans la tâche urbaine. Il m'est arrivé de copier ma couche de points et de les déplacer manuellement, mais là j'ai plus de 3800 points et je cherche une technique plus simple à mettre en oeuvre.
Second paramètre, il arrive que j'aie plusieurs points pour une seule parcelle (jusqu'à 48 là où j'ai du collectif).
Du coup, j'ai fait une requête spatialite pour compter le nombre de logements que j'ai sur chaque parcelles (données qui sont toutes présentes dans les fichiers fonciers). Ensuite j'ai fait une jointure entre mon parcellaire et le résultat de ma requête afin de savoir combien j'avais de logements sur les parcelles. Et c'est là que ça se complique.
D'habitude une simple fonction "Compter les points dans le polygone" suffit, mais là j'ai toujours des centroides qui sont hors tâche urbaine alors qu'ils ne devraient pas (D'ailleurs, par définition, aucun centroide ne devrait se retrouver hors tâche urbaine). Je voulais faire l'intersection de ma couche de parcelles accueillant des logements et de ma tâche urbaine et en extraire autant de centroides que de logements, mais j'avoue que je me demande si c'est vraiment le plus simple...
Mon objectif final reste de déterminer où se situent les logements sur mon territoire (hameau, bourg,...) en fonction de ma tâche urbaine et des fichiers fonciers.
Si tu as d'autres propositions, je reste preneur !
PS : Concernant le Python, j'avoue que ce serait bien de le connaître. Sauf que la grande majorité des traitement que je dois réaliser dans mon travail ne nécessitent pas de coder, et c'est pourquoi je ne me suis jamais penché dessus...
Hors ligne
#6 Tue 07 November 2017 11:42
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Et les logements en immeubles à étages ? (ou maisons R + 1 ou R + 2)
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#7 Tue 07 November 2017 12:18
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Il est vrai que la données est présente dans les fichiers fonciers (champ dnbniv), mais j'ai évité de m'en servir car le cerema indique (http://piece-jointe-carto.developpement … lotslocaux) que la donnée est peu fiable et qu'il vaut mieux éviter la traiter. Il s'agit plus d'une donnée indicative à leurs yeux.
Hors ligne
#8 Tue 07 November 2017 12:18
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3944
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Bonjour,
En effet, j'ai un champ dans lequel j'ai des nombres entiers et j'aimerais, pour chaque polygone de ma couche (car je n'ai pas de valeur nulle) générer un nombre de centroides équivalent à mon champ d'entiers.
Pourquoi? En lisant le message d'après, je ne vois pas pourquoi tu veux créer des points?
Mais sinon, s'il t'en faut, regarde du côté des algorithmes genre point aléatoires à l'intérieur de polygones par exemple
D'ailleurs, par définition, aucun centroide ne devrait se retrouver hors tâche urbaine
Bah si, vu que la dilatation-érosion est effectuée sur le bâtiment (à ce que j'ai pu voir sur le pdf que je n'ai pas totalement lu) et que le centroide est celui de la parcelle, deux types d'objets dont les géométries ne sont pas dépendantes l'une de l'autre.
Mon objectif final reste de déterminer où se situent les logements sur mon territoire (hameau, bourg,...) en fonction de ma tâche urbaine et des fichiers fonciers.
Avec quel type de rendu? Juste statistique? auquel cas, pourquoi pas une jointure entre la parcelle et la tache urbaine puis une somme des parcelles concernées? Et si l'info nombre de logements est sur la couche centroide, une double jointure tache<-parcelle->point devrait aider, je pense.
Si c'est un rendu graphique, genre densité de points, voir l'outil points aléatoires, peut-être.
Sinon, il y a aussi le SQL qui pourrait t'aider, à défaut de Python.
Hors ligne
#9 Tue 07 November 2017 12:32
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Bonjour Santanna
Bah si, vu que la dilatation-érosion est effectuée sur le bâtiment (à ce que j'ai pu voir sur le pdf que je n'ai pas totalement lu) et que le centroide est celui de la parcelle, deux types d'objets dont les géométries ne sont pas dépendantes l'une de l'autre.
Effectivement, je me suis mal exprimé. Il faudrait plutôt lire "Aucun logement ne devrait se retrouver hors tâche urbaine" !
Malheureusement (et pour répondre à la fin de ton message) je me retrouve avec des parcelles qui ne sont pas couvertes par ma tâche urbaine. J'en dénombre 7 (qui me pourrissent mes statistiques d'ailleurs). Pour finir sur cette histoire de tâche urbaine, je ne comprend pas comment c'est possible étant donné que j'ai quand même le cadastre 2017 en ma possession et que le millésime des fichiers fonciers que j'ai obtenu est celui de 2015 (à moins qu'il n'y ait eu des évolutions du cadastre...).
Mais du coup la jointure ne marche pas dans ce cas là. Pas en l'état du moins.
Du coup je vais devoir tricher un peu (gnéhéhéhé) pour avoir des statistiques correctes.
Car en effet, il s'agit juste d'avoir le nombre de logement pas tâche urbaine, et non pas une représentation graphique par densité de points.
C'est vrai que la fonction de génération de points aléatoires dans un polygone semble sympathique, d'autant plus qu'ils se retrouveront forcément dans ce polygone, ce qui n'est pas forcément le cas du centroide... Par contre je crois bien qu'il faut un champ de chiffres décimaux. Mais mon problème reste le même que pour la jointure : Toutes mes parcelles ne sont pas couvertes par ma tâche urbaine...
Voilà quelque pistes que je vais explorer. Mais je sens que la solution est proche !
Merci pour vos réponses !
Hors ligne
#10 Tue 07 November 2017 16:27
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS 2.18.14: Générer plusieurs centroides par polygones selon table
Pour revenir à la question de l'informatique (algorithmique, Python, ou bien par "requêtage" SQL), pour rappel, un cours en ligne - et gratuit - sur Python 3 a démarré hier :
https://www.fun-mooc.fr/courses/course- … on01/about
à qui s'adresse ce cours ?
Ce Mooc / Clom s'adresse aussi bien à des programmeurs confirmés qui veulent découvrir et approfondir Python qu'à des débutants en programmation de niveau licence scientifique, c'est-à-dire avec des bases en informatique, une familiarité avec certaines notions mathématiques comme les variables et les fonctions, des notions d'algorithmique et une bonne capacité d'abstraction.
Cependant, nous sommes convaincus qu'une forte motivation et beaucoup de travail peuvent remplacer ces pré-requis.
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.18.14: Générer plusieurs centroides par polygones selon table - Sujet suivant