Pages: 1
- Sujet précédent - Requete sur addition d'attributs au cours d'un reseau de polyligne - Sujet suivant
#1 Fri 21 February 2014 15:51
- DPISSIS
- Juste Inscrit !
- Date d'inscription: 11 May 2012
- Messages: 3
Requete sur addition d'attributs au cours d'un reseau de polyligne
Bonjour,
Je fait un Shp avec des polylignes, un reseau hydraulique, les polylignes sont dessinées dans le sens de l'écoulement, j'ai attribué un attribut "nombre de branchement" par tronçon (polyligne),
J'essaie avec une requete de créer un champ qui totalise le nombre de branchement.
J'ai reussi avec spacialite, via une requete sql a additionner le troncon amont avec celui de l'aval avec
une instruction du type enpoint( )=startpoint ( )
mais sur un troisieme troncon il s'agit d'additionner les 2 premiers.
exemple : (d'amont en aval)
nb Branchement nb total (a calculer)
Tronçon1 1 1
Tronçon2 2 3
Tronçon3 4 7
Je ne sais pas comment faire
Merci
Hors ligne
#2 Fri 21 February 2014 16:21
- cyrille
- Participant assidu
- Date d'inscription: 7 Feb 2006
- Messages: 403
Re: Requete sur addition d'attributs au cours d'un reseau de polyligne
Bonjour, la clause groupe by peut vous servir ?
Hors ligne
#3 Fri 21 February 2014 18:19
- DPISSIS
- Juste Inscrit !
- Date d'inscription: 11 May 2012
- Messages: 3
Re: Requete sur addition d'attributs au cours d'un reseau de polyligne
Je croise une j'ai une piste.
Il s'agit bien de relier le tronçon aval a celui amont par l'instruction endponit et startpoint
on peut ainsi récupérer l'ID du tronçon amont.
Ensuite, passer par un champ intermedaire "Nb branchement Amont" qui serait égale au Nb branchement total amont + Nb Branchement sur le tronçon
Nb branchement total = Nb branchement Amont + Nb Branchement sur le troncon
Y a plus qu'a
Hors ligne
#4 Mon 24 February 2014 09:55
Re: Requete sur addition d'attributs au cours d'un reseau de polyligne
pour ce genre de calcul, il n'y a pas forcément besoin de passer par un sgbdr. On peut utiliser le plugin group stats.
geodata au cerema et petits billets en géomatique
Hors ligne
#5 Mon 24 February 2014 10:53
- Leyan
- Participant assidu
- Date d'inscription: 14 Oct 2013
- Messages: 160
Re: Requete sur addition d'attributs au cours d'un reseau de polyligne
ici groupstat ne va pas t'aider, puisque le calcul est basé sur la topologie du réseau. Une solution manuelle comme tu proposes peut marcher si tes besoins sont simples, mais cela risque d'être limité. L'algorithme que tu présentes ne fonctionne que si tu fais le calcul au moins autant de fois que ton chemin le plus long, et je ne suis pas sûr de comprendre comment tu récupères le nombre de branchements amont.
Pour faire plus propre, c'est un peu compliqué. QGis ne gère pas la topologie lui-même, donc il va te falloir soit mettre tes donnés dans un format topologique et utiliser les fonctions adaptées (quelque chose comme pgRouting pour postgresql ? On dirait qu'il y a un plugin QGis pour s'en servir) ou développer une solution ad hoc, par exemple un petit plugin Python.
Hors ligne
#6 Sun 02 March 2014 11:16
- DPISSIS
- Juste Inscrit !
- Date d'inscription: 11 May 2012
- Messages: 3
Re: Requete sur addition d'attributs au cours d'un reseau de polyligne
j'ai trouvé une solution qui fonctionne. il y a peut etre mieux mais pour le moment !!!!!
j'ai donc fait une sequete spatial dans spatialite
du genre
Select
R1.*,
R2.idTroncon as idTamont
from T_troncon as R1, T_Troncon as R2
where st_within (st_startpoint(R1.geom),buffer(st_endpoint(R2.geom),1))
la requête retourne ce qu'il faut et permet de connaître les connexion entre tronçon,
cependant les tronçon de début de réseau ne ressortent pas, il doit y avoir une combine, mais étant débutant, je ne la connaît pas.
il faut retourner tous les tronçon de la table même s'il n'y pas de tronçon amont !!!!!
la deuxième manip, a été faite dans Excel en Visual Basic
Il s'agit de faire le calcul du nombre de Br Total,
sachant qu'il faut commencer par les tronçons amont pour finir par l'aval.
j'ai donc créer une matrice en indiquant uniquement le dernier tronçon, avec une boucle la matrice se rempli avec un indice de rang.
On fait ensuite les calculs en remontant la matrice a l'envers, comme cela le calcul se fait dans l'ordre.
Il y a peut être des logiciel plus performant qui le font, je ne sais pas.
le test a été fait sur un réseau de plus de 200 tronçons, et cela fonctionne, la macro Excel met environ 2 minute a faire tous les calculs.
Fait refait un lien dans QGIS avec mon tableau excel
Hors ligne
Pages: 1
- Sujet précédent - Requete sur addition d'attributs au cours d'un reseau de polyligne - Sujet suivant