Pages: 1
- Sujet précédent - QGIS : comment tracer des points automatiquement dans une shape ? - Sujet suivant
#1 Mon 07 November 2011 15:00
- saphy
- Participant occasionnel
- Date d'inscription: 7 Nov 2011
- Messages: 11
QGIS : comment tracer des points automatiquement dans une shape ?
j'utilise QGIS et je cherche à positionner des points automatiquement alignés avec un espace prédéfini et une orientation sur une shape existante.
existe-t-il une extention qui réponde à cette opération dans QGIS?
Ou bien, plus simplement un parametrage particulier lors de la création d'une shape de type point.
ex : aligner deux ligne de 10 d'arbustes à 3m X 1 m dans une shape qui défini un jardin particulier.
par avance merci de vos solutions
Bruno
Hors ligne
#2 Tue 08 November 2011 08:18
Re: QGIS : comment tracer des points automatiquement dans une shape ?
au départ, tu as donc un secteur: le jardin (polygone) et des rangées d'arbres au sein de ce dernier (lignes)?
Dernière modification par baobazz (Tue 08 November 2011 08:19)
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Tue 08 November 2011 08:47
- saphy
- Participant occasionnel
- Date d'inscription: 7 Nov 2011
- Messages: 11
Re: QGIS : comment tracer des points automatiquement dans une shape ?
oui j'ai effectivement un jardin que je délimite avec une shape sans difficulté, mais cela pourrait être un espace plus grand où je veux implanter un verger avec un espacement prédéfini entre les arbres.
MAis, je souhaite positionner automatiquement des rangées d'arbres ou d'arbustes avec un écartement prédéfini d'ans l'emprise de la shape .
je pensais que cette fonction pourrait être une option parmi les styles de la shape, mais je ne peux pas parametrer l'espace entre les points ni l'orientation des rangs (ex: ecartement 5m X 3m avec un angle de 20°)
Y a-t-il une fonction pour cela ?
merci d'avance
Hors ligne
#4 Tue 08 November 2011 09:33
Re: QGIS : comment tracer des points automatiquement dans une shape ?
Ah ok, donc les données en entrée sont au nombre de 4: le secteur, l'orientation des rangs, l'espacement entre rangées et entre chaque arbre?
qgis ne fonctionnera pas pour ce type de cas ou bien en utilisant GRASS. Il faudra sans doute utiliser R pour une méthode optimale et automatyisée. Une interface à R existe sous QGIS. Voir http://www.forumsig.org/showthread.php?t=32657
On a deux possibilités:
Tu dessines manuellement une rangée bien orientée et tu la dupliques autant de fois qu'il faut. Pour plus de précisions, tu peux utiliser le plugin qgsaffine pour une translation de x mètres (espace inter-rangées). Pour l'orientation, CADTools
Ensuite, tu crées les arbres sous QGIS>GRASS avec la commande v.to.points
Pour la génération automatique de segments, on peut faire ça sous R, en particulier spatstat
- La technique consisterait à créer un rectangle de l'étendue de ton secteur.
Code:
Utilise la fonction bbox du paquet sp, puis as.owin de spatstat
- Puis de créer un segment à partir des coordonnées des points gauches de ton rectangle
Code:
psp() de spatstat
- Tu le tournes:
Code:
spatstat:rotate.psp
- Tu dupliques ce segment autant de fois qu'il faut jusqu'à dépasser l'extrêmité droite du rectangle avec une boucle.
Code:
Etape: créer une liste de segments, puis les assembler avec rbind
- Enfin, tu fais une intersection spatiale de tes rangées d'arbres avec ton secteur auquel tu aurais préalablement pu appliquer un tampon de -X mètres
Code:
rgeos::gIntersection rgeos::gBuffer pour le tampon
Tu vois, c'est peu trivial...
Une méthode automatique sera nécessaire dans le cas où beaucoup de rangées doivent être générées, sinon tu peux te contenter de la saisie manuelle des rangées.
Dernière modification par baobazz (Tue 08 November 2011 10:00)
geodata au cerema et petits billets en géomatique
Hors ligne
#5 Tue 08 November 2011 10:22
- saphy
- Participant occasionnel
- Date d'inscription: 7 Nov 2011
- Messages: 11
Re: QGIS : comment tracer des points automatiquement dans une shape ?
Merci pour toutes ces précisions,
je pense que j'aurai besoin de connaître les deux méthodes car j'aurai à traiter plusieurs cas de figures.
pour l'information, j'ai réussi partiellement avec QGIS et la fonction v.mkgrid de Grass qui permet de créer une couche de points (arbres) superposée à la shape.
ensuite avec les fonctions interserction vectorielles de QGIS j'ai pu créer une autre couche qui a le nombre d'arbre voulu avec la bonne orientation et le bon écartement.
merci encore
je vais tester aussi ta méthode manuelle, je voudrais tester la méthode automatique sous R, mais c'est quoi R ??
Hors ligne
#8 Tue 08 November 2011 11:50
- saphy
- Participant occasionnel
- Date d'inscription: 7 Nov 2011
- Messages: 11
Re: QGIS : comment tracer des points automatiquement dans une shape ?
Dans grass (inclus avec Qgis) tu peux utiliser la routine v.mkgrid qui fait cela. Il te faut ensuite exporter le résultat en shape si tu souhaites ce format.
Pour accéder à cela il te faut
- créer un espace de travail grass (extension->grass->nouveau jeu de donnée-répertoire et projection)
- aller dans les outils grass (extension->grass->ouvrir les outils)
- lancer le shell grass (c'est le premier module)
- taper v.mkgrid
- saisir les options (Exemple ci dessous créer une pommeraie de 20 lignes et 25 colonnes à partir de la coordonnée 450000,1850000 avec 5m dans le rang et 4m d’inter-rang et 12° par rapport à l'horizontale)
Puis dans qgis extension->grass->ajouter une couche vecteur
Puis clic-droit sur le nom de la couche, "sauvegarder sous" et sauver en shape
Hors ligne
Pages: 1
- Sujet précédent - QGIS : comment tracer des points automatiquement dans une shape ? - Sujet suivant