#1 Thu 05 December 2013 11:42
- kabou
- Participant occasionnel
- Date d'inscription: 13 Jun 2013
- Messages: 10
QGIS 1.8 : Message d'erreur lors de calcul de direction
Bonjour
J'essaie avec la calculatrice de remplir un champ pour le calcul de la direction de polyligne.
Ca marche pour un fichier mais ca ne marche pas pour d'autres ( encore des polylignes ).
Voila le message d'erreur :
une erreur s'est produite lors de l'evaluation de la chaine de calcul : L'Index est hors de portee
Voila la fonction initiale
(atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)-yat(0)) < 0) + (((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)))
Remarque " j'ai essaye d'acceder a xat(0) ( a affichier dans un champ ) : Pareil meme message : Selon mon opinion un probleme d'acces auux coordonnes des points qui construisent la polyligne .
Des idees pour contourner le truc ? Ou d'autres facons de faire ?
Merci !
Hors ligne
#2 Thu 05 December 2013 12:52
- Titius
- Participant actif
- Date d'inscription: 27 Aug 2013
- Messages: 69
Re: QGIS 1.8 : Message d'erreur lors de calcul de direction
Bonjour,
Pourriez vous vérifier si les cas ou cela ne fonctionne pas, les polylignes résultent d'un fusion.
J'ai remarqué que Qgis ne crée pas une polyligne lorsque l'on fusionne plusieurs entités mais une multipolylignes qui comme son nom l'indique est une ligne composée de plusieurs polylignes, ce qui met le bazard dans pas mal de traitement.
Dans votre cas, il est ainsi possible qu'il y est plusieurs noeuds d'index 0 pour les lignes où cela ne fonctionne pas.
Hors ligne
#3 Thu 05 December 2013 12:55
- kabou
- Participant occasionnel
- Date d'inscription: 13 Jun 2013
- Messages: 10
Re: QGIS 1.8 : Message d'erreur lors de calcul de direction
Salut ,
Comment savoir si plusieurs noeuds ont le meme index ( Comment les visualiser ? )
Hors ligne
#4 Fri 06 December 2013 10:08
- Titius
- Participant actif
- Date d'inscription: 27 Aug 2013
- Messages: 69
Re: QGIS 1.8 : Message d'erreur lors de calcul de direction
bonjour,
Je ne sais pas si la fonction vecteur>Outils de géométrie>Vérifier la validité de la géométrie peu répondre à cela.
Sinon, vous pouvez vérifiez le type de géométrie que vous avez en exportant votre couche en csv et en ajoutant GEOMETRY=AS_WKT dans le champ couche.
Pourriez vous aussi vérifier pour les cas où xat(0) ne fonctionne pas si xat(1) fonctionne et si oui quel noeud il renvoie?
Hors ligne
#5 Fri 06 December 2013 14:54
- kabou
- Participant occasionnel
- Date d'inscription: 13 Jun 2013
- Messages: 10
Re: QGIS 1.8 : Message d'erreur lors de calcul de direction
Salut,
L'outil de verification de la validite de geometre afifche effectivement plein d'erreur mais :
1-Je ne sais pas comment les corriger
2-Meme le fichier qui affichait l'orientation ( ou le gisement ) affiche lui aussi des erreurs mais le calcul cependant fonctionne
Les donnes sont des de types linestring.
J'ai reessaye la fonction avec xat(1) : pareil meme message
Hors ligne
#6 Mon 09 December 2013 10:12
- Titius
- Participant actif
- Date d'inscription: 27 Aug 2013
- Messages: 69
Re: QGIS 1.8 : Message d'erreur lors de calcul de direction
Pour les erreurs, je sais seulement supprimer les noeuds en doubles, pour cela, il faut faire Vecteur>Outils de géométrie>Simplifier la géométrie et mettre la tolérance à zéro.
Pour le reste, je suis désolé, mais je n'ai pas plus d'idée.
Hors ligne
#7 Thu 26 March 2015 15:48
- Gaëlle G
- Participant occasionnel
- Lieu: Rennes
- Date d'inscription: 25 Jun 2014
- Messages: 40
Re: QGIS 1.8 : Message d'erreur lors de calcul de direction
Le post date un peu mais vu que je n'ai pas trouvé de réponse, voici la solution que je viens de trouver :
-Tout d'abord créer une colonne temporaire et calculer l’azimut. En effet QGis donne les résultats du calcul dans le cas d'un champ virtuel mais pas dans celui d'un champ fixe
-Certains linéaires se retrouvent avec l'information "null". Ce sont eux qui posent problème. On peut essayer de résoudre ce qui coince, mais le plus rapide reste d'effacer les linéaires concernés et de les retracer
-Ensuite il ne reste plus qu'à créer un champ fixe dans le quel on appliquera la formule de l’azimut donnée ci-dessus.
Hors ligne