#1 Fri 07 June 2019 11:16
- zack
- Participant occasionnel
- Date d'inscription: 16 Jul 2014
- Messages: 33
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