Disponible avec une licence Spatial Analyst.
Les objets raster peuvent servir d'entrée dans les expressions Algèbre spatial et en sont les principales sorties. Lorsque vous exécutez une expression Algèbre spatial qui utilise des opérateurs, les entrées doivent être des objets raster ou des constantes. Les rasters générés par les expressions Algèbre spatial sont toujours temporaires, mais peuvent être enregistrés en appelant la méthode save sur l'objet raster. Les objets raster peuvent être interrogés pour accéder facilement aux propriétés du jeu de données référencé.
Création d'un objet raster
Les objets raster sont créés par la redéfinition d'un jeu de données raster ou en tant que sortie d'outils dans l'ArcGIS Spatial Analyst extension. La redéfinition d'un raster permet d'interroger facilement les nombreuses propriétés du jeu de données raster.
- Pour créer un objet raster, indiquez un nom de couche ou un chemin d'accès et un nom de jeu de données, comme illustré dans l'exemple suivant.Dans l'instruction ci-dessus, les propriétés du jeu de données raster elevation sont maintenant disponibles via l'objet raster obtenu (rasObject). Pour obtenir la liste des propriétés d'un objet raster, consultez la rubrique Liste complète des propriétés d'un objet raster.
rasObject = Raster("C:/Data/elevation")
- Les objets raster sont créés comme la forme de sortie de gauche dans les outils Spatial Analyst.
# rasObject is a Raster object pointing to a temporary # raster dataset rasObject = Slope("C:/Data/elevation")
Méthode d'enregistrement d'objets raster
Le raster associé à l'objet raster peut être enregistré à l'aide de la méthode save.
Les outils Spatial Analyst créent des résultats temporaires. Ces résultats peuvent être enregistrés à l'aide de la méthode save de l'objet raster. Dans l'exemple ci-dessous, la sortie temporaire de l'outil Pente est enregistrée dans un dossier en sortie spécifié.
outraster = Slope("C:/Data/elevation")
outraster.save("C:/output/sloperaster")
L'emplacement dans lequel les données sont enregistrées dépend de ce que vous entrez dans la méthode save et des environnements d'espace de travail que vous avez définis.
- Lorsque le chemin d'accès complet, avec le nom du jeu de données, est spécifié, cet emplacement est alors l'endroit où les données permanentes seront enregistrées.
- Si seulement un nom de jeu de données est spécifié, l'emplacement des données enregistrées est déterminé par les environnements d'espace de travail de géotraitement.
- Si ni l'espace de travail temporaire, ni l'espace de travail courant ne sont configurés, les données enregistrées seront placées à l'emplacement de l'espace de travail défini.
- Si l'espace de travail temporaire et l'espace de travail courant sont configurés, les données enregistrées seront placées dans l'espace de travail courant.
- Si aucun espace de travail n'est configuré, une erreur est renvoyée.
- Si vous souhaitez simplement conserver les données à l'endroit où elles sont avec leur nom par défaut, appelez la méthode save sans spécifier de nom, comme illustré dans l'exemple ci-dessous :
outraster.save()
- La méthode save prend en charge tous les formats raster pris en charge par Spatial Analyst. Dans l'exemple ci-dessous, la méthode save raster permet d'enregistrer les données dans un raster de géodatabase fichier et d'ajouter le format IMAGINE.
outraster.save("C:/output/file_gdb.gdb/sloperaster") outraster.save("C:/output/sloperaster.img")
Utilisation des propriétés raster
Lorsqu'un raster est redéfini en objet raster, il est facile d'interroger les propriétés à partir du jeu de données. Toutes les propriétés de l'objet raster sont en lecture seule. L'interrogation d'une propriété Raster renvoie une chaîne, un nombre ou un objet. Les propriétés raster peuvent être utilisées de différentes façons, notamment comme entrée dans un paramètre d'outil, ou pour définir un paramètre d'environnement (comme illustré ci-dessous).
from arcpy import env
from arcpy.sa import *
outraster = Raster("C:/Data/studyarea")
myextent = outraster.extent
# Modify myextent as necessary for your workflow and use it to set the extent environment
env.extent = myextent