Trier les données attributaires d’un fichier Shape dans QGIS

Il n’est pas possible nativement dans QGIS d’effectuer un tri sur un champs de la table attributaire d’une couche et d’enregistrer cette même couche triée.

Pour parvenir à ce résultat, il faut installer le plugin MMQGIS développé par Michael Minn (via le menu Extensions > Installer/gérer les extensions)  et utiliser la fonctionnalité Sort Attributes dans le menu Modify :

sort_attributes

Sources :

Requêtage avancé avec le formulaire de QGIS

1. Contexte

Un projet QGIS comportant des relations entre des tables et dans lequel on souhaite faire de la saisie de données attributaires via un formulaire dans une table b à partir d’une table a.

L’affichage de la liste des valeurs saisies dans la table a renvoie par défaut l’identifiant de l’objet, souvent peu compréhensible en soi.

Exemple :

liste_sites

2. Paramétrage

2.1 Relations entre les tables

Les relations sont créées via le menu Projet > Propriétés du projet > Relations > Ajouter une relation

On créé le lien entre les deux tables a et b en complétant les champs dans la fenêtre suivante :

relations

2.3 Installation des extensions de requêtage avancé

Dans l’onglet « Paramètres » du gestionnaire d’extension, cocher la case « Afficher les extensions expérimentales ».

Installer les extensions suivantes :

  • Expression Plus FR
  • refFunctions

3. Expressions avancées

3.1 Accès au paramétrage de l’expression

Dans le formulaire de la table a, en cliquant sur le bouton « Expression », il est possible d’accéder à la fois à la fenêtre de paramétrage de l’expression ou à la sélection d’un champs de la table b pour l’affichage par défaut :

expression

Les extensions installées auparavant ajoutent les blocs « Expressions FR + » et « Reference » à la liste des fonctions.

3.2 Fonction format_date()

  • Usage : formatage de dates
  • Accès : Chaîne > format_date
  • Syntaxe :

format_date(date_enregistrement, ‘dd/MM/yyyy’)

3.3 Fonction dbvaluebyid()

  • Usage : affichage d’un champs d’une autre table par jointure
  • Accès : Reference > dbvaluebyid
  • Syntaxe :

dbvaluebyid(‘Alias de la table cible’, ‘champs_cible’, cle_etrangere)

4. Sources

Modifier la longueur d’un champs d’un fichier Shape avec un tableur pour QGIS

Que ce soit via le panneau « Champs » – accessible via les propriétés d’une couche – ou l’extension « Table Manager », QGIS ne donne pas à l’utilisateur la possibilité de modifier la longueur d’un champs dans une table de données attributaires.

Dans le cas d’un fichier Shape, il est possible d’ouvrir le fichier .DBF dans un tableur comme LibreOffice, les paramètres du champs apparaissent en entête de colonne sous la forme nom_du_champ, type (C pour character, D pour date, etc.), longueur et sont modifiables. Une fois le fichier .DBF enregistré et la couche de nouveau ouverte dans QGIS, la modification est prise en compte.

Attention : si les entêtes de colonnes étaient saisis en minuscules, elles peuvent être modifiées en majuscules à l’enregistrement.

Source :

Rechercher et remplacer une chaîne de caractères dans QGIS

Avec QGIS 2.2, pour remplacer une partie de chaîne de caractères dans un champs donné, il faut procéder de la manière suivante :

  • ouverture de la table attributaire,
  • activation du mode édition,
  • sélection des lignes à modifier via l’outil « Sélectionne les entités en utilisant des expression » :

On utilise ici l’exemple d’un identifiant composé de plusieurs lettres en préfixes puis de chiffres s’incrémentant, l’objectif étant d’ajouter un ou plusieurs zéros entre ces deux parties afin de pouvoir effectuer un tri sur cet identifiant.

  • saisie de la fonction suivante dans la zone de texte « Expression » :
regexp_substr( "fieldname",'(([id]+.)$)')
  • modification des chaînes de caractère de l’identifiant en utilisant la calculatrice de champs :
    • sélection des options « Mises à jour des entités sélectionnées », « Mise à jour d’un champs existant » et du champs à modifier,
    • saisie de la fonction suivante dans la zone de texte « Expression » :
replace( "fieldname" ,'string',id00')

Source :

Déplacer une étiquette dans QGIS

Avec le plugin EasyCustomLabelling activé, la barre d’outils suivante s’affiche dans l’interface :

easycustomlabelling

  • Sélectionner la couche à étiqueter dans le contrôle des couches.
  • Sélectionner l’outil « Générer une couche d’étiquettes » dans la barre d’outils.
  • Sélectionner l’outil « Déplacer une étiquette », désormais dégrisé, dans la barre d’outils.
  • Sélectionner l’étiquette à déplacer dans la fenêtre carte.

Créer un fond de plan en relief à partir d’un MNT dans QGIS

A partir d’un modèle numérique de terrain (un fichier au format .asc par exemple), avec l’extension GdalTools.

Lancer la commande :

Raster > Analyse de terrain > Relief

La fenêtre de dialogue suivante s’ouvre :

relief

  • Sélectionner la couche d’élévation à partir des rasters proposés dans la liste déroulantes.
  • Saisir le nom du fichier en sortie et indiquer son emplacement.
  • Modifier éventuellement le facteur Z pour accentuer la représentation du relief en sortie.
  • Cliquer sur « Création automatique » pour lancer l’analyse thématique.
  • Modifier éventuellement la distribution des classes.
  • Cliquer sur OK pour valider et lancer le traitement.

Source :