Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

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

gvellut
Participant actif
Lieu: Annecy
Date d'inscription: 13 Apr 2006
Messages: 112
Site web

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

 

Pied de page des forums

Powered by FluxBB