banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 27 December 2011 15:38

Squid
Participant actif
Date d'inscription: 2 Apr 2010
Messages: 109

Buffer sous grass sans fusion des éléments

Bonjour,

Je viens de découvrir que grass propose de faire des flat buffers sur des polylines (buffer sans les arrondis en fin de polyligne).

Cependant, je souhaiterais éviter la fusion automatique des buffers (dissolve?) et au lieu d'obtenir un polygne avec un unique enregistrement, avoir autant de buffers que de segments dans ma polyligne.

Aurriez-vous des suggestions ?

Merci

Bonnes fêtes

Hors ligne

 

#2 Tue 27 December 2011 21:40

Sylvain_M
Membre
Lieu: Lyon
Date d'inscription: 3 Aug 2009
Messages: 298

Re: Buffer sous grass sans fusion des éléments

Bonjour,

à priori si vous faites un buffer sur une polyligne, le résultat sera un polygone englobant tous les segments ... pour avoir un buffer par segment, il faut commencer par couper la polyligne, et créer les buffers sur chaque segment !

Hors ligne

 

#3 Wed 28 December 2011 10:40

Squid
Participant actif
Date d'inscription: 2 Apr 2010
Messages: 109

Re: Buffer sous grass sans fusion des éléments

Bonjour,

Merci Yarma pour cette réponse. J'ai réussi à couper la polyligne avec la fonction split ( dans vector layer ) avec un champs de valeurs uniques (ID).

Reste à trouver la méthode pour faire un traitement par lot du dossier de shapes créé par Split.

Bonne journée.

Hors ligne

 

#4 Thu 29 December 2011 11:13

Sylvain_M
Membre
Lieu: Lyon
Date d'inscription: 3 Aug 2009
Messages: 298

Re: Buffer sous grass sans fusion des éléments

Bonjour,

le plus simple est d'écrire un petit script qui va appliquer le traitement voulu sur chaque vecteur. Il s'agit en fait simplement de mettre toutes les commandes à la suite dans un fichier ...

il y a une explication sur le wiki (mais en anglais): http://grass.osgeo.org/wiki/GRASS_and_Shell
en fait, n'importe quel tutoriel sur les script bash (ou batch sous windows) fera l'affaire, il faut juste faire attention à le lancer depuis le terminal GRASS wink


un exemple pour créer tous les buffers :
###
for vect in `g.mlist type=vect mapset=your_mapset`
do
v.buffer input=${vect} output=${vect}_buf distance=x ;
done;
###

et pour assembler tous les vecteurs de buffers une seule ligne suffit :
###
v.patch -e input=`g.mlist -r type=vect mapset=your_mapset pattern="buf" separator=comma` output=buffer_complet
###

par contre comme je l'ai dis plus haut, le fichier généré contenant tous les buffers sera topologiquement incorrect (puisqu'il y aura des polygones qui se recouvrent), l'idéal serait de traiter tous les buffers un par un ...

Hors ligne

 

#5 Thu 29 December 2011 14:33

Squid
Participant actif
Date d'inscription: 2 Apr 2010
Messages: 109

Re: Buffer sous grass sans fusion des éléments

Bonjour,

Merci pour cette nouvelle réponse.

Je vais tester le début de script car je ne souhaite pas assembler les buffers qui constitueront des polygones ayant une action (ouvrir un pdf).

Bonne journée.

Hors ligne

 

Pied de page des forums

Powered by FluxBB