Workflow : création d'un champ raster ArcObjects
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
-
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.
- 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.
- 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.
- 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'));
Astuce :Assurez-vous que le serveur de base de données peut accéder au chemin d'accès à l'image.
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.
- 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.
- Lancez ArcMap et ouvrez la fenêtre Catalogue ou démarrez ArcCatalog.
-
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.
- Cliquez avec le bouton droit de la souris sur la table real_estate.
- Cliquez sur Inscrire dans la géodatabase.
- Choisissez d'utiliser le champ objectid que vous avez ajouté avec la commande sdetable.
- Cliquez sur OK.