13.2. Créer des couches
Les couches peuvent être créées de plusieurs façons, notamment:
couches vides à partir de zéro
couches à partir de couches existantes
couches du presse-papier
couches à la suite d’une requête de type SQL basée sur une ou plusieurs couches (couches virtuelles)
QGIS fournit également des outils pour importer / exporter de / vers différents formats.
13.2.1. Création de nouvelles couches vecteur
QGIS vous permet de créer de nouvelles couches dans différents formats. Il fournit des outils pour créer des couches GeoPackage, Shapefile, SpatiaLite, GPX et Temporaire (également appelées couches de mémoire). La création d’une nouvelle couche GRASS est supportée dans le plugin GRASS.
13.2.1.1. Créer une nouvelle couche GeoPackage
Pour créer une nouvelle couche GeoPackage, cliquez sur le bouton dans le menu ou dans la barre d’outils gestionnaire de source de données. La boîte de dialogue nouvelle couche géopackage s’affiche comme indiqué dans Fig. 13.15.
La première étape consiste à indiquer l’emplacement du fichier de base de données. Pour ce faire, appuyez sur le bouton … à droite du champ Base de données et sélectionnez un fichier GeoPackage existant ou créez-en un nouveau. QGIS ajoutera automatiquement la bonne extension au nom que vous fournissez.
Donnez un nom à la nouvelle couche / table (Nom table)
Définissez le type geometrie. S’il ne s’agit pas d’une couche sans géométrie, vous pouvez spécifier si elle doit Inclure la dimension Z et/ou Inclure les valeurs M.
Spécifiez le système de référence de coordonnées à l’aide du bouton
Pour ajouter des champs à la couche que vous créez:
Entrez le Nom du champ
Sélectionnez le Type. Les types pris en charge sont Texte, Nombre entier (entier et entier64), nombre decimal, Date , Date and time, Binaire (BLOB) et Booléen.
Selon le format de données sélectionné, saisissez Longueur maximale .
Reproduisez les étapes ci-dessus pour chaque champ que vous devez ajouter
Une fois que vous êtes satisfait des attributs, cliquez sur OK. QGIS ajoutera la nouvelle couche à la légende, et vous pouvez la modifier comme décrit dans la section Numériser une couche existante.
Par défaut, lors de la création d’une couche GeoPackage, QGIS génère une colonne d’ID d’entité appelée fid
qui agit comme la clé primaire de la couche. Le nom peut être changé. Le champ de géométrie, s’il est disponible, est nommé geometry
, et vous pouvez choisir de Créer un index spatial dessus. Ces options se trouvent sous Options avancées avec Identifiant de la couche (nom court et lisible) et Description de la couche.
Une gestion plus approfondie des couches GeoPackage peut être effectuée avec le Gestionnaire de bases de données.
13.2.1.2. Créer une nouvelle couche Shapefile
Pour créer une nouvelle couche au format ESRI Shapefile, cliquez sur le bouton dans le menu ou dans la barre d’outils gestionnaire source de données. La boîte de dialogue Nouvelle couche shape s’affiche comme indiqué dans Fig. 13.16.
Fournissez un chemin et un nom de fichier à l’aide du bouton … à côté de Nom de fichier. QGIS ajoutera automatiquement la bonne extension au nom que vous fournissez.
Ensuite, indiquez Encodage de fichier des données
Choisissez le Type de géométrie de la couche : No Geometry (résultant en un fichier au format
.DBF
), point, multipoint, ligne ou polygone.Indiquez si la géométrie doit avoir des dimensions supplémentaires : None, Z (+ valeur M) ou valeur M.
Spécifiez le système de référence de coordonnées à l’aide du bouton
Pour ajouter des champs à la couche que vous créez:
Entrez le Nom du champ
Sélectionnez les Type de données. Uniquement nombre décimal, nombre entier, Texte et Date sont pris en charge.
Selon le format de données sélectionné, saisissez Longueur et Précision.
Reproduisez les étapes ci-dessus pour chaque champ que vous devez ajouter
Une fois que vous êtes satisfait des attributs, cliquez sur OK. QGIS ajoutera la nouvelle couche à la légende, et vous pouvez la modifier comme décrit dans la section Numériser une couche existante.
Par défaut, une première colonne entière id
est ajoutée mais peut être supprimée.
13.2.1.3. Créer une nouvelle couche SpatiaLite
Pour créer une nouvelle couche SpatiaLite, cliquez sur le bouton dans le menu ou dans la barre d’outils gestionnaire source données. La boîte de dialogue Nouvelle couche SpatiaLite s’affichera comme indiqué dans Fig. 13.17.
La première étape consiste à indiquer l’emplacement du fichier de base de données. Pour ce faire, appuyez sur le bouton … à droite du champ Base de données et sélectionnez un fichier SpatiaLite existant ou créez-en un nouveau. QGIS ajoutera automatiquement la bonne extension au nom que vous fournissez.
Donnez un nom (nom de couche) à la nouvelle couche
Définissez le type geometrie. S’il ne s’agit pas d’une couche sans géométrie, vous pouvez spécifier si elle doit Inclure la dimension Z et/ou Inclure les valeurs M.
Spécifiez le système de référence de coordonnées à l’aide du bouton .
Pour ajouter des champs à la couche que vous créez:
Entrez le Nom du champ
Sélectionnez les données Type. Les types pris en charge sont Texte, nombre entier et nombre décimal.
Reproduisez les étapes ci-dessus pour chaque champ que vous devez ajouter
Une fois que vous êtes satisfait des attributs, cliquez sur OK. QGIS ajoutera la nouvelle couche à la légende, et vous pouvez la modifier comme décrit dans la section Numériser une couche existante.
Si vous le souhaitez, vous pouvez sélectionner la Créer une clé primaire auto-incrémentée sous la section Options avancées. Vous pouvez également renommer la Colonne de géométrie ( géométrie
par défaut).
Une gestion plus approfondie des couches SpatiaLite peut être effectuée avec le Gestionnaire de bases de données.
13.2.1.4. Créer une nouvelle couche GPS
Pour créer un nouveau fichier GPX, vous devez d’abord charger le plugin GPS. ouvre la boîte de dialogue Plugin Manager. Cochez la Outil GPS.
Lorsque ce plugin est chargé, choisissez depuis le menu . Dans la boîte de dialogue, choisissez où enregistrer le nouveau fichier et appuyez sur Enregistrer. Trois nouvelles couches sont ajoutées au panneau de couches :waypoints
, routes
et traces
.
13.2.1.5. Créer une nouvelle couche temporaire en mémoire
Les couches de travail temporaires sont des couches en mémoire, ce qui signifie qu’elles ne sont pas enregistrées sur le disque et seront supprimées à la fermeture de QGIS. Elles peuvent être utiles pour stocker les entités dont vous avez temporairement besoin ou comme couches intermédiaires pendant les opérations de géotraitement.
Pour créer un nouvelle couche temporaire, choisissez l’entrée dans le menu ou dans la barre d’outils gestionnaire de sources de données. La boîte de dialogue nouvelle couche temporaire s’affiche comme indiqué dans Fig. 13.18. Ensuite :
Fournissez le Nom de couche
Sélectionnez le Type de géométrie. Ici, vous pouvez créer une :
Couche de type
pas de géométrie
, servant de table simple,Couche
Point
ouMultiPoint
,Couche
LineString / CompoundCurve
ouMultiLineString / MultiCurve
,Couche
Polygone / CurvePolygon
ouMultiPolygon / MultiSurface
.
Pour les types géométriques, spécifiez les dimensions de l’ensemble de données : vérifiez s’il doit Inclure la dimension Z et/ou Inclure les valeurs M.
Spécifiez le système de référence de coordonnées à l’aide du bouton .
Ajoutez des champs à la couche. Notez que contrairement à de nombreux formats, les couches temporaires peuvent être créées sans aucun champ. Cette étape est donc facultative.
Entrez le Nom du champ
Sélectionnez les données Type : Text, Nombre entier, Nombre décimal, Booléen, Date, Heure, Date & Heure et Binaire (BLOB) sont supportés.
Selon le format de données sélectionné, entrez les valeurs longueur et précision.
Répétez les étapes ci-dessus pour chaque champ que vous devez ajouter.
Lorsque vous êtes satisfait des paramètres, cliquez sur OK. QGIS ajoutera la nouvelle couche au panneau couches, et vous pourrez la modifier comme décrit dans la section Numériser une couche existante.
Vous pouvez également créer des couches temporaires préremplies en utilisant par exemple le presse-papiers (voir Création de nouvelles couches à partir du presse-papier) ou comme résultat d’un Processing algorithm.
Astuce
Stockez en permanence une couche mémoire sur le disque
Pour éviter la perte de données lors de la fermeture d’un projet avec des couches temporaires, vous pouvez enregistrer ces couches dans n’importe quel format vecteur pris en charge par QGIS :
sélectionner l’entrée Convertir permanent dans le menu contextuel de la couche;
en utilisant l’entrée
du menu contextuel ou le menu .
Chacune de ces commandes ouvre la boîte de dialogue Enregistrer la couche vecteur sous décrite dans la section Création de nouvelles couches à partir d’une couche existante et le fichier enregistré remplace le fichier temporaire dans le panneau Couches.
13.2.2. Création de nouvelles couches à partir d’une couche existante
Les couches raster et vecteur peuvent être enregistrées dans un format différent et / ou reprojetées dans un système de référence de coordonnées (SCR) différent en utilisant le menu Panneau Couches et en sélectionnant :
ou en cliquant avec le bouton droit sur la couche dans lepour les couches raster
ou pour les couches vecteur.
Faites glisser et déposez la couche de l’arborescence des couches vers l’entrée PostGIS dans le Panneau Navigateur. Notez que vous devez avoir une connexion PostGIS dans le Panneau Navigateur.
13.2.2.1. Paramètres commun
La boîte de dialogue Enregistrer la couche sous … affiche plusieurs paramètres permettant de modifier le comportement lors de l’enregistrement de la couche. Parmi les paramètres communs pour les raster et le vecteur:
Nom fichier: l’emplacement du fichier sur le disque. Il peut faire référence à la couche de sortie ou à un conteneur qui stocke la couche (par exemple, des formats de type base de données tels que GeoPackage, SpatiaLite ou Open Document Spreadsheets).
CRS: peut être modifié pour reprojeter les données
Étendue (les valeurs possibles sont couche, Canevas de carte ou définie par l’utilisateur)
Ajouter un fichier enregistré à la carte: pour ajouter la nouvelle couche au canevas
Certains paramètres sont toutefois spécifiques au format vecteur ou raster:
13.2.2.2. Paramètres spécifiques au raster
Selon le format d’export, certaines de ces options peuvent ne pas être disponibles :
Mode de sortie (il peut s’agir de données brutes ou image rendue)
Format: exporte vers n’importe quel format raster sur lequel GDAL peut écrire, comme GeoTiff, GeoPackage, MBTiles, PDF géospatial, SAGA GIS Binary Grid, Intergraph Raster, ESRI .hdr Labeled …
Résolution
Options création: utilisez des options avancées (compression de fichier, tailles de blocs, colorimétrie …) lors de la génération de fichiers, soit à partir de profils prédéfinis de création liés au format de sortie ou en définissant chaque paramètre.
création de Pyramides
valeurs No data
13.2.2.3. Paramètres spécifiques au vecteur
Selon le format d’export, certaines de ces options peuvent être disponibles :
Format: exporte vers n’importe quel format vecteur auquel GDAL peut écrire, tel que GeoPackage, GML, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB ou MIF, SpatiaLite, CSV, KML, ODS, …
Nom de la couche: disponible lorsque le Nom du fichier fait référence à un format de type conteneur, cette entrée représente la couche de sortie.
Codage des caracteres
Enregistrer uniquement les entités sélectionnées
Sélectionnez les champs à exporter et leurs options d’exportation. Dans le cas où vous définissez le comportement de vos champs avec certains widgets d’édition, par ex.
value map
, vous pouvez conserver les valeurs affichées dans la couche en cochant Remplacer toutes les valeurs des champs bruts sélectionnés par les valeurs affichées.Exporter la symbologie : peut être utilisé principalement pour l’export en DXF et pour tous les formats de fichiers qui gèrent les styles d’entités OGR (voir la remarque ci-dessous) comme le KML, TAB…
Pas de symbologie : Style par défaut dans l’application qui lit les données
Symbologie de l’entité : Enregistre le style avec les styles d’entités OGR (voir la remarque ci-dessous)
Symbologie de la couche de Symboles : Enregistre avec les styles d’entités OGR (voir la remarque ci-dessous), mais exporte la même géométrie plusieurs fois si plusieurs symbologies de symboles sont utilisées
Une valeur d’échelle peut être appliquée aux dernières options
Note
Les styles d’entités OGR sont un moyen de stocker le style directement dans les données en tant qu’attribut caché. Seuls certains formats peuvent gérer ce type d’informations. Les formats de fichiers KML, DXF et TAB sont de tels formats. Pour plus de détails, vous pouvez lire le document OGS Feature Styles Specification <https://gdal.org/user/ogr_feature_style.html> _ _ .
Geometrie: vous pouvez configurer le type de géométrique de la couche de sortie.
type geometrie: conserve la géométrie d’origine des entités lorsqu’elle est définie sur Automatique, sinon la supprime ou la remplace avec n’importe quel type. Vous pouvez ajouter une colonne de géométrie vide à une table attributaire et supprimer la colonne de géométrie d’une couche spatiale.
Forcer type multiple: force la création d’entités multi-géométrie dans la couche.
Inclure la dimension z aux géométries.
Astuce
La substitution du type de géométrie de la couche permet de faire des choses comme enregistrer une table sans géométrie (par exemple: .csv
) dans un fichier de formes AVEC tout type de géométrie (point, ligne, polygone), de sorte que les géométries peuvent ensuite être ajoutées manuellement aux lignes avec l’outil Ajouter partie.
Options de source de données, Options de couche ou Options personnalisées qui vous permettent de configurer des paramètres avancés en fonction du format de sortie. Certaines sont décrites dans Découvrir les formats de données et de champs mais pour tous les détails, voir la documentation du pilote GDAL. Chaque format de fichier a ses propres paramètres personnalisés, par exemple pour le format
GeoJSON
, consultez la documentation GDAL GeoJSON.
Lors de la sauvegarde d’une couche vecteur dans un fichier existant, et selon les capacités du format ciblé (ex GeoPackage, SpatiaLite, FileGDB… ), l’utilisateur peut se voir offrir différentes options telles que:
écraser tout le fichier
écraser uniquement la couche cible (le nom de la couche est configurable)
ajouter des entités à la couche cible existante
ajouter des entités, ajouter de nouveaux champs s’il y en a.
Pour les formats comme ESRI Shapefile, MapInfo .tab, l’ajout d’entité est également disponible .
13.2.3. Création de nouveaux fichiers DXF
Outre la boîte de dialogue Enregistrer sous … qui fournit des options pour exporter une seule couche vers un autre format, notamment *.DXF
, QGIS fournit un autre outil pour exporter plusieurs couches en une seule couche DXF. Il est accessible dans le menu .
Dans la boîte de dialogue Export DXF:
Fournissez le fichier de destination.
Choisissez le mode de symbologie et l’échelle (voir la note Styles d’entités OGR), le cas échéant.
Sélectionnez les données Codage des caracteres.
Sélectionnez le SCR à appliquer : les couches sélectionnées seront reprojetées dans le SCR donné.
Sélectionnez les couches à inclure dans les fichiers DXF en les archivant dans le widget de table ou en les sélectionnant automatiquement à partir d’un thème de carte. Les boutons Sélectionner tout et Désélectionner tout peuvent aider à définir rapidement les données à exporter.
Pour chaque couche, vous pouvez choisir d’exporter toutes les entités dans une seule couche DXF ou de vous fier à un champ dont les valeurs sont utilisées pour diviser les entités en couches dans la sortie DXF.
En option, vous pouvez également choisir de:
Utiliser le titre de la couche comme nom s’il est défini au lieu du nom de la couche elle-même;
Exporter les entités intersectant l’étendue actuelle de la carte;
Forcer la sortie 2d (par exemple pour prendre en charge la largeur de la polyligne);
Exporter l’étiquette en tant qu’éléments MTEXT ou éléments TEXT.
13.2.4. Création de nouvelles couches à partir du presse-papier
Les entités présentes dans le presse-papiers peuvent être collées dans une nouvelle couche. Pour ce faire, sélectionnez certaines entités, copiez-les dans le presse-papiers, puis collez-les dans une nouvelle couche en utilisant
et en choisissant:Nouvelle couche vecteur …: la boîte de dialogue Sauvegarder la couche vecteur sous … apparaît (voir Création de nouvelles couches à partir d’une couche existante pour les paramètres)
ou Couche mémoire temporaire … : vous devez fournir un nom pour la couche
Une nouvelle couche, remplie d’entités sélectionnées et de leurs attributs, est créée (et ajoutée au canevas de carte).
Note
La création de couches à partir du presse-papiers est possible avec des entités sélectionnées et copiées dans QGIS ainsi qu’avec des entités d’une autre application, tant que leurs géométries sont définies à l’aide d’un well-known text (WKT).
13.2.5. Création de couches virtuelles
Une couche virtuelle est un type spécial de couche vecteur. Il vous permet de définir une couche comme résultat d’une requête SQL impliquant un nombre quelconque d’autres couches vecteur que QGIS est capable d’ouvrir. Les couches virtuelles ne transportent pas de données par elles-mêmes et peuvent être vues comme des vues.
Pour créer une couche virtuelle, ouvrez la boîte de dialogue de création de couche virtuelle en:
en choisissant l’entrée Ajouter/Editer une couche virtuelle dans le menu ;
en activant l’onglet Ajouter une couche virtuelle dans la bite de dialogue Gestionnaire de sources de données ;
ou en utilisant l’arborescence de dialogue DB Manager.
La boîte de dialogue vous permet de spécifier un nom de couche et une requête SQL. La requête peut utiliser le nom (ou id) des couches vecteur chargées comme des tables, ainsi que leurs noms de champ comme colonnes.
Par exemple, si vous avez une couche appelée airports
, vous pouvez créer une nouvelle couche virtuelle appelée public_airports
avec une requête SQL comme:
SELECT *
FROM airports
WHERE USE = "Civilian/Public"
La requête SQL sera exécutée, quel que soit le fournisseur sous-jacent de la couche airports
, même si ce fournisseur ne prend pas directement en charge les requêtes SQL.
Des jointures et des requêtes complexes peuvent également être créées, par exemple, pour joindre des informations sur les aéroports et les pays:
SELECT airports.*, country.population
FROM airports
JOIN country
ON airports.country = country.name
Note
Il est également possible de créer des couches virtuelles en utilisant la fenêtre SQL de Extension DB Manager.
13.2.5.1. Incorporation de couches à utiliser dans les requêtes
Outre les couches vecteur disponibles dans le canevas de carte, l’utilisateur peut ajouter des couches à la liste Couches intégrées, qui peuvent être utilisées dans les requêtes sans qu’il soit nécessaire de les afficher dans le canevas de carte ou le panneau Couches.
Pour incorporer une couche, cliquez sur Ajouter et fournissez Nom local, Fournisseur, Codage des caracteres et le chemin vers Source.
Le bouton Import permet d’ajouter des couches dans le canevas de carte dans la liste des couches intégrées. Ces couches peuvent ensuite être supprimées du panneau Couches sans interrompre les requêtes existantes.
13.2.5.2. Langage de requête pris en charge
Le moteur sous-jacent utilise SQLite et SpatiaLite pour fonctionner.
Cela signifie que vous pouvez utiliser tout le SQL que votre installation locale de SQLite comprend.
Les fonctions de SQLite et les fonctions spatiales de SpatiaLite peuvent également être utilisées dans une requête de couche virtuelle. Par exemple, la création d’une couche de points à partir d’une couche d’attribut uniquement peut être effectuée avec une requête similaire à:
SELECT id, MakePoint(x, y, 4326) as geometry
FROM coordinates
Les Fonctions des expressions QGIS peuvent également être utilisées dans une requête de couche virtuelle.
Pour référencer la colonne de géométrie d’une couche, utilisez le nom geometry
.
Contrairement à une requête SQL pure, tous les champs d’une requête de couche virtuelle doivent être nommés. N’oubliez pas d’utiliser le mot-clé as
pour nommer vos colonnes si elles sont le résultat d’un calcul ou d’un appel de fonction.
13.2.5.3. Les problèmes de performance
Avec les paramètres par défaut, le moteur de couche virtuel fera de son mieux pour détecter le type des différentes colonnes de la requête, y compris le type de la colonne de géométrie, le cas échéant.
Cela se fait en introspectant la requête lorsque cela est possible ou en récupérant la première ligne de la requête (LIMIT 1) en dernier recours. La récupération de la première ligne du résultat juste pour créer la couche peut être indésirable pour des raisons de performances.
Les paramètres de la boîte de dialogue de création:
Colonne identifiant unique: spécifie un champ de la requête qui représente des valeurs entières uniques que QGIS peut utiliser comme identificateur de ligne. Par défaut, une valeur entière à incrémentation automatique est utilisée. La définition d’une colonne d’identifiant unique accélère la sélection des lignes par id.
pas de geometrie: force la couche virtuelle à ignorer tout champ de géométrie. La couche résultante est une couche uniquement attributaire.
Colonne de géometrie : spécifie le nom de la colonne de géométrie.
Type de géométrie : spécifie le type de la géométrie.
CRS Géométrie : spécifie le système de référence de coordonnées de la couche virtuelle.
13.2.5.4. Commentaires spéciaux
Le moteur de couche virtuelle tente de déterminer le type de chaque colonne de la requête. S’il échoue, la première ligne de la requête est extraite pour déterminer les types de colonne.
Le type d’une colonne particulière peut être spécifié directement dans la requête en utilisant des commentaires spéciaux.
La syntaxe est la suivante: /*:type*/
. Il doit être placé juste après le nom d’une colonne. type
peut être soit int
pour les entiers, real
pour les nombres à virgule flottante ou text
.
Par exemple:
SELECT id+1 as nid /*:int*/
FROM table
Le type et le système de référence de coordonnées de la colonne de géométrie peuvent également être définis grâce à des commentaires spéciaux avec la syntaxe suivante /*:gtype:srid*/
où gtype
est le type de géométrie (point
, linestring
, polygon
, multipoint
, multilinestring
ou multipolygon
) et srid
un entier représentant le code EPSG d’un système de référence de coordonnées.
13.2.5.5. Utilisation d’index
Lorsque vous demandez une couche via une couche virtuelle, les indexs de couche source seront utilisés de la manière suivante:
si un prédicat
=
est utilisé sur la colonne de clé primaire de la couche, le fournisseur de données sous-jacent sera invité à fournir un identifiant particulier (FilterFid)pour tout autre prédicat (
>
,<=
,! =
, etc.) ou sur une colonne sans clé primaire, une requête construite à partir d’une expression sera utilisée pour demander le fournisseur sous-jacent de données vecteur. Cela signifie que les index peuvent être utilisés sur les fournisseurs de bases de données s’ils existent.
Une syntaxe spécifique existe pour gérer les prédicats spatiaux dans les requêtes et déclenche l’utilisation d’un index spatial: une colonne cachée nommée _search_frame_
existe pour chaque couche virtuelle. Cette colonne peut être comparée pour l’égalité à une boîte englobante. Exemple:
SELECT *
FROM vtab
WHERE _search_frame_=BuildMbr(-2.10,49.38,-1.3,49.99,4326)
Les prédicats binaires spatiaux comme ST_Intersects
sont accélérés de manière significative lorsqu’ils sont utilisés en conjonction avec cette syntaxe d’index spatial.