Utilisation d'opérateurs dans Algèbre spatiale
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 objet Raster.
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 et aux opérateurs Algèbre spatial 9.x précédents.
Opération | Opérateur Python |
Opérateur Algèbre spatiale |
Opérateur Algèbre spatiale 9.x * |
Outil de géotraitement Spatial Analyst |
---|---|---|---|---|
Arithmétique | ||||
Addition | + | + | + | |
Division | / |
/ |
/, div | |
Division de nombre entier | // |
// |
N/D |
N/D |
Modulo | % | % | Mod | |
Multiplication | * |
* |
* | |
Puissance | ** |
** |
N/D | |
Soustraction | - |
- |
- | |
Moins unaire | - |
- |
- | |
Addition unaire | + |
+ |
N/D |
N/D |
Booléen | ||||
Et booléen | N/D |
& |
&, et | |
Complément booléen | N/D |
~ |
^, non | |
Ou exclusif booléen | N/D |
^ |
!, ou exclusif | |
Ou booléen | N/D |
| |
Soit : | |
Relationnels | ||||
Egal à | == | == | ==, eq | |
Supérieur à | > | > | >, gt | |
Supérieur et égal à | >= |
>= |
>=, ge | |
Inférieur à | < | < | <, lt | |
Inférieur et égal à | <= |
<= |
<=, le | |
Différent de | != |
!= |
^=, <>, ne | |
Bit à bit | ||||
Et bit à bit | & | N/D | && | |
Complément bit à bit | ~ | N/D | ^^ | |
Ou exclusif bit à bit | ^ | N/D | !! | |
Décalage à gauche bit à bit | << | << | << | |
Ou bit à bit | | | N/D | || | |
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 alors 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ématique de Python est utilisé. Le module mathématique 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'une ou plusieurs 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.
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.
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 é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é.
Opérateur Algèbre spatiale |
Référence |
---|---|
<, <=, >, >=, ==, != |
Inférieur à, Inférieur ou égal à, Supérieur à, Supérieur ou égal à, Egal à, Différent de |
| |
|
^ |
|
& |
|
<<, >> |
|
+, - |
|
*, /, //, % |
|
+, -, ~ |
|
** |