#1 Thu 24 August 2017 16:49
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
QGIS 2.14: Retrouver ligne génératrice d'un tampon
Bonjour,
Le titre résume assez bien mon problème.
J'ai une couche de polygones qui a été générées par tampons autour de lignes (je le sais car la méthodologie de production de ma donnée m'a été fournie avec le jeu de données). Malheureusement, je n'ai plus que les tampons et pas les lignes qui ont permis de les générer.
Existe-t-il un moyen de retrouver mes lignes "génératrices" à partir des tampons?
D'avance merci pour vos retours.
Hors ligne
#2 Fri 25 August 2017 08:44
- gustavecoste
- Participant actif
- Lieu: Montpellier
- Date d'inscription: 24 Apr 2013
- Messages: 118
Re: QGIS 2.14: Retrouver ligne génératrice d'un tampon
Une piste serait d'utiliser la fonction ST_StraightSkeleton de PostGIS.
Sinon, peut-être en creusant de ce coté...
Gustave Coste
Hors ligne
#3 Fri 25 August 2017 08:49
- gustavecoste
- Participant actif
- Lieu: Montpellier
- Date d'inscription: 24 Apr 2013
- Messages: 118
Re: QGIS 2.14: Retrouver ligne génératrice d'un tampon
La fonction PostGIS ST_ApproximateMedialAxis semble encore plus appropriée.
Gustave Coste
Hors ligne
#4 Fri 25 August 2017 11:09
- Nighthawk
- Participant actif
- Date d'inscription: 17 Sep 2014
- Messages: 129
Re: QGIS 2.14: Retrouver ligne génératrice d'un tampon
Merci pour ces pistes. Du coup j'ai pu obtenir le résultat voulu.
Je n'ai pas l'habitude d'utiliser les fonctions PostGIS, du coup j'avoue que je les ai évitées au maximum.
J'ai utilisé les réponses qui étaient données sur le second liens. Il n'existe aucune fonction ou plugin qui le fasse facilement (actuellement du moins). Du coup il a fallu composer avec les fonctions QGIS existantes. Pour ceux que ça pourrait intéresser voici la démarche :
1. Extraire les noeuds des polygones dont on veut trouver la "ligne génératrice" (vecteur > Outils de géométrie > Extraction de noeuds)
2. Créer les polygones de Voronoï sur cette couche (vecteur > Outils de géométrie > Polygones de Voronoï)
3. Extraire les polylignes (vecteur > Outils de géométrie > Polygones vers lignes)
4. Casser les polylignes via GRASS (fonction v.clean.break) et supprimer les doublons (v.clean.rmdupl)
5. Sélectionner les lignes à l'intérieur des polygones d'origine (vecteur > Requête Spatiale)
Le problème c'est qu'il reste des manip à faire à la main et que ça peut poser problème si l'on veut appliquer ce traitement à de nombreux objets (ce qui n'est heureusement pas mon cas). Je pense que ce sont les 2 ou 3 dernières étapes qui pourraient être améliorées, mais j'avoue ne pas trop savoir comment.
En tous cas j'ai pu faire ce que je souhaitais. Merci beaucoup !
Hors ligne