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 !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 05 February 2020 14:47

MathieuGodard
Participant occasionnel
Date d'inscription: 28 Mar 2018
Messages: 30

QGIS 3.4: Modifier la casse de tous les champs

Bonjour,

Je travaille actuellement sur des mises en forme conditionnelles.
J'ai créé un projet dans un dossier, qui va chercher mes shapes (toujours les mêmes peu importe le projet) à l'aide d'un chemin relatif.

Seulement le hic, c'est que la casse de mes champs n'est pas la même sur tous les projets. Parfois, tous les champs sont en majuscules, parfois ils sont tous en minuscules.

Et lorsque j'ouvre ce même projet (copié-collé de mon projet de base sur lequel je travaille pour effectuer des contrôles), toutes mes mises en formes conditionnelles sautent...

Ou alors, le souci est ailleurs... la mise en forme conditionnelle s'enregistre bien dans le projet non ?

Edit : je confirme, c'est bien la casse des champs qui fout tout en l'air...

Dernière modification par MathieuGodard (Wed 05 February 2020 15:33)

Hors ligne

 

#2 Wed 05 February 2020 16:04

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 722

Re: QGIS 3.4: Modifier la casse de tous les champs

Bonjour,

tout ce qui est lié au style peut effectivement être enregistré dans le projet mais cela peut être enregistré dans un fichier style .qml.

Ce qui m'étonne c'est que vous dites que vos shapes sont toujours les mêmes, donc pourquoi avoir une casse de champs différente ?
Si cela fonctionne pour le projet de base, je ne comprends pas bien pourquoi cela saute pour les projets dérivés.

Cordialement,

Hors ligne

 

#3 Wed 05 February 2020 18:29

MathieuGodard
Participant occasionnel
Date d'inscription: 28 Mar 2018
Messages: 30

Re: QGIS 3.4: Modifier la casse de tous les champs

La casse saute suite à l'utilisation d'un outil interne de correction géométrique...
C'est fâcheux mais c'est comme ça. Et c'est pas forcément pour tous les shapes.
Aussi, avant ça, le projet a évolué et les shapes n'ont pas toujours la même casse.
Bref, j'avoue c'est loin d'être très confortable, mais c'est l'idée de ma demande. Si nous pouvons modifier en masse la casse des champs de manière automatique, c'est bonheur ! smile

Hors ligne

 

#4 Thu 06 February 2020 01:15

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 940
Site web

Re: QGIS 3.4: Modifier la casse de tous les champs

Bonjour,

Je passe par un VRT puis je le modifie pour qu'il fasse croire à QGIS que le nom de chaque champ est toujours en minuscule. Le shp n'est plus utilisé directement mais en ouvrant le VRT dans QGIS. J'utilise les instructions suivantes

Code:

python ogr2vrt.py -relative votre_fichier.shp votre_fichier.vrt
sed -i 's/Field name="\([A-Za-z1-9_]*\)"/Field name="\L\1"/g' votre_fichier.vrt

Attention: le fichier ogr2vrt.py doit être sur votre machine mais si vous ne le trouvez pas, allez sur https://github.com/OSGeo/gdal/blob/mast … gr2vrt.py.

Par ailleurs, j'utilise sed un utilitaire sous Linux. Il existe sous Windows mais je ne sais pas trop si Windows gère bien les guillemets simples et doubles  de nos jours (peut être avec https://docs.microsoft.com/en-us/windows/wsl/about ?) Il faudra potentiellement changer la deuxième ligne. Vous pourrez aussi boucler (avec une instruction FOR à priori) sur tous les shp pour effectuer les opérations mentionnées.


Cordialement

Thomas

PS: La solution est déjà du lourd (Python, expressions régulières et commande DOS, Powershell ou Bash) mais pas trop le choix pour nettoyer les problèmes.

Hors ligne

 

#5 Fri 27 March 2020 16:14

MathieuGodard
Participant occasionnel
Date d'inscription: 28 Mar 2018
Messages: 30

Re: QGIS 3.4: Modifier la casse de tous les champs

Bonjour,
Désolé je n'ai pas vu ce dernier message et suis passé à côté.
J'ai résolu mon problème en construisant un model builder et en utilisant une refactorisation des champs.
Cela me génère donc tous les champs de tous les shapes suivant la refactorisation demandée.
Je n'ai ensuite plus qu'à enregistrer tous les shapes un par un.
Merci pour votre temps smile

Dernière modification par MathieuGodard (Fri 27 March 2020 16:17)

Hors ligne

 

Pied de page des forums

Powered by FluxBB