マップ代数演算の演算子の操作
マップ代数演算では、入力されたラスタおよび数値に対する数学演算が演算子によって適用されます。
演算子は、一般に 2 つの入力(オペランド)の間に置かれ、数学演算(outVar = 3 + 7 など)を実行します。マップ代数演算では、オペランドはラスタまたは数値になります。演算子をラスタで使うには、ラスタはラスタ オブジェクトでなければなりません。
次の表では、現在のマップ代数演算の演算子が、Python の演算子および旧バージョンである 9.x マップ代数演算の演算子に関してどのように実装されているかを即座に確認することができます。
操作 | Python 演算子 |
マップ代数演算の演算子 |
9.x マップ代数演算の演算子 * |
Spatial Analyst のジオプロセシング ツール |
---|---|---|---|---|
算術演算 | ||||
加算 | + | + | + | |
除算 | / |
/ |
/、div | |
整数除算 | // |
// |
なし |
なし |
モジュロ | % | % | Mod | |
乗算 | * |
* |
* | |
累乗 | ** |
** |
なし | |
減算 | - |
- |
- | |
単項減算 | - |
- |
- | |
単項加算 | + |
+ |
なし |
なし |
ブール演算 | ||||
ブール型論理積 | なし |
& |
&、and | |
ブール型論理否定(補数) | なし |
~ |
^、not | |
ブール型排他的論理和 | なし |
^ |
!、xor | |
Boolean Or | なし |
| |
|、or | |
関係演算 | ||||
イコール | == | == | ==、eq | |
より大きい | > | > | >、gt | |
以上 | >= |
>= |
>=、ge | |
より小さい | < | < | <、lt | |
以下 | <= |
<= |
<=、le | |
不等号 | != |
!= |
^=、<>、ne | |
ビット演算 | ||||
ビット単位の論理積 | & | なし | && | |
ビット単位の論理否定(補数) | ~ | なし | ^^ | |
ビット単位の排他的論理和 | ^ | なし | !! | |
ビット単位の左シフト | << | << | << | |
ビットの論理和 | | | なし | || | |
ビット単位の右シフト | >> | >> | >> |
演算子のルール
- 演算子で数値のみが使用された場合、結果は数値になります。
# outVar will be assigned 10 outVar = 3 + 7
- 演算子をラスタで使用する場合、ラスタはラスタ オブジェクトでなければなりません。
outRas = Raster("inraster1") + Raster("inraster2")
- ラスタ オペランドが使用された場合、結果はラスタ オブジェクトになります。
# In the following statement, 4 is added to each cell value in inraster1 outRas = Raster("inraster1") + 4 outRas2 = Raster("inraster") + math.pi
上のステートメントでは、Python math モジュールの pi が使われています。math モジュールには自然対数の底も含まれており(math.e)、これもマップ代数演算のステートメントで使用できます。
- ラスタ オブジェクトや数値の前に付く演算子もあります。
outRas = -Raster("inraster")
- ブール型演算子(~、&、^、|)は、1 つ以上の入力(オペランド)がラスタの場合にブール型演算を実行します。どちらの入力(オペランド)も数値の場合は、演算子によってビット単位の演算が実行されます。
演算子間のスペースは不要ですが、読みやすくするために入れることをお勧めします。
ツールと演算子をネストして、複雑なステートメントを作成することができます。
演算子の優先順位
優先順位の値によって、実行される演算子の順序が決まります。優先順位の高い演算子が先に処理されます。2 つの演算子の優先順位が同じ値である場合は、式の中で左から右の順に処理されます。
括弧を使って優先順位の順序を無効にすることができます。指定された演算子にかかわらず、最も深い括弧内にある演算子が先に処理されます。
次の表は、マップ代数演算のすべての演算子を優先順位の低いものから高いものの順に示しています。同じ行に示されている演算子の優先順位は同じです。
マップ代数演算の演算子 |
参照 |
---|---|
<, <=, >, >=, ==, != |
Less Than、Less Than Equal、Greater Than、Greater Than Equal、Equal To、Not Equal |
| |
|
^ |
|
& |
|
<<, >> |
|
+, - |
|
*, /, //, % |
|
+, -, ~ |
|
** |