Utiliser des opérateurs d’algèbre spatiale

Disponible avec une licence Spatial Analyst.

Disponible avec une licence Image Analyst.

En algèbre spatiale, les opérateurs effectuent une opération mathématique sur les rasters en entrée et les nombres.

En général, les opérateurs sont placés entre deux entrées (opérandes) pour effectuer une opération mathématique (par exemple, outVar = 3 + 7). En algèbre spatiale, les opérandes peuvent être des rasters ou des nombres. Pour utiliser un opérateur avec un raster, le raster doit être un objet Raster.

Le tableau suivant fournit une référence rapide qui indique la façon dont les opérateurs d’algèbre spatiale actuels ont été implémentés par rapport aux opérateurs Python.

OpérationOpérateur PythonOpérateur d’algèbre spatialeOutil de géotraitement

Arithmétique

Addition

+

+

Addition

Division

/

/

Division

Division de nombre entier

//

//

N/D

Modulo

%

%

Mod

Multiplication

*

*

Multiplier

Puissance

**

**

Puissance

Soustraction

-

-

Soustraction

Moins unaire

-

-

Opposé

Plus unaire

+

+

N/D

Booléen

Et booléen

N/D

&

Et booléen

Complément booléen

N/D

~

Non booléen

Ou exclusif booléen

N/D

^

Ou exclusif booléen

Ou booléen

N/D

|

Ou booléen

Relationnels

Egal à

==

==

Egal à

Supérieur à

>

>

Supérieur à

Supérieur et égal à

>=

>=

Supérieur ou égal à

Inférieur à

<

<

Inférieur à

Inférieur et égal à

<=

<=

Inférieur ou égal à

N’est pas égal à

!=

!=

Différent de

Bit à bit

Et bit à bit

&

N/D

Et bit à bit

Complément bit à bit

~

N/D

Non bit à bit

Ou exclusif bit à bit

^

N/D

Ou exclusif bit à bit

Décalage à gauche bit à bit

<<

<<

Décalage à gauche bit à bit

Ou bit à bit

|

N/D

Ou bit à bit

Décalage à droite bit à bit

>>

>>

Décalage à droite bit à bit

Règles relatives aux opérateurs

Les règles relatives aux opérateurs sont les suivantes :

  • Lorsque seulement des nombres sont utilisés avec les opérateurs, le résultat est un nombre.
    # outVar will be assigned 10
    outVar = 3 + 7
  • Pour que vous puissiez utiliser des opérateurs avec des rasters, le raster doit être un objet Raster.
    outRas = Raster("inraster1") + Raster("inraster2")
  • Lorsqu’un opérande de raster est utilisée, le résultat est un objet Raster.
    # In the following statement, 4 is added to each cell value in inraster1
    outRas = Raster("inraster1") + 4
    outRas2 = Raster("inraster") + math.pi

    Dans l’instruction ci-dessus, pi du module Python math est utilisé. Le module math inclut également la base du logarithme naturel, math.e, qui peut aussi être utilisée dans une instruction d’algèbre spatiale.

  • Certains opérateurs peuvent précéder un objet Raster ou un nombre.
    outRas = -Raster("inraster")
  • Les opérateurs booléens (~, &, ^, |) effectuent une opération booléenne lorsqu’au moins une entrée (opérande) est un raster. Si les deux entrées (opérandes) sont des nombres, ces opérateurs effectuent des opérations bit à bit.

Conseil :

Les espaces ne sont pas nécessaires entre les opérateurs, mais sont recommandés pour la lisibilité.

Les outils et opérateurs peuvent être imbriqués pour créer des instructions complexes.

Règles relatives aux opérateurs des rasters multidimensionnels

Les règles relatives aux opérateurs des rasters multidimensionnels sont les suivantes :

  • Lorsqu’un opérateur est utilisé avec un raster multidimensionnel et un nombre, le résultat est un objet Raster multidimensionnel comportant les mêmes variables et la même dimensionnalité que l’entrée.
    # In the following statement, 100 is added to each cell in 
    # each slice of in_multidem_raster
    out_multidem_raster = in_multidem_raster + 100
  • Lorsqu’un opérateur est utilisé avec un raster multidimensionnel et un raster non multidimensionnel, le résultat est un objet Raster multidimensionnel comportant les mêmes variables et la même dimensionnalité que l’entrée.

    Si les objets Raster en entrée ne se chevauchent pas, aucun résultat n’est renvoyé.

    # In the following statement, the cell values from in_raster are added to 
    # the cell values in each slice of in_multidem_raster.
    out_multidem_raster = in_multidem_raster + in_raster
  • Lorsqu’un opérateur est utilisé avec deux rasters multidimensionnels, le résultat est un objet Raster multidimensionnel contenant uniquement des variables et une dimensionnalité communes entre les entrées. Par exemple, si un raster multidimensionnel contient des données de température quotidienne pour 1995-2015, et si un autre raster multidimensionnel contient des données de température quotidienne pour 2001-2005, le résultat d’un opérateur utilisé avec les deux rasters multidimensionnels inclura uniquement les données de température quotidienne pour 2001-2005.

    Si les objets Raster multidimensionnels en entrée n’ont pas de variables et de dimensionnalité en commun, aucun résultat n’est renvoyé.

    # In the following statement, the cell values in each slice from in_multidem_raster1
    # are added to the cell values in each slice from in_multidem_raster2, only where variables and 
    # dimensionality overlap.
    out_multidem_raster = in_multidem_raster1 + in_multidem_raster2

Précédence des opérateurs

La valeur de priorité détermine l’ordre dans lequel les opérateurs sont exécutés. L’opérateur avec la priorité la plus haute élevée est traité en premier. Si deux opérateurs ont la même valeur de priorité, ils sont traités de gauche à droite dans l’expression.

Vous pouvez utiliser des parenthèses pour remplacer la priorité; l'opération dans les parenthèses les plus profondes est traitée en premier peu importe l'opérateur spécifié.

Le tableau suivant répertorie tous les opérateurs d’algèbre spatiale de la priorité la plus faible à la priorité la plus élevée. Les opérateurs répertoriés sur la même ligne ont la même priorité.

Rubriques connexes