Présentation rapide de l’utilisation de l’algèbre spatiale dans Image Analyst

Disponible avec une licence Image Analyst.

Disponible avec une licence Spatial Analyst.

L’algèbre spatiale vous donne accès aux opérateurs, fonctions et classes via l’algèbre. Dans sa forme la plus basique, un raster en sortie est spécifié avant un signe égal (=) ; les outils, opérateurs et leurs paramètres se situent après. En voici un exemple :

from arcpy.ia import *
elevationPlus100 = Plus("inelevation", 100)

L’instruction ci-dessus ajoute 100 unités à un jeu de données d’élévation et crée un objet Raster nommé elevationPlus100 pour stocker les résultats.

L’algèbre spatiale peut exécuter des instructions simples, mais le langage prend toute sa puissance lors de la création d’instructions et de modèles complexes. L’algèbre spatiale étant intégré dans Python, la personne chargée de la modélisation a accès à toutes les fonctionnalités de Python, de ArcPy et de ses extensions (modules, classes, fonctions et propriétés).

Vous pouvez explorer ces nombreuses facettes au fur et à mesure de l’évolution de vos besoins. La présentation rapide suivante vous permettra de démarrer rapidement.

Fondements de l’algèbre spatiale

Il existe trois façons d’utiliser l’algèbre spatiale :

  • L'outil Calculatrice raster
  • La fenêtre Python
  • Un environnement de développement intégré (IDE) Python

Calculatrice raster

L’outil Calculatrice raster exécute des expressions d’algèbre spatiale. Il offre une interface de calculatrice à partir de laquelle il est possible de créer la plupart des instructions d’algèbre spatiale en cliquant sur des boutons. Cet outil peut être utilisé de manière autonome, mais également dans ModelBuilder. L’outil permet donc d’intégrer la puissance de l’algèbre spatiale dans ModelBuilder.

Interface utilisateur de l’outil Calculatrice raster

Dans l’expression ci-dessus, trois rasters sont combinés par la multiplication des deuxième et troisième rasters, et par l’addition du résultat au premier raster. Les opérateurs suivent un ordre de précédence défini.

L’outil Calculatrice raster n’est pas conçu pour remplacer d’autres outils Image Analyst ou Spatial Analyst. Continuez à utiliser les autres outils pour les calculs appropriés. Par exemple, utilisez l’outil Somme pondérée pour superposer plusieurs rasters pondérés. L’outil Calculatrice raster est conçu pour exécuter des instructions algébriques unilignes.

Comme indiqué précédemment, l’outil Calculatrice raster peut être intégré dans ModelBuilder. Pour plus d'informations, consultez les rubriques suivantes :

Fenêtre Python

La console interactive de la fenêtre Python vous permet d’exécuter le code Python directement depuis ArcGIS AllSource via un interpréteur Python, sans exiger de fichier script. Le code Python que vous exécutez à partir de cette fenêtre varie d’une simple ligne de code à des blocs de code complexes de plusieurs lignes. La vidéo suivante présente une vue d’ensemble de la fenêtre Python.

Pour ouvrir la fenêtre Python, cliquez sur le bouton Python Afficher la fenêtre Python dans le groupe Géotraitement de l’onglet Analyse ou dans le groupe Fenêtres de l’onglet Vue.

Exemple de fenêtre Python

Dans la séquence d’instructions ci-dessus, le paquetage de site ArcPy, les environnements de géotraitement et les modules Image Analyst sont importés, l’espace de travail est défini et l’outil Classer le raster est exécuté. Sur insertion d'un retour de chariot à la fin d'une instruction, l'instruction est exécutée immédiatement.

Les fonctions de la fenêtre Python incluent notamment le remplissage automatique de lignes, l’utilisation de variables et l’accès aux fonctions Python et ArcPy.

Environnement de développement intégré Python

Bien qu’il n’y ait aucune limite au nombre d’instructions qui peuvent être saisies dans la fenêtre Python dans ArcGIS AllSource, la création de modèles plus complexes peut devenir fastidieuse. Les outils, opérateurs, fonctions et classes des modules Image Analyst sont également accessibles depuis un environnement de développement intégré (IDE). Démarrez un IDE et saisissez les instructions souhaitées.

Dans le script suivant, ArcPy, les environnements de géotraitement et le module Image Analyst sont importés, les variables sont définies, l’extension est extraite, l’outil Classer le raster est exécuté et la sortie est enregistrée.

# Name: Image Classification
# Description: 
# Requirements: Image Analyst Extension


# Import system modules
import arcpy
from arcpy import env
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Set environment settings
env.workspace = "C:/data"

# Set local variables
inRaster = "Landsat8_Redlands.tif"
classification_file = "LandCover.ecd"

# Run Classify Raster
outLandCover = ClassifyRaster(inRaster, classification_file)

# Save the output
outLandCover.save("C:/data/Landcover.tif")

Comme c’est le cas avec la fenêtre Python, un IDE donne accès à toutes les fonctionnalités Python et ArcPy disponibles.

Opérateurs

L’algèbre spatiale prend en charge une série d’opérateurs (par exemple, +, - et *). Ces mêmes opérateurs existent également dans Python, mais sous une forme adaptée de sorte que l’algèbre spatiale puisse gérer les objets Raster différemment. Par exemple, les éléments suivants additionnent deux nombres dans une variable :

# set outVar to 14 using the Python + operator
outVar = 5 + 9

Pour souligner que l’instruction doit fonctionner sur les rasters (autrement dit, pour utiliser l’opérateur d’algèbre spatiale), vous devez redéfinir le jeu de données comme objet Raster. L’exemple suivant utilise l’opérateur d’algèbre spatiale + pour additionner deux rasters :

outRas = Raster("inras1.tif") + Raster("inras2.tif")

Les opérateurs peuvent accepter une combinaison de rasters et de nombres. Par exemple, les instructions suivantes ajoutent une valeur constante de 8 à toutes les cellules dans le raster en entrée :

outRas = Raster("inras1.tif") + 8

Expressions complexes

Les outils et opérateurs peuvent être enchaînés dans une même instruction. L’exemple suivant exécute plusieurs outils et opérateurs dans chaque expression :

outRas = Slope("indem" * 2) / 57
outdist = EucDistance(ExtractByAttributes("inras", "Value > 105"))

Les parenthèses permettent de déterminer l’ordre du traitement. Considérez les deux exemples suivants, qui utilisent les mêmes opérateurs mais qui donnent des résultats différents en raison de l'utilisation de parenthèses :

outRas1 = (Raster("inras1") + Raster("inras2")) / Raster("inras3")

et

outRas2 = Raster("inras1") + Raster("inras2") / Raster("inras3")

Dans la première instruction, inras1 est additionné à inras2 et le résultat est divisé par inras3. Sans les parenthèses, comme dans la deuxième instruction, inras2 serait divisé par inras3 et le résultat serait ajouté à inras1.

Suggestions pour l’exécution d’instructions d’algèbre spatiale

Dans tous les exemples d’algèbre spatiale qui suivent, la sortie est un objet Raster. L’objet Raster pointe sur un jeu de données raster temporaire qui sera supprimé à la fin de la session ArcGIS, à moins d’être explicitement enregistré. Pour enregistrer définitivement le jeu de données temporaire, appelez la méthode save sur l’objet Raster (voir les deux exemples ci-dessous).

L’exemple suivant présente l’environnement d’espace de travail :

import arcpy 
from arcpy import env 
from arcpy.ia import *

env.workspace = "C:/data" 

outLandCover = ClassifyRaster("Landsat8_Redlands", "LandCover.ecd")

outLandCover.save("RedlandsLandcover")

Dans l’instruction ci-dessus, l’espace de travail est défini et RedlandsLandcover est enregistré dans C:/data.

Informations supplémentaires

Pour en savoir plus sur ArcPy, explorez ces rubriques :

Pour plus d’informations sur le géotraitement dans Python, consultez les rubriques suivantes :

Rubriques connexes