#1 Tue 15 October 2024 15:00
- RVlln
- Juste Inscrit !
- Date d'inscription: 15 Oct 2024
- Messages: 3
QGIS: Creer champ correspondant au nom de la couche
Bonjour,
Je souhaite créer un nouveau champ dans la table d'attributs d'une couche shp dont le contenu serait le nom de la couche, et répéter l'opération X fois de manière (semi-)automatique.
J'ai 330 couches, qui correspondent au périmètre d'entités administratives, elles-mêmes composées de sous-entités.
Lorsque j'exécute l'outil "Regrouper", la table d'attributs de la couche regroupée reprend les attributs de l'une des sous-entités.
À terme, donc, si je regroupe l'ensemble des entités administratives obtenues dans une seule couche, les attributs de chacune renverront à l'une de leurs sous-entités et ne permettront pas d'identifier la nouvelle obtenue (dont seul le nom m'intéresse).
Je veux donc créer en amont un champ "NOM DE LA COUCHE" (qui aura un autre nom), qui sera le champ de regroupement de la nouvelle couche.
Vu le nombre de couches, je ne souhaite pas le faire une part une et cherche une solution automatisée, mais ne maîtrise pas les commandes/requêtes/calculette...
Merci pour les conseils !
QGIS 3.34.10-Prizren - Windows 10
Hors ligne
#2 Tue 15 October 2024 17:10
- ML_aqua
- Participant occasionnel
- Date d'inscription: 11 Jul 2024
- Messages: 10
Re: QGIS: Creer champ correspondant au nom de la couche
Pour moi, il faut faire un modèle [menu : traitement / modeleur] via QGIS qui automatise une suite de traitement sur des paramètres en entrée… Avec un fichier en entrée qui calcule un champ via la calculatrice de champs et qui prend comme paramètre [layer_proprety(@parametre_couche,name)]. Ca va te prend 5 min à faire et une fois que ça marche pour une couche tu exécutes en processus de lot le traitement pour toutes tes couches !
Hors ligne
#3 Tue 15 October 2024 18:42
- RVlln
- Juste Inscrit !
- Date d'inscription: 15 Oct 2024
- Messages: 3
Re: QGIS: Creer champ correspondant au nom de la couche
Je découvre le modeleur en même temps que ta réponse vais tenter de bricoler quelque chose, merci !
Hors ligne
#4 Wed 16 October 2024 09:12
- ML_aqua
- Participant occasionnel
- Date d'inscription: 11 Jul 2024
- Messages: 10
Re: QGIS: Creer champ correspondant au nom de la couche
C'est vraiment tout simple ! Il faut que tu réfléchisses à ton modèle pour une seule couche. Une fois celui-ci fonctionnel pour une couche, tu pourras l'exécuter en processus de lot, ce qui lancera individuellement le traitement sur toutes les couches.
Ton modeleur devrait, il me semble, commencer par un paramètre en entrée, appelé « couche vecteur ». Cette couche devra subir une transformation attributaire. Tu devras donc utiliser l'algorithme "Calculatrice de champs" avec comme expression [layer_property(@parametre_couche, name)]. Dans ce même algorithme, en bas dans "Calculé", tu pourras gérer le mode de sortie (soit couche temporaire, soit enregistrement de fichier).
N'hésite pas si tu as besoin d'un enregistrement spécifique !
Hors ligne
#5 Wed 23 October 2024 15:11
- RVlln
- Juste Inscrit !
- Date d'inscription: 15 Oct 2024
- Messages: 3
Re: QGIS: Creer champ correspondant au nom de la couche
Ok, je suis arrivé à quelque chose avec le modeleur et la calculatrice de champ.
Dans la calculatrice, j'ai juste eu à mettre @layer_name. Bon, ça m'a quand même pris du temps pour capter le fonctionnement.
Nouveau "problème" ; les couches temporaires créées on un nom générique. Elles ne prennent pas le nom de leur couche "mère".
Dans le modeleur, je trouve bien la fonction "renommer la couche" mais je ne sais pas comment écrire la commande "renommer à partir du champ X".
Une idée ?
Dernière modification par RVlln (Wed 23 October 2024 15:12)
Hors ligne
#6 Wed 23 October 2024 16:05
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1087
Re: QGIS: Creer champ correspondant au nom de la couche
Bonjour, vous pouvez utiliser l'algorithme 'Charger la couche dans le projet' qui répondra à votre besoin cf l'mage en pj (reste à mettre en expression la variable que vous avez déjà qui retourne le nom de la couche.
Dernière modification par GlaDal (Wed 23 October 2024 16:06)
Hors ligne