#1 Thu 09 August 2018 23:37
- Flobeee
- Juste Inscrit !
- Date d'inscription: 9 Aug 2018
- Messages: 7
QGIS: Tampon variable en fonction d'une autre couche
Bonjour,
Habituellement, j'utilise QGIS pour une simple représentation de données et non pour du traitement, mes connaissances sont donc un peu limitées.
Je dispose de :
- une couche de points (correspondant à des colonnes à verre)
- une couche de carroyage de la population (insee, taille 200m).
Je cherche à faire un tampon (cercle) à partir de la couche de point, qui représenterait une population fixe de XX habitants (dans mon cas 250).
L'aire du tampon doit donc s'adapter à la surface couverte sur la couche population.
Pourriez vous me faire part de vos idées ? passage par Spatialite ? (idée de la requête ?)
(j'ai trouvé pas mal de sujet avec la démarche inverse, on fixe le tampon puis on calcule la population après intersection...)
Un grand merci,
Hors ligne
#2 Fri 10 August 2018 12:22
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Tampon variable en fonction d'une autre couche
Bonjour,
Pourriez-vous être plus explicite?
"L'aire du tampon doit donc s'adapter à la surface couverte sur la couche population"?
Hors ligne
#3 Fri 10 August 2018 12:47
- Flobeee
- Juste Inscrit !
- Date d'inscription: 9 Aug 2018
- Messages: 7
Re: QGIS: Tampon variable en fonction d'une autre couche
Bonjour,
Un exemple (très simplifié): j'ai un point au centre d'un carré dont la population est de 500 habitants.
--> je souhaite que l'aire du tampon occupe 50% de l'aire du carré
Si j'ai un point seul dans la campagne, et que j'ai 2 carrés isolés mais dont la somme fait (comme par hasard) 250 habitants, je souhaite qu'ils soient tous les deux recouverts par l'aire du tampon.
Bien sur en zone urbaine, le tampon coupe une multitude de carrés différents (jusqu'à ce que la somme des aires sous le tampon "égale" 250 habitants).
J'espère avoir été clair.. ?
Hors ligne
#4 Fri 10 August 2018 14:17
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Tampon variable en fonction d'une autre couche
Je ne sais si votre message est clair, mais je ne saisis pas trop. Quel est votre but?
Hors ligne
#5 Fri 10 August 2018 14:38
- Flobeee
- Juste Inscrit !
- Date d'inscription: 9 Aug 2018
- Messages: 7
Re: QGIS: Tampon variable en fonction d'une autre couche
Concernant les colonnes à verre, les préconisations eco emballages (maintenant Citeo) sont de 1 colonne pour 250 habitants pour notre territoire.
Faire un ratio à l'échelle communale m'indique le nombre théorique de colonne, mais je souhaitais aller plus loin (si c'est possible) pouvoir avoir une représentation (bornes existantes + simulations sur des futurs points).
Objectif : visualiser le maillage et la bonne desserte des colonnes à verre.
Hors ligne
#6 Fri 10 August 2018 15:41
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Tampon variable en fonction d'une autre couche
Je crois que je commence à comprendre, mais c'est hardos ce que vous demandez!
Il faudrait faire un zone tampon de toutes les colonnes de verre pour identifier les carreaux qui ne sont pas intersectés ou entièrement intersectés, les sélectionner, les fusionner, en faire un centroïde et placer une nouvelle colonne à verre sur ce centroïde et voir la zone tampon couvre.
J'ai déjà réalisé une carte des Points d'apport volontaire verre sur mon interco mais à l'échelle des communes, cette carte donne une desserte moyenne d'une colonne à verre pour 253 hab. dans mon interco.
J'ai pu, par mon expérience, calculer la population couverte par les arrêts de transport de mon interco en utilisant comme maillage les carreaux 2010 de l'Insee (dont la mise à jour est prévue fin 2018).
J'effectue donc des zones tampon de 250 m et sélectionne les carreaux intersectés.
Si le carreau est entièrement inclus, alors je prends sa population en entier.
S'il n'est pas intersecté entièrement, je calcule la part de surface intersectée, part que j'applique sur sa population.
Cela donne en fait la population desservie par tous les arrêts d'une ligne de transport.
Mais il s'agit ici de votre fameuse démarche inverse.
Je ne sais si à mon tour je vous ai embrouillé...
Hors ligne
#7 Fri 10 August 2018 17:35
- Flobeee
- Juste Inscrit !
- Date d'inscription: 9 Aug 2018
- Messages: 7
Re: QGIS: Tampon variable en fonction d'une autre couche
oui l'idée est là !
pour l'instant je veux juste pouvoir le faire sur les points existants (pas besoin de la partie "centroïde")
Pour facilité la suite, ne faudrait il pas que chaque carré de population est une représentation en population / pixel ? (pour par la suite faire la somme des pixels contenus dans le tampon ?) en testant avec un tampon fixe, l'intersection me sort la population globale du carré et non un prorata en fonction de l'aire...
Est ce qu'un SQL permettrait de faire l'itération suivante ? (idée) :
En créant une variable R (=rayon) dans ma table de points (colonnes à verre)
Création du tampon à partir de R
Intersection avec la couche pop (représentée en pop / pixel)
Somme de la colonne "pop"
Si pop > 250 : R - 1 (ou autre) ; si pop < 250 : R +1 sinon rien
Ca permettrait de se rapprocher du résultat souhaité ?
Hors ligne
#8 Mon 13 August 2018 10:56
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Tampon variable en fonction d'une autre couche
En tout cas, pour calculer la population comprise dans un carreau dont la surface n'est pas entièrement recouverte par un tampon, j'ai calculé ainsi :
(Surface intersectée du carreau / Surface entière du carreau avant intersection)*(population du carreau avant intersection).
Cela donne la population du carreau après intersection.
Hors ligne
#9 Tue 14 August 2018 12:37
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: QGIS: Tampon variable en fonction d'une autre couche
Bonjour,
Est-ce que tu aurais moyen de spatialiser plus finement la population, même si c’est avec quelques hypothèses simplificatrices, par exemple en la répartissant dans les bâtiments ?
Les bâtiments ayant une population, et étant associés à un conteneur à verre (polygones de Voronoï + jointure spatiale, ou plus proche voisin par parcours de graphe), l’objectif serait alors de sélectionner pour chaque conteneur à verre, le minimum de bâtiment pour arriver à 250 habitants, en sélectionnant les bâtis les plus proches.
Il serait alors possible de tracer un cercle dont le rayon serait la distance du bâtiment le plus éloigné, et/ou colorer les bâtiments concernés par chaque colonne, et/ou faire un polygone englobant du groupe de bâtiments.
Une méthode classique pour peupler les bâtiments consiste à répartir la population des carreaux dans les bâtiments de la BD Topo au prorata de la surface habitable. La surface habitable est le produit de la surface au sol par le nombre d’étages (hauteur du bâtiment divisé par 3m). Evidemment, le résultat est à prendre avec beaucoup de pincettes, mais reste correct si on prend des décisions sur des ensembles, et pas sur des bâtis individuels. La méthode est détaillée en page 6 du guide national des analyses multi-critères sur les inondations : http://www.rrgma-paca.org/files/2014090 … ideAMC.pdf
Ces prétraitements faits, on obtient une table de la forme : (IdBati, Population, IdConteneur, DistanceBatiConteneur).
Si le nombre de bâtiments est raisonnable (quelques dizaines de millier max), tu peux travailler dans Excel avec des formules : Trier par conteneur puis par distance croissante.
PopCumulee=si(idconteneur=idconteneur_ligneprecedente, population+popcumulee_ligneprecedente, population)
UtiliseConteneur=si(popcumulee<=250, 1, 0)
BatiLePlusEloigne=si(utiliseconteneur==1 et utiliseconteneur_lignesuivante==0, 1, 0)
Si le nombre de bâtiments est trop important pour un tableur, il faut passer par R ou équivalent (fonctions order, tapply, cumsum).
Il y a au moins trois limites à cette méthode :
- La précision de la répartition des populations,
- La distance du bâtiment au conteneur, si ce n'est pas fait par parcours de graphe,
- Si un conteneur est saturé, les bâtis rejetés ne chercheront pas un conteneur non-saturé à proximité.
Renaud Mouche
Hors ligne
#10 Mon 20 August 2018 09:04
- Flobeee
- Juste Inscrit !
- Date d'inscription: 9 Aug 2018
- Messages: 7
Re: QGIS: Tampon variable en fonction d'une autre couche
Bonjour Renaud,
Ca m'a l'air clair et envisageable, j'essaie cela dans la semaine !
Merci !
Hors ligne