切り盛り(Cut Fill) (Spatial Analyst)
図
使用法
-
[切り盛り(Cut Fill)] ツールを使用すると、2 つの入力サーフェス(前と後)に基づいて、サーフェス材料の削除または追加により変更された面積と体積を表すマップを作成できます。
-
両方の入力ラスタ サーフェスは一致する必要があります。すなわち、原点が共通で、セルの行数と列数が同じで、セル サイズが同じである必要があります。
-
正確な結果を得るには、Z 単位を X、Y 地表単位と同じにする必要があります。これにより、結果として得られる体積が、意味のある体積量(すなわち立方メートル)になります。もし等しくない場合には、Z 係数を使用して Z 単位を X、Y の単位に変換しなければなりません。たとえば、X と Y の単位がメートルであり、Z 単位がフィートの場合、Z 係数 0.3048 を使用して Z 単位をフィートからメートルへ変換します。
別の方法として、[Times] 算術演算ツールを使用して、Z 値が地表単位に相当するように調整されたサーフェス ラスタを作成することもできます。
-
出力ラスタの属性テーブルは、切り盛り操作後のサーフェス体積の変化を示します。体積の差が正の値である場合は、前のラスタ サーフェスの一部が切り取られた(材料が取り除かれた)ことを示します。負の値は、盛られた(材料が追加された)ことを示します。結果の計算方法の詳細については、「切り盛りの仕組み」をご参照ください。
-
このツールで切り盛り操作を実行すると、デフォルトで、切り盛りされた位置をハイライト表示する特殊なレンダラが適用されます。レンダラは、切り取られたエリアを青色で、盛られたエリアを赤色で描画します。変化していないエリアは灰色で表示されます。
構文
パラメータ | 説明 | データ タイプ |
in_before_surface |
切り盛り操作前のサーフェスを表す入力です。 | Raster Layer |
in_after_surface |
切り盛り操作後のサーフェスを表す入力です。 | Raster Layer |
z_factor (オプション) | サーフェス Z 単位あたりの地表 X、Y 単位の数。 Z 単位の測定基準が入力サーフェスの X、Y 単位と異なる場合、Z 係数を使用して Z 測定単位を調整します。最終的な出力サーフェスを計算する際、入力サーフェスの Z 値に Z 係数が乗算されます。 X、Y 単位と Z 単位の測定基準が同じ場合、Z 係数は 1(デフォルト値)になります。 X、Y 単位と Z 単位の測定基準が異なる場合は、Z 係数に適切な値を設定する必要があります。Z 係数が適切でないと、正しい結果が得られません。たとえば、Z 単位がフィートであり、X、Y 単位がメートルの場合、Z 係数 0.3048 を使用して Z 単位をフィートからメートルへ変換します(1 フィート = 0.3048 メートル)。 | Double |
戻り値
名前 | 説明 | データ タイプ |
out_raster |
切り盛りリージョンを定義する出力ラスタ。 値は、サーフェスを追加または除外する位置と量を示します。 | Raster |
コードのサンプル
この例では、切り盛り位置の体積と面積を計算し、結果を GRID ラスタとして出力します。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCutFill = CutFill("elevation01", "elevation02", 1)
outCutFill.save("C:/sapyexamples/output/outcutfill01")
この例では、切り盛り位置の体積と面積を計算し、結果を GRID ラスタとして出力します。
# Name: Cutfill_Ex_02.py
# Description: Calculates the volume and area of cut and
# fill locations.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inBeforeRaster = "elevation01"
inAfterRaster = "elevation02"
zFactor = 0.5
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CutFill
outCutFill = CutFill(inBeforeRaster, inAfterRaster, zFactor)
# Save the output
outCutFill.save("C:/sapyexamples/output/outcutfill02")