Esri Esri possède deux principaux formats de données pour stocker des informations géographiques : les shapefiles et les géodatabases. Les fichiers de formes ont été développés afin de constituer un format simple pour le stockage des données géographiques et attributaires. Grâce à leur simplicité, les shapefiles sont devenus un format ouvert prisé pour le transfert de données. Bien qu'ils puissent paraître un choix facile en raison de leur simplicité, leur utilisation comporte toutefois des limites, lesquelles sont résolues par les géodatabases. Plus généralement, ces limitations sont les suivantes :
- Les données géographiques sont plus complexes que les entités et attributs simples stockés par un fichier de formes. Elles comprennent par exemple des annotations, relations attributaires, relations de topologie, domaines et sous-types attributaires, précision et résolution des coordonnées, ainsi que de nombreuses autres fonctions prises en charge dans les géodatabases mais pas dans les fichiers de formes.
- Pour stocker des attributs, les shapefiles utilisent le format de fichier dBASE (fichier .dbf). Le format dBASE non Esri, développé au début des années 1980, était alors le format le plus répandu pour le stockage des tables d'attributs. La représentation de données a toutefois connu de nombreuses améliorations depuis, comme la norme Unicode qui assure la prise en charge de la majorité des systèmes d’écriture dans le monde. C'est l'une des raisons pour lesquelles les fichiers de formes n'assurent pas correctement le stockage de données dans les langues autres que l'anglais.
- Contrairement aux classes d’entités dans une géodatabase, les shapefiles ne gèrent pas les champs de longueur de forme et de surface de forme.
Les shapefiles restent limités dans le cadre de la gestion de bases de données actives. Ils ne sont pas adaptés au cycle de vie moderne de création, modification, versionnement et archivage des données.
Ils peuvent être intéressants dans les cas suivants :
- Lorsque vous exportez des données destinées à des applications non Esri.
- Lorsque vous devez créer rapidement des attributs et des entités simples.
A l'exception des cas notés ci-dessous, les fichiers de formes sont acceptables pour le stockage de géométries d'entité simples. Les shapefiles sont toutefois problématiques pour les attributs. Par exemple, les shapefiles ne peuvent pas stocker de valeurs nulles, ils arrondissent les nombres, ils présentent une prise en charge médiocre des chaînes de caractères Unicode, ils restreignent les noms de champ à 10 caractères et ils ne peuvent pas stocker l’heure dans un champ de date. Ils ne prennent par ailleurs pas en charge certaines fonctionnalités qui figurent dans les géodatabases, comme les domaines et les sous-types. Il est donc recommandé de ne pas utiliser de shapefiles, sauf si vos données comportent des attributs très simples et n’exigent pas de fonctionnalités de géodatabase.
Composants des fichiers de formes et extensions de fichier
Les shapefiles sont stockés dans trois fichiers ou plus, portant le même préfixe et stockés dans le même dossier système. Les fichiers individuels sont visibles lorsque vous consultez le dossier dans File Explorer, mais pas dans ArcGIS Pro.
Extension | Description | Obligatoire |
---|---|---|
.shp | Fichier principal pour le stockage de la géométrie des entités. Ce fichier ne contient aucun attribut, uniquement la géométrie. | Oui |
.shx | Fichier complémentaire du fichier .shp, qui stocke la position de chaque ID d’entité dans le fichier .shp. | Oui |
.dbf | Table dBASE dans laquelle sont stockées les données attributaires des entités. | Oui |
.sbn et .sbx | Fichiers contenant l'index spatial des entités. | Non |
.atx | Créé pour chaque index attributaire dBASE. | Non |
.ixs et .mxs | Index de géocodage pour les fichiers de formes en lecture/écriture. | Non |
.prj | Fichier contenant les données du système de coordonnées. | Non |
.xml | Métadonnées pour ArcGIS ; elles stockent des informations sur le shapefile. | Non |
Limites des fichiers de formes
Les shapefiles présentent les limitations suivantes :
- Les fichiers composant le fichier de formes sont limités à une taille de 2 Go chacun, ce qui correspond à environ 70 millions d'entités ponctuelles. La capacité de stockage d’un shapefile en entités linéaires ou surfaciques dépend du nombre de sommets de chaque entité (un sommet est équivalent à un point).
- Contrairement aux classes d’entités de géodatabase, les shapefiles ne contiennent aucune tolérance x,y. La tolérance x,y correspond à la distance minimale entre des coordonnées avant qu'elles ne soient considérées comme étant identiques. La tolérance x,y est utilisée lors de l’évaluation des relations entre les entités d’une même classe d’entités ou entre plusieurs classes d’entités. Elle est aussi largement utilisée lors de la modification d'entités. Lorsque vous utilisez une opération impliquant la comparaison d’entités, comme les outils du jeu d’outils Superposition, l’outil Découper, l’outil Sélectionner une couche par emplacement ou encore tout outil acceptant au moins deux classes d’entités en entrée, utilisez des classes d’entités de géodatabase (ayant une tolérance x,y) plutôt que des shapefiles.
- Un shapefile peut occuper trois à cinq fois plus d’espace qu’une géodatabase fichier ou d’entreprise en raison des méthodes de compression de forme.
- Les fichiers de formes prennent en charge les multipatchs, mais sans les fonctionnalités avancées suivantes :
- Coordonnées de texture,
- Couleur des textures et des parties,
- Normales d'éclairage.
- L'index spatial des fichiers de formes est inefficace comparé à celui d'une classe d'entités de géodatabase. Cela signifie que les requêtes spatiales (la sélection des entités dans un polygone, par exemple) prennent davantage de temps, comparé à une classe d'entités de géodatabase. Cette inefficacité est visible essentiellement lors du traitement de nombres importants d'entités.
- Les courbes définies à l’aide de paramètres (également désignées par courbes d’arc circulaire) ne sont pas prises en charge dans les shapefiles. Vous pouvez créer des courbes paramétriques en modifiant des classes d’entités de géodatabase comme indiqué dans la rubrique Créer des arcs circulaires. Les courbes d'arc circulaire utilisent une formule mathématique pour le tracé de la courbe. Lorsque vous exportez une classe d’entités de géodatabase contenant des entités courbe d’arc circulaire vers un shapefile, les entités courbes sont transformées en simples entités linéaires avec des sommets rapprochés, permettant de capturer la forme courbée.
Limites des attributs
L’attribution dans les shapefiles présentent les limitations suivantes :
- A la différence d'autres formats, les fichiers de formes stockent les attributs numériques dans un format caractère plutôt que dans un format binaire. Ce stockage peut provoquer des erreurs d'arrondi pour les nombres réels (autrement dit, les nombres comprenant des décimales). Cette limite ne concerne pas les coordonnées des formes, mais uniquement les attributs. Le tableau suivant récapitule la largeur de champ de chaque type de données attributaires.
Type de données de géodatabase Type de champ dBASE Largeur du champ dBASE (nombre de caractères) ID d’objet
Nombre
9
Entier court
Nombre
4
Entier long
Nombre
9
Flottant
Flottant
13
Double
Flottant
13
Texte
Caractère
254
Date
Date
8
Longueurs de champ dans un dBASE - Les champs de date ne prennent en charge que la date et pas l’heure.
Attention :
L’absence de prise en charge de l’heure dans les champs de date limite considérablement la fonctionnalité des outils d’analyse temporelle.
- Les noms de champ ne peuvent pas dépasser 10 caractères.
- La longueur d'enregistrement maximale pour un attribut est de 4 000 octets. La longueur de l'enregistrement correspond au nombre d'octets nécessaire à la définition de l'ensemble des champs, pas au nombre d'octets utilisé pour stocker les valeurs réelles.
- Le nombre maximal de champs est 255. Lors de la conversion d'un fichier de formes, seuls les 255 premiers champs sont convertis si cette limite est dépassée.
- Le fichier dBASE doit contenir au moins un champ. Lors de la création d’un shapefile ou d’une table dBASE, un champ ID de type entier est inclus par défaut.
- Les fichiers dBASE ne prennent pas en charge les types de champ BLOB, GUID, ID global ou raster.
- Les fichiers dBASE disposent d’une prise en charge SQL restreinte, à l’exception d’une clause WHERE.
- Les index attributaires sont supprimés lors de la sauvegarde des mises à jour et doivent être recréés de toutes pièces.
Par défaut, dans ArcGIS Pro, les fichiers dBASE prennent en charge le jeu de caractères ANSI pour leurs noms de champ et leurs valeurs. Esri inclut la prise en charge d’Unicode pour les fichiers dBASE qui acceptent les noms de champ et les valeurs Unicode. Cette prise en charge supplémentaire risque toutefois de ne pas être disponible dans des applications tierces non Esri. Pour prendre en charge d’autres jeux de caractères, définissez la valeur de Registre dbfDefault sur un identificateur de page de codes.
La propriété de longueur d’un champ de chaîne varie selon la source de données. Dans un fichier dBASE, la longueur de champ représente le nombre d’octets pris en charge. Dans une table de géodatabase fichier en revanche, la longueur de champ représente le nombre de caractères. En d’autres termes, un shapefile avec une longueur de champ de 10 peut uniquement contenir des caractères chinois de 3 octets. Lorsque vous exportez une table avec des caractères multioctets dans une table dBASE, il est possible que le transfert des valeurs ne s’effectue pas comme prévu. Si la longueur des caractères multioctets est supérieure à celle du champ, les valeurs de champ contiendront des valeurs vides ou inattendues.
Représentation de valeurs Null
Les valeurs nulles ne sont pas prises en charge dans les shapefiles. Si une classe d’entités contenant des valeurs nulles est convertie en shapefile ou qu’une table de base de données est convertie en fichier dBASE, les valeurs nulles sont modifiées comme cela est indiqué dans le tableau suivant.
Attention :
Lorsque vous utilisez des shapefiles ou des fichiers dBASE (.dbf) en entrée dans des outils, ArcGIS ne peut pas déterminer si une valeur de champ représente une valeur nulle ou une valeur légitime.
Type de données contenant une valeur nulle | Substitution de valeurs Null |
---|---|
Nombre (type Double) : lorsque l’outil requiert une valeur NULL, infinie ou NaN (Not a Number) en sortie | -1.7976931348623158e+308 (norme IEEE pour la valeur négative maximale) |
Nombre (type Long) : lorsque l’outil requiert une valeur NULL, infinie ou NaN (Not a Number) en sortie | -214748364 |
Nombre (types Double et Long) : tous les autres outils de géotraitement | 0 |
Texte | " " (vide, espace unique) |
Date | Stockée comme un zéro, mais affichant <null> |
Fonctionnalités non prises en charge
Les fichiers de formes ne disposent d'aucun type de données étendu à l'échelle de l'espace de travail ou de la classe d'entités. Toute conversion d'une classe d'entités de géodatabase ou d'un autre format en fichier de formes implique la perte des éléments suivants :
- Sous-types
- Domaines attributaires
- Réseaux géométriques
- Topologies
- Annotation
Longueur de forme et surface de forme
Pour les classes d’entités linéaires ou surfaciques stockées dans une géodatabase, ArcGIS calcule et gère les champs shape_length et shape_area. Lorsque vous mettez à jour la géométrie d’une ligne ou d’un polygone dans une classe d’entités de géodatabase, les valeurs dans les champs shape_length et shape_area sont automatiquement actualisées. Cela n’est pas le cas pour les shapefiles. Même si un shapefile comporte un champ shape_area ou shape_leng, ce dernier n’est pas actualisé si le shapefile est mis à jour.
Fichiers de formes et géotraitement
La plupart des outils de géotraitement qui génèrent une classe d’entités prennent en charge à la fois les classes d’entités de géodatabase et les shapefiles comme format en sortie. De même, la plupart des outils qui génèrent une table prennent en charge à la fois les fichiers dBASE (.dbf) et les tables de géodatabase en sortie.
Lorsque vous utilisez un outil de la fenêtre Geoprocessing (Géotraitement), l’outil génère automatiquement un chemin d’accès à la table ou à la classe d’entités en sortie. Si l’environnement Espace de travail courant est défini sur un dossier au lieu d’une géodatabase, le chemin d’accès à la classe d’entités en sortie est un shapefile ou un fichier dBASE. Par défaut, l’environnement Espace de travail courant est défini sur une géodatabase.
En savoir plus sur les environnements de géotraitement
Comme les shapefiles sont créés rapidement, ils sont parfois utilisés pour écrire des données intermédiaires dans des modèles et ainsi accélérer l’exécution des modèles. La création dans une géodatabase fichier est toutefois presque aussi rapide que dans un shapefile. Si la vitesse d’exécution importe peu, les géodatabases fichier sont donc préférables pour les données intermédiaires et en sortie. L’alternative à l’utilisation de shapefiles pour les données intermédiaires consiste à enregistrer des entités dans l’espace de travail en mémoire.
Référence spatiale et fichiers de formes
La rubrique Référence spatiale et géotraitement aborde l’importance des propriétés de référence spatiale lors de l’utilisation d’outils de géotraitement. Il existe plusieurs environnements de géotraitement qui contrôlent la référence spatiale utilisée par les outils. Les environnements suivants ne sont pas respectés lorsque la sortie d’un outil est un shapefile :
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?