#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


