TIN ドメイン (TIN Domain) (3D Analyst)

概要

TIN データセットの内挿ゾーンを表すラインまたはポリゴン フィーチャクラスを作成します。

[TIN ドメイン (TIN Domain)] の図
TIN ドメイン (TIN Domain)

使用法

  • このツールを使用すると、ポイントの集合に対する凸包 (最小の境界ポリゴン) を生成できます。TIN の定義にクリップ ポリゴンまたはイレース ポリゴンが使用されていない場合、ドメインは凸包と等価になります。

  • 出力ジオメトリは 1 つのフィーチャ レコード内に配置され、内挿ゾーンの性質によって、シングルまたはマルチパート ジオメトリのいずれかになります。たとえば、内挿ゾーンが島で構成されていたり、ホールが含まれている場合、結果のジオメトリはマルチパートになります。

    メモ:

    3D ポリゴンは、フィーチャの輪郭に沿った標高値のみを含みます。ポリゴンの内部には頂点が存在しません。3D を塗りつぶしで描画する場合、境界の頂点はレンダリング用の三角形に任意で接続されます。ポリゴンが平面 (傾斜または水平) でない場合、内側サーフェスの塗りつぶしは正しく描画されないことがほとんどです。このため、非平面ポリゴンは塗りつぶしシンボルを使用せずに描画することを推奨します。

構文

arcpy.3d.TinDomain(in_tin, out_feature_class, out_geometry_type)
パラメーター説明データ タイプ
in_tin

処理対象の TIN データセット。

TIN Layer
out_feature_class

このツールで生成されるフィーチャクラス。

Feature Class
out_geometry_type

出力フィーチャクラスのジオメトリ。

  • LINE出力は Z 対応のライン フィーチャクラスとして作成されます。
  • POLYGON出力は Z 対応のポリゴン フィーチャクラスとして作成されます。
String

コードのサンプル

TINDomain (TIN ドメイン) の例 1 (Python ウィンドウ)

次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。

arcpy.env.workspace = 'C:/data'
arcpy.TinDomain_3d('tin', 'tin_domain.shp', out_geometry_type='POLYGON')
TINDomain (TIN ドメイン) の例 2 (スタンドアロン スクリプト)

次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。

'''****************************************************************************
Name: Define Data Boundary of LAS File
Description: This script demonstrates how to delineate data boundaries of 
             LAS files with irregularly clustered points. It is intended for 
             use as a script tool with one input LAS file.
****************************************************************************'''
# Import system modules
import arcpy

# Set local variables
inLas = arcpy.GetParameterAsText(0)  # input LAS file
ptSpacing = arcpy.GetParameterAsText(1)  # LAS point spacing
classCode = arcpy.GetParameterAsText(2)  # List of integers
returnValue = arcpy.GetParameterAsText(3)  # List of strings
outTin = arcpy.GetParameterAsText(4)  # TIN created to delineate data area
outBoundary = arcpy.GetParameterAsText(5)  # Polygon boundary file

try:
    # Execute LASToMultipoint
    lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
    arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code, 
                             "ANY_RETURNS", "", sr, inFormat, zfactor)
    # Execute CreateTin
    arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
                       .format(lasMP), "Delaunay")
    # Execute CopyTin
    arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
    # Execute DelineateTinDataArea
    maxEdge = ptSpacing * 4
    arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
    # Execute TinDomain
    arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
        
except arcpy.ExecuteError:
    print(arcpy.GetMessages())
except Exception as err:
    print(err)

ライセンス情報

  • Basic: 次のものが必要 3D Analyst
  • Standard: 次のものが必要 3D Analyst
  • Advanced: 次のものが必要 3D Analyst

関連トピック