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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Le portail retrouve peu à peu ses fonctionnalités.

Les listes ne fonctionnent pas mais nous mettons tout en oeuvre pour les réactiver rapidement.

Si vous avez pris contact avec l'association (petite enveloppe en haut/droite), sachez que nous lisons vos messages mais que les mails ne partent pas (#bug).

Ne soyez pas surpris si vous ne recevez pas de réponse.

#1 Fri 07 June 2019 11:16

zack
Membre
Date d'inscription: 16 Jul 2014
Messages: 25

QGIS 3.6: Sortie unique dans boucle for PyQGIS

Bonjour,

J'ai une boucle for qui enchaine un certain nombre de traitements sur chacune de mes entités de ma couche d'entrée. Je cherche à produire un fichier unique en sortie. J'ai donc initialisé une couche qui s'appelle regroupee avant d'entrer dans ma boucle :

Code:

regroupee = QgsVectorLayer("Polygon", "temporary_polygons1", "memory")

Ensuite, la dernière étape de ma boucle est une fusion de couches vecteur ou dans mes input j'ai cette couche "regroupee" et la sortie de mon algo précédent (en l’occurrence calculatrice['OUTPUT']). J'enregistre le résultat temporaire dans la variable "merge" puis j'écrase regroupee avec ce résultat :

Code:

    
            # Fusionner des couches vecteur
            alg_params = {
                'CRS': None,
                'LAYERS': [regroupee, calculatrice['OUTPUT']],
                'OUTPUT': 'memory:merge'
            }
            
            merge = processing.run('native:mergevectorlayers', alg_params, context=context, is_child_algorithm=True)
            regroupee = merge['OUTPUT']
            
        QgsVectorFileWriter.writeAsVectorFormat(regroupee, "I:/chemin/regroupee.shp", "UTF-8", crs.createFromId(2154), "ESRI Shapefile")

Le problème c'est que la variable merge['OUTPUT'] est une sortie de dictionnaire, donc un string, et qu'il me le refuse l'export en shp après ma boucle... Est-ce qu'il y a une solution pour soit produire un regroupee qui est un vector layer tout du long, soit transformer le string en vector layer pour l'export après la boucle? Sinon tout boucle bien sans erreur avant l'export. Merci !

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |