Raster オブジェクトの操作
Spatial Analyst ライセンスで利用可能。
Raster オブジェクトは、マップ代数演算式の入力として使用されるとともに、マップ代数演算式の一次出力でもあります。 演算子を使用するマップ代数演算式を実行する場合、入力は Raster オブジェクトまたは定数のいずれかである必要があります。 マップ代数演算式のラスター出力は常に一時的ですが、save オブジェクトの Raster メソッドを呼び出すことで保存できます。 Raster オブジェクトにクエリーを実行し、参照されるデータセット プロパティにすばやくアクセスできます。
Raster オブジェクトの作成
Raster オブジェクトは、ラスター データセットをキャストするか、ArcGIS Spatial Analyst エクステンションのツールから出力されることで作成されます。 ラスターを作成すると、ラスター データセットの多くのプロパティをクエリーできます。
Rasterオブジェクトを作成するには、次の例のように、レイヤー名またはパスとデータセット名を指定します:rasObject = Raster("C:/Data/elevation")上のステートメントでは、elevation ラスター データセットのプロパティが結果の
Rasterオブジェクト (rasObject) で使用できるようになっています。Rasterオブジェクトは、Spatial Analyst ツールの左側出力として作成されます。# rasObject is a Raster object pointing to a temporary # raster dataset rasObject = Slope("C:/Data/elevation")注意:
Spatial Analyst および Image Analyst ツールボックス外のツールは、
Rasterオブジェクトを出力しません。
ラスターの save メソッド
Raster オブジェクトに関連付けられているラスターは、save メソッドを使用することで保存できます。
Spatial Analyst ツールは一時的な出力を作成します。 これらの出力は、Raster オブジェクトの save メソッドを使用して保存できます。 次の例では、傾斜角 ツールの一時出力を、指定した出力フォルダーに保存しています。
outraster = Slope("C:/Data/elevation")
outraster.save("C:/output/sloperaster")
データを保存する場所は、
saveメソッドでの入力内容と、ワークスペース環境の設定内容によって変わります。データセット名とともに絶対パスを指定した場合、この場所は永続データが保存される場所になります。
データセット名のみを指定した場合、保存したデータの場所はジオプロセシング ワークスペース環境によって決定されます。
テンポラリ ワークスペースまたは現在のワークスペースが設定されている場合、保存されるデータは、設定されているワークスペースの場所に保存されます。
現在のワークスペースとテンポラリ ワークスペースの両方が設定されている場合、保存されるデータは、現在のワークスペースに保存されます。
ワークスペースが設定されていない場合、エラーが返されます。
データをデフォルト名で現在の場所に永続的に保存するには、次の例のように、名前を指定しないで
saveメソッドを呼び出します:outraster.save()saveメソッドは、Spatial Analyst がサポートするすべての出力ラスター データ形式をサポートしています。 次の例では、ラスターのsaveメソッドを使用して、データをファイル ジオデータベースのラスターと TIFF 形式のラスターに保存しています。outraster.save("C:/output/file_gdb.gdb/sloperaster") outraster.save("C:/output/sloperaster.tif")
ラスター プロパティの使用
ラスターを Raster オブジェクトとしてキャストすると、データセットのプロパティに簡単にクエリーを実行できます。 すべての Raster オブジェクトのプロパティは読み取り専用です。 Raster のプロパティをクエリーすると、文字列、数値、またはオブジェクトが返されます。 ラスターのプロパティは、次に示すように、ツール パラメーターへの入力や環境設定の指定など、さまざまな用途に使用できます。
from arcpy import env
from arcpy.sa import *
outraster = Raster("C:/Data/studyarea")
myextent = outraster.extent
# Modify myextent as necessary for your workflow and use it to set the extent environment
env.extent = myextent
注意:
Raster オブジェクトから使用できるラスターのプロパティは、Describe 関数 (ラスター データセット プロパティ) や、ラスター プロパティの取得 ツールからもアクセスできるプロパティの組み合わせです。