Utilisation d'opérateurs dans Algèbre spatiale

Disponible avec une licence Spatial Analyst.

Disponible avec une licence Image Analyst.

Dans 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). Dans 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 Raster object.

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

OpérationOpérateur PythonOpérateur Algèbre spatialeOutil de géotraitement

Arithmétique

Addition

+

+

Addition

Division

/

/

Division

Division de nombre entier

//

//

N/D

Modulo

%

%

Mod

Multiplication

*

*

Multiplication

Puissance

**

**

Puissance

Soustraction

-

-

Soustraction

Moins unaire

-

-

Opposé

Addition 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 à

==

==

Égal à

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

  • 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 utiliser des opérateurs avec des rasters, le raster doit être un objet Raster.
    outRas = Raster("inraster1") + Raster("inraster2")
  • Lorsqu’une 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, l’opérateur pi du module math de Python est utilisé. Le module math inclut également la base du logarithme naturel, math.e, qui peut également être utilisé dans une instruction 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

  • Lorsqu’un opérateur est utilisé avec un raster multidimensionnel et un numéro, le résultat est un objet Raster multidimensionnel avec 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 avec 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é communes, 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 Algèbre spatiale en ordre de priorité croissante. Les opérateurs répertoriés sur la même ligne ont la même priorité.

Rubriques connexes