Interaction entre les objets raster

Disponible avec une licence Spatial Analyst.

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 un affichage cartographique. 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 le langage d’algèbre spatiale de Spatial Analyst.

Les objets Raster sont créés comme suit :

  • La sortie d’une expression d’algèbre spatiale est un objet Raster. La caractéristique principale d’un objet Raster, créé en tant que sortie principale à partir d’une expression d’algèbre spatiale, est qu’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 tant qu’objet Raster. Lorsqu’un jeu de données raster permanent est redéfini en tant qu’objet Raster, le jeu de données reste permanent.
    >>> outRas = Raster("C:/Data/elevation")
    >>> print outRas(isTemporary)
    False

Si vous utilisez la fenêtre Python, le résultat d’une expression d’algèbre spatiale est ajouté à l’affichage Contents (Contenu) avec le nom de 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.

Enregistrer un raster temporaire

Si les données associées à l’objet Raster sont temporaires, elles sont supprimées à l’issue de la session ArcGIS (l’objet sort du domaine d’applicabilité ou le script se termine) à moins d’être enregistrées. Lorsqu’un raster est enregistré, la couche et l’objet reflètent les propriétés de raster mises à jour, notamment name, path, catalogPath et le statut isTemporary du jeu de données. Vous pouvez enregistrer un jeu de données temporaire de différentes manières :

  • Pour enregistrer un jeu de données raster temporaire via l’objet Raster associé, utilisez la méthode save de l’objet Raster.
  • Pour rendre permanent un jeu de données raster temporaire associé à une couche de carte, enregistrez le projet cartographique. Lorsque le projet est enregistré, le jeu de données raster est conservé sur disque à son emplacement actuel avec son nom généré automatiquement.

Réutiliser un objet raster

Les noms d’objet doivent être uniques. Lorsqu’un nom d’objet est réutilisé, l’objet d’origine est remplacé. Dans l’exemple ci-après, la sortie de l’outil Slope (Pente) est remplacée si outRas est réutilisé en tant que sortie de l’expression Aspect (Aspect).

outRas = Slope("inRas1") 
outRas = Aspect("inRas2")

Les couches sont ajoutées au contenu avec le même nom que celui de l’objet Raster. Lorsqu’un nom d’objet Raster est réutilisé, plusieurs couches portant le même nom sont ajoutées à la fenêtre de contenu. Dans l’exemple précédent, outRas est ajouté deux fois. Il est ajouté la première fois lorsque l’expression Slope (Pente) est exécutée. Cette première couche outRas référence le résultat de l’outil Slope (Pente) et peut être utilisée dans la fenêtre Python jusqu’à ce que l’expression Aspect (Aspect) soit exécutée. Lorsque l’expression Aspect (Aspect) est exécutée, une deuxième couche nommée outRas est ajoutée, l’objet est remplacé et la couche référence désormais le jeu de données et la couche résultant de l’expression Aspect (Aspect).

Conseil :

Si l’objet Raster qui référence un jeu de données est 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.

Supprimer 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’affecte pas 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 selon qu’il existe une couche qui référence également le jeu de données raster. Si aucune couche n’est associée au jeu de données temporaire et que l’objet est supprimé, le jeu de données l’est également. Si une couche est associée au jeu de données temporaire et que l’objet est supprimé, les données temporaires sont conservées.

Attention :
Les données temporaires référencées par une couche ne sont pas supprimées lorsque l’objet Raster est supprimé ; cependant, toutes les données temporaires sont supprimées lorsque l’application est fermée (à moins qu’elles ne soient enregistrées), indépendamment des couches ou objets existants.

L’exemple suivant indique comment supprimer un objet Raster nommé 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é. L’affectation d’un objet Raster à un nouvel objet Raster crée un second objet qui référence l’objet d’origine. Dans l’exemple suivant, 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 cet exemple, 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 la 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 la carte, les deux objets, outRas1 et outRas2 référencent le jeu de données enregistré.

Rubriques connexes