Annonce
Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).
En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.
#1 Wed 16 August 2017 10:37
- hotegbe
- Participant occasionnel
- Date d'inscription: 28 Jun 2017
- Messages: 32
QGIS / pyqgis: Algorithm output
Bonjour, je sollicite votre aide pour le problème suivant :
Je possède un script qui me permet de calculer la longueur de chaque segment contenue dans une polyligne.
Code initial
Code:
from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * from qgis.gui import * from qgis.networkanalysis import * import sys from math import sqrt import os layer = iface.activeLayer() features = layer.getFeatures() points = [] for feature in features: geom = feature.geometry().asPoint() points.append(geom) n = len(points) for i in range(n-1): j=i+1 if i < j: print i, j, sqrt(points[i].sqrDist(points[j]))
l'exécution du code me renvoie ceci ; ce qui est correct :
0 1 94.74
1 2 64.85
2 3 24.82
3 4 149.76
Sachant que les deux premières colonnes me renvoient les nœuds de départ et de fin et la troisième colonne la longueur entre ces 2 nœuds.
A présent je voudrais récupérer ce résultat dans un fichier txt avec en tête pour l' exploiter ultérieurement.
Mon but est d'avoir dans ce fichier :
depart arrivee longueur
0 1 94.74
1 2 64.85
2 3 24.82
3 4 149.76
J'ai essayé ce code
Code:
from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * from qgis.gui import * from qgis.networkanalysis import * import sys from math import sqrt import os mon_fichier = open ("C:/Users/shountohegbe/Desktop/fichiers/fichier.txt", "w") layer = iface.activeLayer() features = layer.getFeatures() points = [] for feature in features: geom = feature.geometry().asPoint() points.append(geom) n = len(points) for i in range(n-1): j=i+1 if i < j: mon_fichier.write (print i, j, sqrt(points[i].sqrDist(points[j]))) mon_fichier.close()
mais ça marche pas.
Avez vous une idée svp?
Cordialement
Dernière modification par hotegbe (Wed 16 August 2017 10:42)
Hors ligne
#2 Wed 16 August 2017 13:38
Re: QGIS / pyqgis: Algorithm output
mon_fichier.write (print i, j, sqrt(points[i].sqrDist(points[j])))
Utilise plutôt qqch comme :
Code:
mon_fichier.write ("{}\t{}\t{}\n".format(i, j, sqrt(points[i].sqrDist(points[j]))))
Hors ligne
#3 Wed 16 August 2017 14:56
- hotegbe
- Participant occasionnel
- Date d'inscription: 28 Jun 2017
- Messages: 32
Re: QGIS / pyqgis: Algorithm output
Merci cela marche très bien.
Cordialement
Hors ligne