Pages: 1
- Sujet précédent - QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib - Sujet suivant
#1 Thu 14 November 2013 10:57
- Julien34
- Participant actif
- Lieu: Lille
- Date d'inscription: 19 Sep 2007
- Messages: 114
QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Bonjour à tous,
J'ai un petit problème sur QGIS 2.0 : dans une colonne de la table attributaire d'une couche, je souhaiterais remplacer automatiquement des valeurs par d'autres. Par exemple, remplacer toutes les entités caractérisées "X" par "Y".
Je m'explique. Je travaille sur Corine Land Cover, couche composée de milliers et de milliers de polygones. Ceux-ci définissent l'occupation du sol, caractérisée dans une colonne qui catégorise selon un code chiffré, et non du texte. Exemple : les polygones intitulés "213" représentent les rizières; "422" : les marais salants, "124" les aéroports...
Je souhaiterais, en mode édition", remplacer tous les "213" par "rizière" et, plus globalement, touts les codes chiffrés par le libellé correspondant. Une sorte de fonction "remplacer ... par ...". Savez-vous comment faire ? Une réponse me permettrait d'économiser des jours de copier-coller
Je vous remercie par avance de votre coup de main. Bonne journée, Julien.
Hors ligne
#2 Thu 14 November 2013 11:51
- damien_B
- Participant occasionnel
- Lieu: Limoges
- Date d'inscription: 14 Nov 2013
- Messages: 10
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Bonjour,
tu peux le faire avec la calculatrice de champs.
Tu définis ton champ que tu veux mettre à jour puis tu utilise la fonction CASE WHEN.
Par exemple ca pourrait te donner ça dans l'idée
CASE
WHEN "TA COLONNE" = '213' then 'rizières'
WHEN "TA COLONNE" = '422' then 'marais salants'
------et cela autant de fois que tu veux remplacer une valeur (par contre il me semble que si une valeur n'est pas listé dans la fonction lors de la mise à jour la valeur deviendra NULL-------
END
(en sélectionnant le champ correspondant dans "champs et valeurs" tu peux aussi obtenir toute la liste des valeurs uniques de ton champ pour te faciliter le travail)
avec cette fonction tu peux faire bien plus évidemment, comme utiliser les autres opérateurs, etc.
En espérant que cette solution te convienne.
Hors ligne
#3 Thu 14 November 2013 12:12
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Bonjour,
Plus simple, une jointure sur le champ du code CLC devrait faire l'affaire. Prendre ce type de fichiers excel : http://georezo.net/forum/attachment.php?item=2171
Hors ligne
#4 Thu 14 November 2013 17:22
- Julien34
- Participant actif
- Lieu: Lille
- Date d'inscription: 19 Sep 2007
- Messages: 114
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Merci Damien et Robin (ta table est parfaite!).
J'ai opté pour la réponse de Robin (mes formulations dans la table de calcul sont toujours fausses...), mais je n'arrive pas à faire la jointure (je n'en ai jamais fait auparavant, c'est l'occasion d'apprendre).
Sous QGIS 2.0, je vais dans l'onglet "MMQGIS", puis "combine->attribute join from CSV file" (j'ai transformé la table xls en csv), ça me semble être l'option idéale. Je suis la procédure, et au final il me sort "impossible, votre csv n'est pas encodé en UTF8". Pourtant il me semble avoir encodé (je ne sais même pas de quoi je parle en écrivant ça) le fichier sous excel, j'arrive pas à trouver de solution. J'ai aussi essayé les autres outils dans "MMQGIS/combine", et aussi "vecteur/outils de gestion de données/, mais y a rien.
Du coup je reviens vers vous en espérant avancer : auriez-vous une idée pour résoudre cette jointure ? Je vais aussi essayer la technique de Damien pendant ce temps.
D'avance merci.
Julien.
Hors ligne
#5 Thu 14 November 2013 18:07
- florent vanhoutte
- Participant actif
- Lieu: Compiègne
- Date d'inscription: 27 Apr 2006
- Messages: 110
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Bonjour,
A toutes fins utiles pour la représentation de CLC dans Qgis.
Cordialement
FV
1/2 décision = bordel²
Hors ligne
#6 Thu 14 November 2013 18:07
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Je mets ci joint une autre table en CSV directement.
Pour la suite, j'ai mis quelques copies d'écran sur comment l'importer + faire la jointure.
1. Menu couche/Ajouter une couche de texte délimité :
[img]http://georezo.net/forum/attachment.php?item=5674&download=1[/img]
2. Propriétés de la couche corine/Jointure/ajouter une jointure (bouton +)/ choix des colonnes :
[img]http://georezo.net/forum/attachment.php?item=5673&download=1[/img]
Hors ligne
#7 Fri 15 November 2013 08:46
- damien_B
- Participant occasionnel
- Lieu: Limoges
- Date d'inscription: 14 Nov 2013
- Messages: 10
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Effectivement la solution de Robin est beaucoup plus simple que celle que je t'ai proposé, et plus adaptée à ton problème . (Mes compétences en SIG sont limitées, je suis étudiant et notre "formation" sur SIG est assez...légère. C'est essentiellement le stage de master que je suis en train d'effectuer qui me forme réellement dans ce domaine)
Mais Robin, si je ne me trompe pas, dans le cas où on ne dispose pas d'un fichier pour faire une jointure, alors la solution que j'ai proposé est adaptée? (J'en profite pour savoir si je dis des absurdités ou pas)
Hors ligne
#8 Fri 15 November 2013 10:08
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Mais Robin, si je ne me trompe pas, dans le cas où on ne dispose pas d'un fichier pour faire une jointure, alors la solution que j'ai proposé est adaptée? (J'en profite pour savoir si je dis des absurdités ou pas)
Si c'est juste 1 valeur = 1 autre alors il vaut mieux passer par ma solution, en recréant soit même un fichier d'équivalence, c'est globalement le plus simple (à mon goût) mais ça n'implique pas que ta suggestion est mauvaise non plus, elles se valent. Par contre, dès qu'il y a des requêtes plus complexes (genre population entre 10 000 et 20 000 = "ville moyenne", ton type de solution est indispensable.
Hors ligne
#9 Fri 15 November 2013 10:21
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
(par contre il me semble que si une valeur n'est pas listé dans la fonction lors de la mise à jour la valeur deviendra NULL)
Oui, tu peux résoudre ça avec ELSE, exemple :
Code:
CASE WHEN "id" = 311 THEN 'Bois' ELSE 'Non renseigné' END
Hors ligne
#10 Fri 15 November 2013 15:23
- Julien34
- Participant actif
- Lieu: Lille
- Date d'inscription: 19 Sep 2007
- Messages: 114
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Salut tout le monde,
Merci à vous, j'ai résolu mon problème de jointure ! J'avais pas vu l’icône dans "propriété de la couche". Et merci aussi pour les bidouilles dans la fenêtre de calcul sur la table attributaire.
Je dois encore tabler sur la mise en forme (couleurs...), mais globalement, 111=zone urbaine continue;)
Bonne fin de journée,
Julien.
Hors ligne
#11 Wed 20 May 2020 14:55
- OliveT21
- Participant occasionnel
- Date d'inscription: 7 Dec 2006
- Messages: 39
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Bonjour,
Désolé de déterrer un vieux post, mais c'est un des seuls que j'ai trouvé qui se rapproche de ma question.
Je cherche à faire une mise à jour des valeurs de mes champs, selon une autre table, sous condition de correspondance entre les champs identifiants des 2 tables.
Etant un ancien de MapInfo, c'était tout simple avec la fonction Mise à jour colonne.
Est-ce qu'un équivalent existe sous QGIS ?
Peut on faire fonctionner la fonction CASE WHEN évoquée pour conditionner à la correspondance des identifiants des 2 tables ?
Merci.
Hors ligne
#12 Wed 20 May 2020 16:23
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Ça se fait via la calculatrice de champs, oui. Ou en SQL avec un Update.
Vous pouvez aussi faire un joint de table, puisque que vos identifiants correspondent. Mettre à jour une colonne à partir d'une autre est ensuite beaucoup plus simple.
Hors ligne
#13 Fri 12 June 2020 12:07
- OliveT21
- Participant occasionnel
- Date d'inscription: 7 Dec 2006
- Messages: 39
Re: QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib
Merci.
Du coup, je veux bien en savoir plus sur les 2 méthodes : calculatrice de champs et joint de table, car on n'a toujours pas trouvé la bonne astuce.
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2: Remplacer valeurs automatiquement par autre dans table attrib - Sujet suivant