Message posté par : Laurent M (dioilamahina(a)yahoo.fr)
----------------------------------------
Bonjour,
J'aurais besoin d'aide sur comment découper une ligne avec une couche point.
contexte : je réalise des relevés en rivière sèche sur des portions de 200m. Chaque
portion a donc un départ et une arrivée. Le tracé de chaque portion est obtenu avec un
suivi GPS tout public (+/- 10m).
but du traitement : réaliser une analyse thématique uniquement sur ces portions évaluées.
Objectif : à partir de ce test, automatiser l'ensemble des opérations (cahrgement des
points à l'analyse thématique) pour des relevés ultérieurs.
couches à disposition sur Qgis 3.4.14 avec Grass 7.8.1:
- vecteur ligne (une entité dans la table) extraite d'une couche issue de la DEAL.
- vecteur points correspondant aux extrémités de chaque portion évaluée
contrainte1 : la trace de la portion réalisée sur le terrain ne se superpose pas au tracé
de la couche rivière. Contournement de la contrainte1 pour traiter la donnée: extraction
des extrémités de chaque portion (Extract specific vertices) puis accrochage de ces
extrémités sur la ligne rivière (snap geometry to layer). Je me retrouve donc avec une
ligne rivière et des points sensés être "accrocher" à cette ligne.
contrainte2: en zoomant à l'endroit d'un point sur la ligne, je remarque qu'il
n'y a pas de sommet sur la ligne permettant l'accrochage avec le point, et ce pour
la majorité des points. J'ai appris, à mes débuts, qu'un point s'accroche sur
une ligne seulement si à l'intersection il y a un sommet sur la ligne. Dans mes
recherches, l'alerte est à chaque fois "êtes vous sûr que vos points sont bien
accrocher à la ligne..". Je n'ai pas trouver de formules pour créer un sommet à
l'endroit de l'intersection,
je cherche donc en vain une possibilité de découper la ligne aux intersections avec les
points. J'ai utilisé deux algorithmes.
- L'extension "networks" propose un algorithme "connecter des points à
une ligne".
- Saga propose "split lines at points"
Aucun des deux n'apporte un résultat complet. Avec Networks, l'algorithme se
termine, pas de message d'erreur. Le résultat graphique fait apparaitre le traitement
uniquement sur la partie basse de la ligne rivière. Les tronçons du haut ont disparu. La
table présente 5 entités et seulement 3 sont apparaissent. Un tronçon est splité à un
endroit sans point.
Avec Saga, l'algorithme se termine, pas de message d'erreur. Le résultat graphique
fait apparaitre le traitement uniquement sur la partie haute de la ligne rivière. Les
tronçons du bas ne sont traités et une ligne doite court-circuite le tracé. La table
présente 20 entités au lieu de 17 à obtenir. Un tronçon est coupé à un endroit sans point
(au même endroit que précédemment). voir fichier joint.
J'ai réalisé un test sur une autre ligne, sur une ligne créé, et dans un autre projet,
ces deux algorithmes ne semblent pas traiter la donnée complètement.
J'en suis donc arrivé à Grass. L'algorithme v.edit permettrait de découper (break)
la ligne riviere en utilisant un fichier texte (généré par v.out.ascii) comportant les
coordonnées des points. Mais là encore la table du shape généré est vide. J'ai
renseigné les champs comme le manuel l'indique mais il manque de détails et Je ne suis
pas encore à l'aise avec Grass.
en résumé je recherche de l'aide :
- pour créer des sommets à l'intersection des points sur la ligne riviere
- ou une aide sur sur l'un des 2 algorithmes
- ou sur l'utilisation de Grass v.edit
- ou tout autre méthode utilisé par les personnes travaillant sur des réseaux
Merci de vos éclairages.
Laurent
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=329342#p329342
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net