Workflow : création d'un champ raster ArcObjects

Complexité : Avancé Exigences relatives aux données : Utilisez vos propres données Objectif : Créez et renseignez un champ raster non spatial et préparez-le pour qu'ArcGIS puisse y accéder.

Certaines applications affichent des images (représentant des panneaux de signalisation, des rivières ou des bâtiments) pour mieux illustrer un point, une ligne ou une entité surfacique. Ces images peuvent ou non être référencées spatialement. Vous pouvez utiliser SQL pour créer une table avec une colonne raster non spatiale.

Le workflow suivant explique comment créer et renseigner une colonne raster et la préparer pour qu'ArcGIS puisse y accéder.

Créer et renseigner une table avec une colonne raster

Étapes :
  1. Connectez-vous à la base de données à partir d'un éditeur SQL.

    Par exemple, connectez-vous à Oracle à partir de SQL*Plus, à PostgreSQL à partir de pgAdminIII ou de l'invite de commande psql, ou à Microsoft SQL Server à partir de Management Studio.

  2. Créez une table dotée d'une colonne ST_Raster.

    Oracle

    CREATE TABLE real_estate (address nvarchar2(255),
    sde.st_raster picture);

    PostgreSQL

    CREATE TABLE real_estate (address varchar(255), 
    sde.st_raster picture);

    SQL Server

    CREATE TABLE real_estate (address varchar(255), 
    dbo.st_raster picture);

    Si votre géodatabase dans SQL Server est stockée dans la structure de l'utilisateur sde, faites précéder la fonction de sde.

  3. Utilisez la fonction ST_Raster_Util_Initialize pour initialiser la colonne raster.

    Dans ces exemples, l'argument projectID est nul parce que les données ne sont pas référencées spatialement.

    Oracle

    BEGIN
    SDE.ST_RASTER_UTIL.INITALIZE ('real_estate','picture',NULL,'defaults');
    END;
    /

    PostgreSQL

    SELECT st_raster_util_initialize  
    ('real_estate','address',4326,'DEFAULTS');

    SQL Server

    EXEC dbo.st_raster_util_initialize 
    'sde','bobby','real_estate','address',4326,NULL,'DEFAULTS'

    Une fois cette méthode exécutée, la colonne raster est inscrite dans ArcSDE et ses fonctionnalités peuvent y accéder.

  4. Convertissez une image TIFF à l'aide du constructeur ST_Raster.

    Dans ces exemples, une image de la propriété située à l'adresse 30551 Indépendance Ave est entrée dans la table real_estate en convertissant le fichier image TIFF 30551_independence avec le constructeur ST_Raster.

    Oracle

    INSERT INTO REAL_ESTATE (address, sde.st_raster)
    VAULES
    ('30551 Independence  Ave',
    SDE.ST_RASTER('C:\30551_independence.tif','compression=lz77'));
    

    PostgreSQL

    INSERT INTO real_estate (address, sde.st_raster)
    VAULES
    ('30551 Independence Ave',  
    sde.st_raster('C:\30551_independence.tif'));

    SQL Server

    INSERT INTO real_estate (address, dbo.st_raster)
    VALUES
    ('30551 Independence Ave',
    ST_Raster::construct('C:\30551_independence.tif'));
    ConseilConseil :

    Assurez-vous que le serveur de base de données peut accéder au chemin d'accès à l'image.

  5. Vous pouvez insérer des données supplémentaires dans cette table.

Ajouter un identifiant de ligne inscrit à la table

Pour parcourir les lignes d'une table ArcSDE, ArcGIS a besoin d'une colonne d'identifiant de ligne inscrit ArcSDE (également appelé ObjectID) dans la table. Vous pouvez utiliser la commande sdetable pour ajouter l'identifiant de ligne.

Étapes :
  1. Exécutez la commande sdetable avec l'opération alter_reg pour ajouter une colonne d'identifiant de ligne à la table qui est inscrite dans ArcSDE.

    Oracle

    sdetable -o alter_reg -t real_estate -c objectid -C SDE 
    -i sde:oracle11g -s myserver -u tblowner -p ulook.away -N

    PostgreSQL

    sdetable -o alter_reg -t real_estate -c objectid -C SDE -N
    -i sde:postgresql:myserver -s myserver -D pgdb -u tblowner -p ulook.away 

    SQL Server

    sdetable -o alter_reg -t real_estate -c objectid -C SDE -N
    -i sde:sqlserver:myserver\ssinstance -D ssdb -u tblowner -p ulook.away 

    Les rasters de cette table peuvent maintenant être affichés par l'intermédiaire de l'interface utilisateur d'ArcGIS Desktop.

Si vous souhaitez être en mesure de modifier la table dans ArcGIS, ou si vous souhaitez que la table participe à des fonctionnalités de géodatabase, telles que les sous-types ou les classes de relations, vous devez l'inscrire dans la géodatabase.

Inscription de la table dans la géodatabase

Utilisez ArcGIS Desktop pour inscrire la table dans la géodatabase.

Étapes :
  1. Lancez ArcMap et ouvrez la fenêtre Catalogue ou démarrez ArcCatalog.
  2. Connectez-vous à la géodatabase ArcSDE qui contient la table que vous souhaitez inscrire.

    Cette connexion est établie sous le nœud Connexions aux bases de données de l'arborescence du catalogue. Assurez-vous que vous connectez en tant que propriétaire de la table.

  3. Cliquez avec le bouton droit de la souris sur la table real_estate.
  4. Cliquez sur Inscrire dans la géodatabase.
  5. Vous serez invité à choisir le champ ObjectID existant ou à en créer un.
  6. Choisissez d'utiliser le champ objectid que vous avez ajouté avec la commande sdetable.
  7. Cliquez sur OK.

Rubriques associées


2/28/2012