Jeux de données raster et catalogues d'images d'une géodatabase dans PostgreSQL
Les données raster sont des données spatiales représentées dans un tableau de cellules de taille égale organisées en lignes et colonnes. Les données raster peuvent être composées d'un ou plusieurs canaux raster. Pour une explication détaillée des données raster et de leurs attributs, reportez-vous au livre "Connaissance des données raster" dans cette aide. Vous pouvez commencer par Que sont les données raster ?
Rasters dans ArcGIS for Desktop
Dans ArcGIS, les données raster peuvent être stockées dans un jeu de données raster, un catalogue d'images ou une mosaïque. Pour une description de ces types de stockage raster, reportez-vous à la rubrique Organisation des données raster.
Dans l'arborescence du Catalogue, les jeux de données raster individuels du PostgreSQL se présentent sous la forme suivante :
Un catalogue d'images dans l'arborescence du catalogue a l'icône suivante :
Les noms de catalogues d'images et de jeux de données raster dans le PostgreSQL contiennent le nom de la base de données, le nom du propriétaire du catalogue d'images ou du jeu de données et le nom du catalogue d'images ou du jeu de données raster lui-même.
Par exemple, un jeu de données raster qui serait nommé qa_ras_seattle2, dont le propriétaire serait l'utilisateur rocket et qui se trouverait dans la base de données m8db serait désigné m8db.rocket.qa_ras_seattle2 dans l'arborescence du catalogue.
Pour plus d'informations sur la façon dont les mosaïques sont stockées dans une géodatabase, reportez-vous à la rubrique Mosaïques dans une géodatabase dans PostgreSQL.
Tables raster dans une base de données PostgreSQL
Les géodatabases ArcSDE d'une base de données PostgreSQL peuvent stocker des données raster dans la colonne bytea native de PostgreSQL ou dans le type de stockage ST_Raster.
Rasters stockés dans bytea
Une colonne raster est ajoutée à une table métier, et chaque cellule de la colonne raster contient une référence à un raster stocké dans une table raster séparée. Par conséquent, chaque ligne d'une table métier référence un raster entier.
Lorsque vous importez un raster dans une géodatabase, une colonne raster est ajoutée à la table métier de votre choix. Chaque cellule de la colonne raster contient une référence à un raster stocké dans une table raster distincte. Par conséquent, chaque ligne d'une table métier référence un raster entier. Une seule colonne raster est autorisée par table d'affaire.
Vous pouvez nommer la colonne raster comme vous voulez, à condition que le nom que vous choisissez soit conforme à la convention d'attribution de noms de colonnes du PostgreSQL.
Un jeu de données raster est composé de cinq tables : métier, auxiliaire, bloc, canal et raster. Voici les tables pour le jeu de données raster qa_ras_seattle2_xf.
Les nombres figurant dans les tables sde_ras, sde_bnd, sde_aux et sde_blk correspondent à l'ID rastercolumn_id de la table sde_raster_columns.
La table métier
La table métier est une table attributaire de SGBD, spatialisée par l'ajout d'une colonne raster. Elle stocke l'emprise (délimite la surface) du raster. Dans l'exemple ci-dessus, la table métier est la table qa_ras_seattle2_xf.
Une table métier comprenant une colonne raster est un jeu de données raster ou un catalogue d'images. Un jeu de données raster n'a qu'une seule ligne de table métier, alors qu'un catalogue d'images peut en avoir plusieurs. Les données concernant la colonne raster sont conservées dans la table système sde_raster_columns. Les informations sur l'ensemble des tables métier, avec ou sans colonne spatiale ou colonne raster, sont conservées dans la table système sde_table_registry.
Tables d'images raster
Les images raster proprement dites sont stockées dans ces tables.
Les tables raster sont présentes dans votre géodatabase uniquement si vous avez des données raster dans la géodatabase.
La table auxiliaire de raster stocke la palette de couleurs de l'image, les statistiques d'image et le masque binaire facultatif, utilisé pour les superpositions d'image et le mosaïquage.
Les métadonnées d'image existantes, telles que les statistiques d'image, les palettes de couleurs ou les masques binaires, sont automatiquement stockées dans la table auxiliaire du raster. La colonne rasterband_id de la table auxiliaire du raster est une référence de clé étrangère à la clé primaire de la table des canaux raster. Les deux tables sont jointes par cette référence de clé primaire/étrangère lors de l'accès aux métadonnées d'un canal raster.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
rasterband_id |
integer |
Nombre qui représente un canal raster ; par exemple, un jeu de données raster avec deux canaux raster a deux valeurs différentes pour ce champ : 1 et 2. |
NOT NULL |
type |
integer |
Valeurs possibles : |
NOT NULL |
object |
bytea |
Contient les données proprement dites, soit un index de palette de couleurs, des statistiques de raster ou des transformations de coordonnées |
NOT NULL |
La table des blocs raster stocke les données d'image proprement dites pour chaque canal de l'image.
La table des blocs raster stocke les pixels de chaque canal raster. Les pixels sont tuilés uniformément dans des blocs selon une dimension définie par l'utilisateur. Les applications ArcGIS qui importent ou créent des données raster dans les géodatabases ont des dimensions par défaut. Les outils de géotraitement et ArcCatalog, par exemple, utilisent des dimensions de blocs rasters par défaut de 128 par 128 pixels par bloc. Les dimensions du bloc raster, avec la méthode de compression si elle a été spécifiée, déterminent la taille de stockage de chaque bloc raster. Il convient de choisir des dimensions de bloc raster qui, combinées avec la méthode de compression, permettent à chaque ligne de la table de bloc raster d'avoir une taille adaptée au SGBD.
La table des blocs raster contient la colonne RASTERBAND_ID, référence de clé étrangère à la clé primaire RASTERBAND_ID de la table des canaux raster. Ces tables sont jointes par la référence de clé primaire/étrangère lors de l'accès aux blocs des canaux raster.
La table des blocs raster est renseignée selon une pyramide de résolution dégressive. La hauteur de la pyramide est déterminée par le nombre de niveaux spécifiés par l'application. L'application, telle que les outils de géotraitement ou ArcCatalog, peut vous permettre de définir les niveaux, peut demander que la géodatabase les calcule, ou peut proposer les deux possibilités. La pyramide commence à la base (niveau 0), contenant les pixels d'origine de l'image. Elle se poursuit vers le sommet en fusionnant quatre pixels du niveau précédent en un seul pixel du niveau courant. Ce processus se poursuit jusqu'à ce qu'elle atteigne le sommet, défini automatiquement ou par l'utilisateur.
Les niveaux de pyramide supplémentaires peuvent augmenter le nombre de blocs raster d'un tiers. Toutefois, puisque vous pouvez spécifier le nombre de niveaux, la taille de la pyramide peut être réduite. Le premier niveau de la pyramide représente 25 pour cent de la base. Il est à noter également que le premier niveau de la pyramide n'est pas indispensable, ce qui permet de réduire considérablement la taille de la pyramide.
Lorsque vous construisez une pyramide, des rasters supplémentaires sont créés par diminution de résolution progressive d'un facteur deux à chaque niveau jusqu'au sommet. Lorsque l'application effectue un zoom arrière et que les cellules raster deviennent plus petites que le seuil de résolution, un niveau de pyramide supérieur est sélectionné. L'objectif de la pyramide est l'optimisation des performances d'affichage.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
rasterband_id |
integer |
Nombre qui représente un canal raster ; par exemple, un jeu de données raster avec deux canaux raster a deux valeurs différentes pour ce champ : 1 et 2. |
NOT NULL |
rrd_factor |
integer |
Niveau de pyramide ; les niveaux de pyramide commencent à 0 et vont en augmentant. |
NOT NULL |
row_nbr |
integer |
Numéro de ligne de tuile |
NOT NULL |
col_nbr |
integer |
Numéro de colonne de tuile |
NOT NULL |
block_data |
bytea |
Données de pixel stockées dans la tuile |
NOT NULL |
La table des canaux raster stocke les informations sur les canaux des images. Elle comprend un enregistrement pour chaque canal raster.
Les géodatabases stockent les canaux raster dans la table des canaux raster. La table des canaux raster est jointe à la table raster par la colonne RASTER_ID. La colonne RASTER_ID de la table des canaux raster est une référence de clé étrangère à la clé primaire de la table raster.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
rasterband_id |
integer |
Nombre qui représente un canal raster ; par exemple, un jeu de données raster avec deux canaux raster a deux valeurs différentes pour ce champ : 1 et 2. |
NOT NULL |
sequence_nbr |
integer |
Séquence du canal raster dans le jeu de données raster |
NOT NULL |
raster_id |
integer |
Identifiant unique du jeu de données raster ; correspond à la valeur présente dans la colonne raster de la table métier |
NOT NULL |
name |
varchar(65) |
Nom facultatif du canal raster |
|
band_flags |
integer |
Masque binaire comprenant des propriétés du canal |
NOT NULL |
band_width |
integer |
Largeur du canal en pixels |
NOT NULL |
band_height |
integer |
Hauteur du canal en pixels |
NOT NULL |
band_types |
integer |
Masque binaire comprenant des propriétés du canal |
NOT NULL |
block_width |
integer |
Largeur d'un bloc en pixels |
NOT NULL |
block_height |
integer |
Hauteur d'un bloc en pixels |
NOT NULL |
block_origin_x |
double précision |
Coordonnée x de l'origine du raster |
NOT NULL |
block_origin_y |
double précision |
Coordonnée y de l'origine du raster. |
NOT NULL |
eminx |
double précision |
Valeur x minimale d'un canal raster. |
NOT NULL |
eminy |
double précision |
Valeur y minimale d'un canal raster. |
NOT NULL |
emaxx |
double précision |
Valeur y maximale d'un canal raster. |
NOT NULL |
emaxy |
double précision |
Valeur y maximale d'un canal raster. |
NOT NULL |
cdate |
integer |
Date de création du canal raster |
NOT NULL |
mdate |
integer |
Date de dernière modification du canal raster |
NOT NULL |
La table de description du raster stocke la description des images dans une colonne raster.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
raster_id |
integer |
Identifiant unique du jeu de données raster ; correspond à la valeur présente dans la colonne raster de la table métier |
NOT NULL |
raster_flags |
integer |
Réservé pour une utilisation future |
|
description |
varchar(65) |
Description du jeu de données raster |
Autres tables système pouvant suivre les rasters
Comme d'autres types de données, les catalogues d'images et les jeux de données sont suivis dans les tables gdb_items et sde_layers. Le suivi des colonnes de type raster est effectué dans la table sde_raster_columns, qui comprend un enregistrement pour chaque table possédant une colonne raster.
Des tables attributaires supplémentaires peuvent exister comme partie du jeu de données raster ou catalogue d'images. Il n'existe qu'une seule table attributaire de raster par jeu de données raster. En revanche, les catalogues d'images peuvent disposer de plusieurs tables de ce type. Les tables attributaires de raster permettent de définir les attributs de valeurs de cellules raster particulières. Reportez-vous à la rubrique Tables attributaires de jeu de données raster pour plus d'informations sur l'utilisation de ces tables.
Vous pouvez utiliser l'outil Construire un attribut de raster du jeu d'outils Propriétés du raster dans le jeu d'outils Raster de la boîte à outils Gestion des données. Reportez-vous à la rubrique Créer la table attributaire d'un raster (Gestion des données) pour plus d'informations sur cet outil.
Pour les jeux de données raster, les tables attributaires supplémentaires sont nommées selon le format sde_vat_ < ID_colonne_raster >. Pour les catalogues d'images, le nom de table est au format sde_vat_<ID_colonne_raster>_<ID_objet>.
View a diagram of a raster dataset using bytea storage in PostgreSQL.
Les lignes pointillées indiquent les relations implicites entre colonnes.
Pour ouvrir le fichier, vous devez disposer de Adobe Acrobat Reader.
Rasters stockés au format ST_Raster
ST_Raster est un type d'objet défini par l'utilisateur composé de sous-types. Un jeu de données raster qui utilise le stockage ST_Raster est composé de trois tables : table métier, table auxiliaire et table de blocs. Lorsque le stockage ST_Raster est utilisé dans une géodatabase, les informations équivalentes qui seraient stockées dans les tables raster et de canal raster pour les rasters binaires font partie de l'objet ST_Raster dans la table de base. L'objet ST_Raster stocke également la géométrie du raster.
Les raster stockés dans le format ST_Raster ont des tables auxiliaires (sde_aux_< ID_raster >) et des tables de blocs (sde_blk_< ID_raster >) (consulter la section « Tables d'images raster » de cette rubrique) mais ils n'utilisent pas de canal raster (sde_bnd_< ID_raster >) ni de table raster (sde_ras_< ID_raster >)
View a diagram of a raster dataset using ST_Raster storage in PostgreSQL.
Les lignes pointillées indiquent les relations implicites entre colonnes.
Pour ouvrir le fichier, vous devez disposer de Adobe Acrobat Reader.
Rasters dans un document d'espace de travail XML
Les jeux de données raster sont inclus dans des balises DataElement dans un document XML. Les balises ont la valeur "esri:DERasterDataset".
<DataElement xsi:type="esri:DERasterDataset">
<CatalogPath>/V=sde.DEFAULT/RD=m8db.rocket.qa_ras_seattle2_xf</CatalogPath>
<Name>m8db.rocket.qa_ras_seattle2_xf</Name>
<Children xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DERasterBand">
<CatalogPath>/V=sde.DEFAULT/RD=m8db.rocket.qa_ras_seattle2_xf/RB=Band_1</CatalogPath>
<Name>Band_1</Name>
<DatasetType>esriDTRasterBand</DatasetType>
<DSID>-1</DSID>
<Versioned>false</Versioned>
<CanVersion>false</CanVersion>
<HasOID>true</HasOID>
<OIDFieldName>ObjectID</OIDFieldName>
<Fields xsi:type="esri:Fields">
<FieldArray xsi:type="esri:ArrayOfField">
<Field xsi:type="esri:Field">
<Name>ObjectID</Name>
<Type>esriFieldTypeOID</Type>
<IsNullable>false</IsNullable>
<Length>4</Length>
<Precision>0</Precision>
<Scale>0</Scale>
<Required>true</Required>
<Editable>false</Editable>
</Field>
<Field xsi:type="esri:Field">
<Name>Value</Name>
<Type>esriFieldTypeInteger</Type>
<IsNullable>true</IsNullable>
<Length>0</Length>
<Precision>0</Precision>
<Scale>0</Scale>
</Field>
<Field xsi:type="esri:Field">
<Name>Count</Name>
<Type>esriFieldTypeInteger</Type>
<IsNullable>true</IsNullable>
<Length>0</Length>
<Precision>0</Precision>
<Scale>0</Scale>
</Field>
</FieldArray>
</Fields>
<Indexes xsi:type="esri:Indexes">
<IndexArray xsi:type="esri:ArrayOfIndex" />
</Indexes>
<IsInteger>true</IsInteger>
<MeanCellHeight>0.175996089009095</MeanCellHeight>
<MeanCellWidth>0.176000337991447</MeanCellWidth>
<Height>1024</Height>
<Width>2048</Width>
<PixelType>U8</PixelType>
<PrimaryField>1</PrimaryField>
<TableType>esriRasterTableValue</TableType>
<Extent xsi:type="esri:EnvelopeN">
<XMin>-179.906382261841</XMin>
<YMin>-90.1303147686327</YMin>
<XMax>180.542309944643</XMax>
<YMax>90.089680376681</YMax>
<SpatialReference xsi:type="esri:GeographicCoordinateSystem">
<WKT>GEOGCS["GCS_WGS_1984", DATUM["D_WGS_1984", SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]]</WKT>
<XOrigin>-400</XOrigin>
<YOrigin>-400</YOrigin>
<XYScale>11258999068426.2</XYScale>
<ZOrigin>0</ZOrigin>
<ZScale>1</ZScale>
<MOrigin>0</MOrigin>
<MScale>1</MScale>
<XYTolerance>8.98315284119521E-09</XYTolerance>
<ZTolerance>2</ZTolerance>
<MTolerance>2</MTolerance>
<HighPrecision>true</HighPrecision>
<LeftLongitude>-180</LeftLongitude>
</SpatialReference>
</Extent>
</DataElement>