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.

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é à gauche d’un signe égal (=) tandis que les outils, les opérateurs et leurs paramètres se situent à droite. Par 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.

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. 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, d’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.

Essentiel de l'exécution d'Algèbre spatiale

Il existe trois façons d'utiliser Algèbre spatiale :

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

Calculatrice raster

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

Interface utilisateur de Calculatrice raster
Interface utilisateur de 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 de ce produit (résultat) au premier. 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.

Puisque Calculatrice raster est un outil de géotraitement, comme tous les outils, il peut être intégré dans ModelBuilder. Pour plus d'informations, consultez les rubriques suivantes :

Fenêtre Python

La fenêtre Python est un emplacement efficace et pratique qui permet d'utiliser les outils de géotraitement et les fonctionnalités Python depuis ArcGIS. Les commandes Python exécutées à partir de cette fenêtre peuvent varier de simples lignes de code à des blocs complexes dotés d'une logique. La fenêtre Python permet également d'accéder à des fonctionnalités supplémentaires grâce à des modules et de bibliothèques Python personnalisés ou tiers.

Pour lancer 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 précitée d’instructions, 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 à la fonctionnalité Python et ArcPy.

Environnement de développement intégré Python

Bien que le nombre d’instructions pouvant être saisies dans la fenêtre Python de ArcGIS Pro ne soit pas limité, il peut être fastidieux de créer des modèles plus complexes. Les outils, opérateurs, fonctions et classes des modules Image Analyst sont également accessibles depuis votre environnement de développement intégré favori tel que PythonWin. Démarrez votre IDE préféré et entrez 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"

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

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

Comme dans le cas de la fenêtre Python, un IDE donnera accès à toute la fonctionnalité Python et ArcPy disponible.

Utilisation des opérateurs

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 qu’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 Algèbre spatiale), vous devez redéfinir le jeu de données comme Raster. L’exemple suivant utilise l’opérateur Algèbre spatiale + pour additionner deux rasters :

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

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") + 8

Création d'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 Algèbre spatiale

Dans tous les exemples 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).

Exemple présentant 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, RedlandsLandcover sera donc enregistré dans C:\data.

Lectures complémentaires

Pour mieux comprendre ArcPy, consultez ces rubriques :

Pour obtenir plus d'informations sur le géotraitement dans Python, les rubriques suivantes peuvent être utiles :

Rubriques connexes