概要
サーフェスから得られる空間情報をフィーチャの属性に追加します。
使用法
3D フィーチャからの Z 値は無視されます。各フィーチャは、そのジオメトリと交差するサーフェスの Z プロパティを集計します。ポイントはサーフェス上の XY 位置から Z 値を取得し、ラインはそのライン上のサーフェスの計測値を内挿することで Z プロパティを取得し、ポリゴンはそのエリア内のサーフェスの Z プロパティを集計します。
[出力プロパティ] オプションが入力フィーチャの属性テーブルに書き込まれます。それぞれのフィーチャは評価対象のサーフェス プロパティの場所を定義し、報告可能なプロパティのタイプはフィーチャ ジオメトリによって異なります。
フィーチャ ジオメトリ サーフェス プロパティ ポイント
サーフェス上のポイントの XY 座標から内挿された SPOT 標高。
マルチポイント
マルチポイント レコードのすべてのポイントにおける SPOT 標高の最小値、最大値、および平均値。
ポリライン
サーフェスに沿ったラインの 3D 距離。
サーフェスに沿ったラインの標高と傾斜角の最小値、最大値、および平均値。
ポリゴン
ポリゴンと重なり合うサーフェスの 3D 面積。
サーフェスからの標高と傾斜角の最小値、最大値、および平均値。
傾斜角値はパーセンテージ単位 (グレード) で計測され、ライン フィーチャの場合はラインのセグメントごとに計算されます。
- 最小傾斜角は、値が 0 (水平グレード) に最も近いセグメントから取得されます。
- 最大傾斜角は、最大計算値を持つセグメントから取得されます。
- 平均傾斜角は、各傾斜角を 3D 長さによって重み付けしてから平均を特定することによって取得されます。そのため、セグメントが長いほど、取得される値に大きな影響があります。
特異な計測値を持つ一部のサーフェスを傾斜角の計算から除外するには、[ノイズ フィルター] の適用を検討してください。ライン フィーチャはサーフェスの断面図を捉えた頂点によって分割され、これらのセグメントを長さでフィルタリングすることで、望ましくないサーフェスの計測値によって発生する可能性の高い短いセグメントによる影響を排除します。同様に、ポリゴン フィーチャの面積フィルターによって、三角形分割したサーフェス内の細長い三角形を傾斜角の計算から除外します。ラスター サーフェスの場合、面積フィルターを適用した、三角形分割したサーフェスの構築にセルの重心のサブセットが使用されます。
構文
arcpy.ddd.AddSurfaceInformation(in_feature_class, in_surface, out_property, {method}, {sample_distance}, {z_factor}, {pyramid_level_resolution}, {noise_filtering})
パラメーター | 説明 | データ タイプ |
in_feature_class | 1 つ以上のサーフェス プロパティを決定するために場所を定義するポイント、マルチポイント、ポリライン、またはポリゴン フィーチャ。 | Feature Layer |
in_surface | Z 値の内挿に使用する LAS データセット、モザイク、ラスター、テレイン、または TIN サーフェス。 | LAS Dataset Layer; Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer |
out_property [out_property,...] | 入力フィーチャクラスの属性テーブルに追加されるサーフェスの標高プロパティです。次のリストでは、利用可能なプロパティのキーワードおよびサポートされるジオメトリ タイプを示しています。
| String |
method (オプション) | サーフェスに関する情報の決定に使用される内挿法。利用できるオプションは、入力サーフェスのデータ タイプによって異なります。
| String |
sample_distance (オプション) | Z 値を内挿する間隔。デフォルトでは、入力サーフェスがラスターの場合、ラスター セル サイズが使用され、入力がテレインまたは TIN データセットの場合、トライアングル サーフェスの自然最小ノード間隔が使用されます。 | Double |
z_factor (オプション) | Z 値に乗算する係数。これは通常、Z リニア単位から XY リニア単位に変換する場合に使用されます。デフォルトは 1 です。この場合、標高値は変更されません。入力サーフェスの空間参照に距離単位の指定された Z 測地基準系がある場合、このパラメーターは無効になります。 | Double |
pyramid_level_resolution (オプション) | このツールが使用するテレイン ピラミッド レベルの Z 許容値またはウィンドウサイズの解像度。デフォルト値は 0 (最大解像度) です。 | Double |
noise_filtering (オプション) | 特異な計測値を持つ一部のサーフェスを傾斜角の計算から除外します。ポリゴンは面積によるフィルターを提供し、ライン フィーチャは長さによるフィルターを提供します。いずれかのフィルタリング オプションに該当する値は、フィーチャの座標系のリニア単位で評価されます。傾斜角以外のプロパティは、このパラメーターの影響を受けません。
| String |
派生した出力
名前 | 説明 | データ タイプ |
output_feature_class | 更新された入力フィーチャ。 | フィーチャ レイヤー |
コードのサンプル
AddSurfaceInformation (サーフェス情報の追加) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.AddSurfaceInformation_3d("points.shp", "my_tin", "Z", "LINEAR")
AddSurfaceInformation (サーフェス情報の追加) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''*********************************************************************
Name: AddSurfaceInformation Example
Description: This script demonstrates how to use AddSurfaceInformation
on all 2D feature classes in a target workspace.
*********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set Local Variables
env.workspace = 'c:/data'
inSurface = 'fgdb.gdb/municipal/terrain'
pyramid = 5
method = "BILINEAR"
# Create list of feature classes
fcList = arcpy.ListFeatureClasses()
if fcList:
for fc in fcList:
desc = arcpy.Describe(fc)
# Determine if the feature is 2D
if not desc.hasZ:
if desc.shapeType == "Polygon":
# Desired properties separated by semi-colons
Prop = "Z_MIN;Z_MAX"
elif desc.shapeType == "Point":
Prop = "Z"
elif desc.shapeType == "Multipoint":
Prop = "Z_MIN;Z_MAX;Z_MEAN"
elif desc.shapeType == "Polyline":
Prop = "LENGTH_3D"
# Execute AddSurfaceInformation
arcpy.ddd.AddSurfaceInformation(fc, inSurface, Prop,
method, 15, 1, pyramid)
print "Completed adding surface information."
arcpy.CheckInExtension('3D')
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)
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst