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ération | Opérateur Python | Opérateur d’algèbre spatiale | Outil 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é.
Opérateur d’algèbre spatiale | Référence |
---|---|
<, <=, >, >=, ==, != | Inférieur à, Inférieur ou égal à, Supérieur à, Supérieur ou égal à, Égal à, Non égal à |
| | |
^ | |
& | |
<<, >> | |
+, - | |
*, /, //, % | Multiplication, Division, Division de nombres entiers, Modulo |
+, -, ~ | |
** |
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?