ArcGIS での Raster オブジェクトの相互作用

Raster オブジェクトはラスタ データセットを参照しArcMap で使用されている場合は、コンテンツ ウィンドウでラスタ レイヤと関連付けられていることもあります。ほとんどの場合、ラスタ データセット、Raster オブジェクト、およびラスタ レイヤ間の関係は維持されます。ただし、Spatial Analyst マップ代数演算を生産的に使用するには、これらの関係を理解しておく必要があります。

Raster オブジェクトは次の 2 つの方法で作成されます。

状況によっては、Raster オブジェクトがラスタ レイヤに関連付けられる場合があります。Python ウィンドウで [ジオプロセシング処理結果をマップに追加] ジオプロセシング オプションをオンにすると、マップ代数演算式の結果がコンテンツ ウィンドウに追加され、Raster オブジェクトと同じ名前が付けられます。データセットをラスタとして割り当てた場合は、コンテンツ ウィンドウにレイヤが追加されません。

テンポラリ ラスタの保存

Raster オブジェクトに関連付けられているデータがテンポラリの場合、ArcGIS セッションの終了時(そのオブジェクトが範囲外になったとき、またはスクリプトが完了したとき)に削除されます。ただし、データが保存されている場合は例外です。ラスタを保存する際、レイヤとオブジェクトには、更新後のラスタ プロパティ(namepathcatalogPath、データセットの isTemporary ステータスなど)が反映されます。テンポラリ データセットを保存するにはいくつかの方法があります。

Raster オブジェクトの再使用

オブジェクト名は一意でなければなりません。オブジェクト名を再使用すると、元のオブジェクトが上書きされます。次の例では、最初に、Slope の結果が outRas に出力されます。その後、Aspect 式の出力先として outRas が再使用されているので、この時点で出力内容が上書きされます。

outRas = Slope("inRas1") 
outRas = Aspect("inRas2")

レイヤは、Raster オブジェクトと同じ名前でコンテンツ ウィンドウに追加されます。Raster オブジェクト名を再使用すると、同じ名前を持つ複数のレイヤがコンテンツ ウィンドウに追加されます。前述の例では、outRas がコンテンツ ウィンドウに 2 回追加されます。最初は、Slope 式を実行したときです。この最初の outRas レイヤは Slope の結果を参照し、Aspect 式が実行されるまで Python ウィンドウで使用できます。Aspect を実行すると、2 番目の outRas レイヤがコンテンツ ウィンドウに追加されます。この時点でオブジェクトが上書きされ、Aspect によって生成されたデータセットとレイヤを参照するようになります。

ヒントヒント:

データセットを参照する Raster オブジェクトが上書きされた場合、レイヤまたはデータセット名を使用して、そのラスタ データセットを Raster オブジェクトとして再キャストできます。

Raster オブジェクトの削除

Raster オブジェクトを削除した場合、関連付けられているデータセットにどのような影響を与えるかはデータの状態によって異なります。データがすでに保存されている場合、Raster オブジェクトを削除しても、関連付けられているデータセットやレイヤは何も影響を受けません。データセットがテンポラリの場合、Raster オブジェクトを削除したときの影響は、そのラスタ データセットを参照するレイヤが存在するかどうかによって異なります。テンポラリ データセットに関連付けられているレイヤが存在しない場合、オブジェクトを削除すると、そのデータセットも削除されます。テンポラリ データセットに関連付けられているレイヤが存在する場合、オブジェクトを削除しても、テンポラリ データは維持されます。

注意注意:
Raster オブジェクトを削除しても、レイヤが参照しているテンポラリ データは削除されません。ただし、データを保存しない限り、レイヤやオブジェクトが存在するかどうかにかかわらず、ArcGIS を終了した時点ですべてのテンポラリ データが削除されます。

次の例では、outRas という名前の Raster オブジェクトが削除されます。

outRas = Slope("C:/Data/elevation") 
del outRas

新しい Raster オブジェクトへの Raster オブジェクトの割り当て

Raster オブジェクトを新しい Raster へ割り当てた場合、関連するデータセットやレイヤはコピーされません。Raster オブジェクトを新しい Raster オブジェクトへ割り当てると、元のオブジェクトを参照するもう 1 つのオブジェクトが作成されます。次の例では、outRas1outRas2 の両方が同じラスタ データセットを参照します。

outRas1 = Slope("elevation")  

# Assigns Raster object to a new Raster object and save the raster dataset
outRas2 = outRas1
outRas2.save("C:/output/outslope")

この例では、outRas1outRas2 の両方が同じデータセットを参照します。したがって、outRas2 を保存すると、保存したデータセット outslope の永続状態、新しい場所、および新しい名前が両方のオブジェクトに反映されます。コンテンツ ウィンドウのレイヤとして outRas1 が追加されており、レイヤ プロパティを使用するか、またはマップ ドキュメントを保存することによってこのデータを永続化した場合、outRas1 オブジェクトと outRas2 オブジェクトは両方とも保存済みのデータセットを参照します。

関連トピック

5/10/2014