#1 Wed 04 May 2016 11:41
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
QGIS 2.12: Sélectionner un polygone proche d'un point
Bonjour.
Plantons un peu le décor :
J'ai une couche ponctuelle qui rassemble tous les logements vacants de mon territoire. En parallèle, j'ai ma couche bâti (issue du cadastre) qui correspond à des polygones.
Mon idée était de faire une jointure géographique entre ces deux couches afin de savoir quels bâtiments contiennent des logements vacants (et pourquoi pas les compter, mais ça viendra dans un second temps).
Le problème c'est que les points de ma couche "logement vacants" ne sont pas forcément placés sur un bâtiment. Du coup l'extraction que j'ai faite est fausse.
Comme je suis sur un territoire rural, il y a peu de bâtiments proches les uns des autres. Je me suis donc dit qu'il existait peut être un moyen d'appliquer les attributs d'un point de ma couche "logements vacants" au bâtiments qui est géographiquement le plus proche (un peu comme la jointure géographique, mais en l'appliquant au polygone le plus proche d'un point).
Est-ce possible? Si oui, comment?
Je vous remercie d'avance pour votre aide.
PS : Je poste la même question sur le forum sig (http://www.forumsig.org/showthread.php/ … post342412)
Dernière modification par Nighthawk (Wed 04 May 2016 11:42)
Hors ligne
#2 Wed 04 May 2016 12:33
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3881
Re: QGIS 2.12: Sélectionner un polygone proche d'un point
Bonjour,
Une discussion encore toute chaude : http://georezo.net/forum/viewtopic.php?id=101452
Dernière modification par SANTANNA (Wed 04 May 2016 12:33)
Hors ligne
#3 Wed 04 May 2016 13:32
Re: QGIS 2.12: Sélectionner un polygone proche d'un point
Bonjour,
Ce qu'il faut c'est avoir la distance de chaque logement à l'emprise des bâtiments.
Pour cela, deux méthodes sont possibles :
-rasteriser le bâti
-créer un raster de distance
-croiser les logements avec le raster de distance pour avoir la distance
-ne retenir que ceux qui sont proches, ou dedans (distance nulle)
Sinon, sans passer par le raster :
-créer des lignes à partir des bâtiments
-utiliser QChainage pour mettre des points sur ces lignes avec un espacement correct
-Utiliser l'outil nnjoin entre les logements et la couche de points. Un attribut distance sera généré
geodata au cerema et petits billets en géomatique
Hors ligne
#4 Wed 04 May 2016 14:59
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
Re: QGIS 2.12: Sélectionner un polygone proche d'un point
Bonjour.
Tout d'abord merci pour vos réponses.
Malheureusement ce n'est pas tout à fait ce que je souhaite faire, ou alors c'est moi qui ai mal appliqué les solutions présentées (ce qui est fort possible aussi).
En fait j'ai 13378 centroïdes de bâtiments pour 859 points de logements vacants. Du coup j'ai 12519 bâtiment qui reçoivent un attribut "logement vacant" alors qu'ils n'en font pas du tout partie.
Dans l'idéal j'aimerais qu'un point de la couche "vacant" ne donne ses attributs qu'à un seul et unique point de la couche "centroïde" (le plus proche donc), et les autres je les enlèverais. Si c'est possible bien sûr...
En tout cas, merci !
Hors ligne
#5 Wed 04 May 2016 15:11
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3881
Re: QGIS 2.12: Sélectionner un polygone proche d'un point
La solution n'est peut-être pas là mais je pense que les pistes y sont.
Au lieu d'appliquer NNJoin sur la couche de bâtiment pour récupérer pour chaque bâtiment le point vacant le plus proche (et donc forcément, tous seront pourvus), on pourrait plutôt l'appliquer à la couche de points et donc rechercher pour chaque point vacant, le bâtiment le plus proche. Il me semble qu'il ajouterait alors des infos d'identification précise du bâtiment. Une fois l'information récupérée, on fait une jointure (ou une relation) entre cette "nouvelle" couche et la couche originale des bâtiments.
Hors ligne
#6 Wed 04 May 2016 15:38
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
Re: QGIS 2.12: Sélectionner un polygone proche d'un point
Effectivement, la solution était bien là.
J'ai donc donné un numéro à chacun de mes bâtiments (leur numéro de ligne : @row_number).
Ensuite j'ai utilisé NNjoin pour savoir quel bâtiment était le plus proche de chacun de mes points "logement vacant", ce qui leur a attribué un champ contenant le numéro de ce polygone.
Du coup très simple, jointure de base, en fonction du numéro, j'enregistre la colonne jointe (sinon je ne peux pas m'en servir) et je me retrouve avec des bâtiments ayant les caractéristiques des points "vacants".
J'ai juste une amélioration à faire (et non des moindres), c'est refaire la même manip en supprimant les bâti légers (parcequ'ils n'accueillent pas de logements).
Pour perfectionner tout ça j'aimerais savoir si ensuite, une fois que je n'ai que mes bâtis avec du vacant dedans, il est possible de savoir combien de savoir pour combien de points mon polygone est le plus proche (en gros, combien j'ai de logements vacants dans ce bâtiment)?
Encore merci !
Dernière modification par Nighthawk (Wed 04 May 2016 16:02)
Hors ligne