サマリ
サーフェスと参照平面の間の領域の面積および体積を計算します。
図
使用法
サーフェスの Z 値が XY 単位とは異なる計測単位で表されている場合は、正確な体積を計算するために [Z 係数] を適用します。[Z 係数] を使用しても、元のデータは変更されません。XYZ 座標系を定義した場合、このツールは自動的に適切な Z 係数を決定します。
出力テキスト ファイルには、サーフェスへの絶対パス、結果の生成に使用されたパラメーター、および計算された面積と体積の計測値が格納されます。このツールの複数回の実行で同じ出力ファイルを指定した場合、既存のレコードは維持され、新しい結果がテーブルに追加されます。
データセット 平面の高さ 参照 Z 値の倍率 2D 面積 3D 面積 体積 C:\data\tin
100.00
平面と同じ
1
15984467.82
16354331.40
1886012931.05
C:\data\raster.tif
250.5
平面より下
3.28084
0
0
0
C:\data.gdb\fd\terrain
1250
平面と同じ
0.3048
1854238.36
1970550.88
1099221466.89
サーフェスの面積と体積を計算する必要のある領域を、四角形以外の範囲で定義した場合、対象地域の境界を表すポリゴンを作成することを検討してください。その後、[ポリゴン体積 (Polygon Volume)] ツールを使用して、そのポリゴンで定義された平面と指定したサーフェス間の領域の計算を決定します。
ラスター サーフェスは、セル エリア全体の範囲ではなく、各セルの中心点の範囲を使用して評価されます。そのため、解析結果では、ラスターのデータ領域は、そのラスターについて表示されているデータ領域に対して、1/2 セルだけ減少します。
構文
SurfaceVolume_3d (in_surface, {out_text_file}, {reference_plane}, {base_z}, {z_factor}, {pyramid_level_resolution})
パラメータ | 説明 | データ タイプ |
in_surface | 処理対象のラスター、TIN、またはテレイン サーフェス。 | Raster Layer; Terrain Layer; TIN Layer |
out_text_file (オプション) | 面積と体積の計算結果が格納される、カンマ区切りの ASCII テキスト ファイル。このファイルがすでに存在する場合、ファイルの末尾に新しい結果が追加されます。 | File |
reference_plane (オプション) | 結果を計算する参照平面からの方向。
| String |
base_z (オプション) | 面積と体積の計算に使用される平面の Z 値。 | Double |
z_factor (オプション) | Z 値に乗算する係数。これは通常、Z リニア単位から XY リニア単位に変換する場合に使用されます。デフォルトは 1 です。この場合、標高値は変更されません。 | Double |
pyramid_level_resolution (オプション) | このツールが使用するテレイン ピラミッド レベルの Z 許容値またはウィンドウサイズの解像度。デフォルト値は 0 (最大解像度) です。 | Double |
コードのサンプル
SurfaceVolume (サーフェスの体積) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.SurfaceVolume_3d("sample.gdb/featuredataset/terrain", "surf_vol.txt",
"ABOVE", 300, 1, 5)
SurfaceVolume (サーフェスの体積) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Surface Volume Example
Description: This script demonstrates how to use the
Surface Volume tool.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Set Local Variables
inSurface = "elevation_tin"
#Execute SurfaceVolume
result = arcpy.SurfaceVolume_3d(inSurface, "", "ABOVE", "300", "1", "5")
print result.getMessages()
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS for Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 3D Analyst