Interaction de l'objet raster dans ArcGIS
Un objet Raster référence un jeu de données raster et peut être associé à une couche raster dans la table des matières s'il est utilisé dans ArcMap. Les relations entre le jeu de données raster, l'objet Raster et la couche raster sont gérées dans la plupart des cas, mais il est important de comprendre ces relations pour mettre à profit l'algèbre spatial ArcGIS Spatial Analyst.
Les objets Raster sont créés de deux manières :
- Le raster principal en sortie d'une expression Algèbre spatial ArcGIS Spatial Analyst est un objet Raster. L'un des comportements les plus importants d'un objet Raster est que lorsqu'il est créé en tant que sortie principale à partir d'une expression Algèbre spatial, il référence un raster temporaire.
>>> outRas = Slope("elevation") >>> print outRas.isTemporary True
- Un jeu de données raster peut être redéfini en objet Raster. Lorsqu'un jeu de données raster permanent est redéfini en objet Raster, le jeu de données reste permanent.
>>> outRas = Raster("C:/Data/elevation") >>> print outRas.isTemporary False
Dans certains cas, un objet Raster est associé à une couche raster. Lors de l'utilisation de la fenêtre Python, avec l'option de géotraitement Ajouter les résultats du géotraitement à l'affichage activée, le résultat d'une expression d'algèbre spatial est ajouté à la table des matières avec le même nom que l'objet Raster. Lorsqu'un jeu de données est redéfini en raster, aucune couche n'est ajoutée à la table des matières.
Enregistrement de rasters temporaires
Lorsque les données associées à l'objet Raster sont temporaires, il est supprimé à l'issue de la session ArcGIS (l'objet sort de l'étendue, ou le script se termine), à moins que les données ne soient enregistrées. Lorsqu'un raster est enregistré, la couche et l'objet reflètent les propriétés de raster mises à jour, y compris name, path, catalogPath et le statut isTemporary du jeu de données. Il existe plusieurs manières d'enregistrer un jeu de données temporaire.
- Pour enregistrer un jeu de données raster temporaire à travers l'objet Raster associé, la méthode save de l'objet raster peut être utilisée.
- Pour enregistrer un jeu de données temporaire associé à une couche de carte, cliquez avec le bouton droit de la souris sur la couche et sélectionnez Données > Rendre permanent et fournissez un emplacement et un nom en sortie.
- Pour rendre permanent un jeu de données raster temporaire associé à une couche de carte, enregistrez le document ArcMap. Lorsque le document ArcMap est enregistré, le jeu de données raster est conservé sur disque à son emplacement courant avec son nom auto-généré.
Réutilisation d'un objet raster
Les noms d'objet doivent être uniques. Lorsqu'un nom d'objet est réutilisé, l'objet original est écrasé. Dans l'exemple ci-dessous, la sortie de l'outil Pente est remplacée lorsque outRas est réutilisé en tant que sortie de l'expression Exposition.
outRas = Slope("inRas1")
outRas = Aspect("inRas2")
Les couches sont ajoutées à la table des matières avec le même nom que l'objet Raster. Lorsqu'un nom d'objet Raster est réutilisé, plusieurs couches avec le même nom sont ajoutées à la table des matières. Dans l'exemple précité, outRas est ajouté deux fois à la table des matières. La première fois, lorsque l'expression Pente est exécutée. Cette première couche outRas référence le résultat de l'outil Pente et peut être utilisée dans la fenêtre Python jusqu'à ce que l'expression Exposition soit exécutée. Lorsque Exposition est exécutée, une deuxième couche appelée outRas est ajoutée à la table des matières, l'objet est remplacé et référence désormais le jeu de données et la couche qui résultent de l'expression Exposition.
Si l'objet Raster qui référence un jeu de données a été remplacé, le jeu de données raster peut être redéfini en tant qu'objet Raster à l'aide du nom de la couche ou du jeu de données.
Suppression d'un objet raster
Lorsqu'un objet Raster est supprimé, le devenir du jeu de données (et éventuellement de la couche) associé dépend du statut des données. Si les données sont permanentes, la suppression de l'objet Raster n'a aucune influence sur le jeu de données ou la couche associé. Si un jeu de données est temporaire, les effets de la suppression de l'objet Raster varient s'il existe une couche qui référence également le jeu de données raster. S'il n'existe aucune couche associée au jeu de données temporaire et que l'objet est supprimé, alors le jeu de données est supprimé. S'il existe une couche associée au jeu de données temporaire et que l'objet est supprimé, alors les données temporaires sont conservées.
Vous trouverez ci-dessous un exemple de procédure de suppression d'un objet Raster appelé outRas.
outRas = Slope("C:/Data/elevation")
del outRas
Affectation de l'objet raster à un nouvel objet raster
L'affectation d'un objet Raster à un nouvel objet Raster ne copie pas le jeu de données ou la couche associés. L'affectation d'un objet Raster à un nouvel objet Raster crée un deuxième objet qui référence l'objet original. Dans l'exemple ci-dessous, outRas1 et outRas2 référencent le même jeu de données raster.
outRas1 = Slope("elevation")
# Assigns Raster object to a new Raster object and save the raster dataset
outRas2 = outRas1
outRas2.save("C:/output/outslope")
Dans l'exemple ci-dessus, outRas1 et outRas2 référencent le même jeu de données. Par conséquent, lorsque outRas2 est enregistré, les deux objets reflètent le statut permanent, le nouvel emplacement et le nouveau nom du jeu de données enregistré, outslope. Si outRas1 est une couche dans votre table des matières et que vous rendez les données permanentes par l'intermédiaire de la propriété de la couche ou en enregistrant votre document ArcMap, alors les deux objets outRas1 et outRas2 référencent le jeu de données enregistré.