Message posté par : insay
----------------------------------------
Bonjour à tous,
J'ai pour objectif de diviser une couche selon un de ses attributs
"MODE_POSE", il y a toujours 9 valeurs (de 0 à 8), à la base je le faisais a la
main via la boite à outils "Extraire par attribut". Je vais devoir faire cette
manip pour des centaines de fichiers assez souvent j'ai donc fait appel a une IA pour
qu'elle me code un script me facilitant la tache.
le seul problème c'est que la fonction fait bien 9 couches distinctes mais c'est
l'exact copie de la couche d'entrée a chaque fois, voici le code en question
-----------------
Code :
from qgis.core import QgsProject, QgsVectorLayer, QgsVectorFileWriter,
QgsCoordinateTransformContext
input_layer_name = "Ma_Couche"
output_directory = "Exemple\MonDossier"
mode_values = {
0: "Couche_1",
1: "Couche_2",
2: "Couche_3",
3: "Couche_4",
4: "Couche_5",
5: "Couche_6",
6: "COuche_7",
7: "Couche_8",
8: "Couche_9"
}
input_layer = QgsProject.instance().mapLayersByName(input_layer_name)[0]
if not input_layer:
print(f"La couche {input_layer_name} n'a pas été trouvée.")
exit()
for mode_value, output_name in mode_values.items():
query = f'"MODE_POSE" = {mode_value}'
filtered_layer = QgsVectorLayer(input_layer.source(), input_layer_name,
'ogr')
filtered_layer.setSubsetString(query)
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = "ESRI Shapefile"
output_path = f"{output_directory}/{output_name}.shp"
success, message = QgsVectorFileWriter.writeAsVectorFormatV2(filtered_layer,
output_path, QgsCoordinateTransformContext(), options)
if success == QgsVectorFileWriter.NoError:
print(f"Export de {output_name} réussi.")
else:
print(f"Erreur lors de l'export de {output_name} : {message}")
print("Export terminé.")
-----------------
Est ce que l'un d'entre vous aurez une idée de ce qui cloche avec cette fonction
?
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=362337#p362337
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net