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

Printemps des cartes 2024

#1 Tue 02 August 2016 09:06

Logispace
Juste Inscrit !
Date d'inscription: 18 Jul 2016
Messages: 4

QGIS Python: comment ajouter des lignes succesivement dans une boucle?

Bonjour,

je souhaite créer un nouveau shapefile de points avec les mêmes attributs qu'un premier shapefile et y ajouter progressivement les lignes qui m’intéressent. Je vous donne l'exemple de mon code actuel à la suite.

Mon problème est que pour l'instant je n'obtiens qu'une seule ligne à mon nouveau shapefile file alors que je souhaite qu'il se complète au fur et à mesure des boucles avec de nouvelles lignes... Comment dois je changer mon script?

writer1= QgsVectorFileWriter(dir + "/Selection1.shp", "CP1250", provider.fields(), provider.geometryType(), provider.crs(), "ESRI Shapefile")
writer2 = QgsVectorFileWriter(dir +"/Selection2b.shp", "CP1250", provider.fields(), provider.geometryType(), provider.crs(), "ESRI Shapefile")
outelem=QgsFeature()


Code:

For value1 in DatesHours:
 [...]

 For value2 in RefValues :
  [...]

  For feature in macouche.getFeatures():
   true=0
   attri1=feature.attributes()

   if attri1[0] == value2 :
    ecart= datetime.datetime.strptime(value1,'%d/%m/%Y %H:%M') - datetime.datetime.strptime(feature['DATE3'],'%d/%m/%Y %H:%M')

    if ecart < zero:
     ecart= datetime.datetime.strptime(feature['DATE3'],'%d/%m/%Y %H:%M') - datetime.datetime.strptime(value1,'%d/%m/%Y %H:%M')
     if ecart_minN > ecart :
      ecart_minN=ecart
      DHp=feature['DATE3']
      true = 1
    else:
     if ecart_minP > ecart :
     ecart_minP=ecart
     DHn=feature['DATE3']
     true = 1

   if true == 1 :
    outelem.setGeometry(feature.geometry())
    outelem.setAttributes(feature.attributes())
    writer1.addFeature(write(outelem,feature))

Merci à vous.

Hors ligne

 

Pied de page des forums

Powered by FluxBB