Accès aux propriétés ST_Raster

Complexité : Intermédiaire Exigences relatives aux données : Utilisez vos propres données Objectif : Découvrez quelles fonctions renvoient des informations sur une valeur ST_Raster et comment les utiliser.

Le type ST_Raster inclut plusieurs fonctions qui renvoient les propriétés d'une valeur ST_Raster. Cette rubrique propose des exemples d'utilisation de ces fonctions. Veillez à utiliser des valeurs appropriées à vos données dans les exemples SQL.

Utilisation de la fonction describe

Utilisez la fonction describe pour obtenir une liste de propriétés de valeur ST_Raster. L'exécution de la fonction describe sans argument renvoie les propriétés générales de la valeur ST_Raster.

Pour renvoyer les propriétés d'une palette de couleurs si la valeur raster en possède une, incluez l'argument de palette de couleurs. Si la valeur raster ne possède pas de palette de couleurs et si cet argument est spécifié, une erreur est renvoyée. Si la valeur ST_Raster possède une palette de couleurs, la fonction hasColormap renvoie la valeur True (1). Outre les propriétés générales de la valeur ST_Raster, la spécification de l'argument de palette de couleurs renvoie également l'index de palette de couleurs qui été appliqué.

Les propriétés de stockage d'une valeur ST_Raster peuvent être renvoyées en incluant l'argument de stockage avec la fonction describe. Cette opération permet également de répertorier les propriétés de stockage classées par niveau de pyramide et sous-classées par canal raster. Les propriétés de stockage incluent la valeur minimale, la valeur maximale, la moyenne et l'écart type des valeurs de pixel dans chaque canal et niveau de pyramide. Les propriétés de stockage incluent également un compte du nombre total de pixels, ainsi que la taille compressée décomposée par canal et niveau de pyramide.

Renvoi des propriétés générales d'une valeur ST_Raster

Si vous utilisez la fonction describe ST_Raster sans spécifier d'argument, la requête renvoie les propriétés générales de chaque valeur ST_Raster.

Les exemples suivants montrent comment utiliser une instruction SELECT avec la fonction describe pour renvoyer les propriétés générales des valeurs ST_Raster dans une table nommée urban_areas. Seuls les enregistrements qui répondent aux critères de la clause WHERE sont renvoyés.

Étapes :
  1. Utilisez l'instruction SELECT appropriée à votre système de gestion de bases de données (SGBD).

    Oracle

    SELECT t.raster.describe()
    FROM URBAN_AREA t
    WHERE NAME = 'ALL_CITIES';

    PostgreSQL

    SELECT describe(raster)
    FROM urban_area
    WHERE name = 'all_cities';

    SQL Server

    SELECT raster.describe(NULL)
    FROM urban_area
    WHERE name = 'all_cities';

Renvoi des propriétés de stockage d'une valeur ST_Raster

La fonction describe ST_Raster avec l'argument de stockage renvoie les propriétés générales de chaque valeur ST_Raster, ainsi que ses propriétés de stockage.

Les exemples suivants montrent comment utiliser la fonction describe avec l'argument de stockage pour renvoyer les propriétés de stockage de ST_Raster pour la table urban_areas.

Étapes :
  1. Utilisez l'instruction SELECT appropriée à votre SGBD.

    Oracle

    SELECT t.raster.describe('storage')
    FROM URBAN_AREA t
    WHERE NAME = 'ALL_CITIES';

    PostgreSQL

    SELECT describe(raster,'storage')
    FROM urban_area
    WHERE name = 'all_cities';

    SQL Server

    SELECT raster.describe('storage')
    FROM urban_area
    WHERE name = 'all_cities';

Renvoi de l'index de palette de couleurs d'un ST_Raster

La fonction describe ST_Raster avec l'argument de palette de couleurs renvoie les propriétés générales et l'index de palette de couleurs de chaque valeur ST_Raster. Si la valeur ST_Raster ne possède pas de palette de couleurs, une erreur est renvoyée lorsque l'argument de palette de couleurs est inclus.

Étapes :
  1. Utilisez l'instruction SELECT appropriée à votre SGBD.

    Oracle

    SELECT t.raster.describe('colormap')
    FROM URBAN_AREA t
    WHERE NAME = 'ALL_CITIES';

    PostgreSQL

    SELECT describe(raster,'colormap')
    FROM urban_area
    WHERE name = 'all_cities';

    SQL Server

    SELECT raster.describe('colormap')
    FROM urban_area
    WHERE name = 'all_cities';

Utilisation de la fonction hasColormap pour déterminer la présence ou l'absence d'une palette de couleurs

Utilisez la fonction hasColormap pour déterminer si un index de palette de couleurs est appliqué ou non à une valeur ST_Raster. La fonction hasColormap renvoie la valeur booléenne True si un index de palette de couleurs est présent. Sinon, elle renvoie la valeur False.

La fonction hasColormap dans la clause SELECT renvoie 1 si la valeur ST_Raster possède une palette de couleurs et 0 dans le cas contraire.

Étapes :
  1. Oracle

    SELECT t.raster.hasColormap(), NAME 
    FROM URBAN_AREA t;

    PostgreSQL

    SELECT hasColormap(raster), name 
    FROM urban_area;

    SQL Server

    SELECT raster.hasColormap(), name 
    FROM urban_area;

Limitation des résultats aux enregistrements qui possèdent ou non une palette de couleurs

La fonction hasColormap peut être ajoutée à la clause WHERE pour renvoyer les enregistrements qui possèdent ou ne possèdent pas de palette de couleurs.

Étapes :
  1. Utilisez l'instruction SELECT appropriée à votre SGBD.

    Oracle

    SELECT t.raster.describe('colormap')
    FROM URBAN_AREA t
    WHERE t.raster.hasColormap(raster) = 1;

    PostgreSQL

    SELECT describe(raster,'colormap')
    FROM urban_area
    WHERE hasColormap(raster) = 1;

    SQL Server

    SELECT raster.describe('colormap')
    FROM urban_area
    WHERE raster.hasColormap() = 1;

Utilisation de la fonction hasStats pour déterminer si les statistiques ST_Raster ont été calculées

La fonction hasStats renvoie la valeur booléenne True si les statistiques d'une valeur ST_Raster ont été calculées.

ConseilConseil :

Pour calculer des statistiques, utilisez la fonction buildStats ST_Raster. Pour supprimer les statistiques d'un ST_Raster, utilisez la fonction deleteStats.

Utilisez la fonction hasStats dans la clause SELECT pour déterminer si des statistiques ont été calculées sur la valeur ST_Raster. Cette fonction renvoie 1 pour les valeurs ST_Raster qui ont des statistiques et 0 pour celles qui n'ont pas de statistiques.

Étapes :
  1. Oracle

    SELECT t.raster.hasStats(),NAME
    FROM URBAN_AREA t;

    PostgreSQL

    SELECT hasStats(raster),name
    FROM urban_area;

    SQL Server

    SELECT raster.hasStats(),name
    FROM urban_area;

La fonction hasStats peut être appliquée à la clause WHERE pour indiquer à la requête de renvoyer les enregistrements qui ont ou n'ont pas de statistiques. Dans ces exemples, la clause WHERE filtre uniquement les enregistrements qui ont des statistiques sur la valeur ST_Raster. Les statistiques sont ensuite supprimées des valeurs de ce raster.

Étapes :
  1. Oracle

    UPDATE URBAN_AREA t
    SET raster = t.raster.deleteStats()
    WHERE t.raster.hasStats() = 1;

    PostgreSQL

    UPDATE urban_area
    SET raster = deleteStats(raster)
    WHERE hasStats(raster) = 1;

    SQL Server

    UPDATE urban_area
    SET raster = raster.deleteStats()
    WHERE raster.hasStats() = 1;

Renvoi du type de compression d'un ST_Raster

La fonction getCompressionType renvoie la propriété de compression d'un raster. Les quatre types de compression possibles sont les suivants :

La compression LZ77 est utilisée dans la plupart des cas. Toutefois, la compression JPEG est utilisée sur les données à trois canaux, les données 8 bits ou les données en nuances d'échelle de gris qui varient fortement. La compression JPEG 2000 est généralement réservée aux données 16 bits.

Dans ces exemples, l'argument de stockage est spécifié avec la fonction describe, et la fonction getCompressionType est utilisée dans la clause WHERE pour renvoyer uniquement les valeurs ST_Raster auxquelles une compression JPEG est appliquée.

Étapes :
  1. Utilisez l'instruction SELECT appropriée à votre SGBD.

    Oracle

    SELECT t.raster.describe('storage')
    FROM URBAN_AREA t
    WHERE t.raster.getCompressionType() = 'JPEG';

    PostgreSQL

    SELECT describe(raster,'storage')
    FROM urban_area
    WHERE getCompressionType(raster) = 'JPEG';

    SQL Server

    SELECT raster.describe('storage')
    FROM urban_area
    WHERE raster.getCompressionType() = 'JPEG';

Détermination du type d'interpolation de pyramide d'une valeur ST_Raster

Le type d'interpolation de pyramide est l'algorithme utilisé pendant la création de la pyramide. La fonction getInterpolationType du type ST_Raster renvoie le type d'interpolation qui été utilisé pour créer la pyramide. Si la pyramide n'est pas présente, la fonction renvoie une valeur Null. Les trois types d'interpolation possibles sont le voisin le plus proche, l'interpolation bilinéaire et bicubique.

En général, le type d'interpolation de pyramide du voisin le plus proche est utilisé à chaque fois que l'interpolation bilinéaire ne peut pas l'être. L'interpolation bilinéaire est favorisée, car elle permet généralement d'obtenir un produit plus lisse. Toutefois, comme l'interpolation bilinéaire ne conserve pas les valeurs de pixel du niveau précédent, elle ne peut pas être utilisée sur les données avec palette de couleurs et ne convient pas aux données de pixels inférieures à 8 bits.

Ces requêtes renvoient le type d'interpolation de pyramide de toutes les valeurs ST_Raster qui ont une pyramide.

Étapes :
  1. Oracle

    SELECT t.raster.getInterpolationType()
    FROM URBAN_AREA t
    WHERE t.raster.getPyramidLevel() > 0;

    PostgreSQL

    SELECT getInterpolationType(raster)
    FROM urban_area
    WHERE getPyramidLevel(raster) > 0;

    SQL Server

    SELECT raster.getInterpolationType()
    FROM urban_area
    WHERE raster.getPyramidLevel() > 0;

Détermination du type d'entrelacement de canal d'une valeur ST_Raster

Le type ST_Raster prend en charge l'entrelacement des canaux séquentiel (BSQ) et contigu (BIP).

RemarqueRemarque :

ArcObjects et les applications basées sur ArcObjects, telles qu'ArcGIS Desktop, lisent uniquement les données qui ont été stockées au format BSQ.

L'entrelacement BIP s'applique uniquement aux données à trois canaux et 8 bits qui sont stockées sous forme de canal unique dans l'ordre (r0, g0, b0, r1, g1, b1 … rn, gn, bn) alors que BSQ stocke les canaux en ordre séquentiel distinct (r0...rn),(g0...gn),(b0...bn).

Les requêtes suivantes renvoient le type d'entrelacement pour chaque valeur ST_Raster dans la colonne ST_Raster d'une table.

Étapes :
  1. Oracle

    SELECT t.raster.getInterleaveType()
    FROM URBAN_AREA t;

    PostgreSQL

    SELECT getInterleaveType(raster)
    FROM urban_area;

    SQL Server

    SELECT raster.getInterleaveType()
    FROM urban_area;

Détermination du type de pixel d'un ST_Raster

La fonction getPixelType renvoie le type de pixel d'une valeur ST_Raster. Les types de pixels suivants sont pris en charge par le type ST_Raster :

Ces instructions UPDATE permettent de créer des pyramides pour toutes les valeurs ST_Raster dans la colonne ST_Raster, mais uniquement si le type de pixel de la valeur ST_Raster est un nombre entier 8 bits non signé.

Étapes :
  1. Oracle

    UPDATE URBAN_AREA t
    SET raster = t.raster.buildPyramid('bilinear')
    WHERE t.raster.getPixelType() = 'UINT8';

    PostgreSQL

    UPDATE urban_area
    SET raster = buildPyramid(raster,'bilinear')
    WHERE getPixelType(raster) = 'UINT8';

    SQL Server

    UPDATE urban_area
    SET raster = raster.buildPyramid('bilinear')
    WHERE raster.getPixelType() = 'UINT8';

Rubriques associées


3/6/2012