TIN の作成(Create TIN) (3D Analyst)

ライセンス レベル:BasicStandardAdvanced

サマリ

TIN(不規則三角形網)データセットを作成します。

使用法

構文

CreateTin_3d (out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
パラメータ説明データ タイプ
out_tin

出力 TIN データセット。

TIN
spatial_reference
(オプション)

出力 TIN の空間参照

Coordinate System
in_features
[[in_feature_class, height_field, SF_type, tag_value],...]
(オプション)

TIN に含めるフィーチャクラスに対する参照を追加します。フィーチャクラスごとに、サーフェスの定義にどのように使用されるかを示すプロパティを設定する必要があります。

in_feature_class:フィーチャが TIN にインポートされるフィーチャクラス

height_field:フィーチャの標高値のソースを指定するフィールドフィーチャの属性テーブルにある任意の数値フィールドが使用できます。フィーチャが Z 値をサポートする場合、Shape.Z を選択するとフィーチャ ジオメトリを読み取ることができます。必要な高さがない場合、キーワード「<なし>」を指定して、標高がサーフェスから内挿される Z 値のないフィーチャを作成します。

SF_type:サーフェス フィーチャ タイプは、フィーチャからインポートされたジオメトリがサーフェスの三角網にどのように組み込まれるかを定義します。ハードまたはソフトの指定を持つオプションは、トライアングル サーフェスがラスタに変換される場合に、フィーチャ エッジが急激な勾配変化と緩慢な勾配変化のどちらを表すかを示します。次のキーワードが利用できます。

  • masspointsノードとしてインポートされる標高ポイント
  • hardline または softline高さの値を適用するブレークライン
  • hardclip または softclipTIN の境界を定義するポリゴンのデータセット
  • harderase または softerase TIN の内部のホールを定義するポリゴンのデータセット
  • hardreplace または softreplace一定の高さの領域を定義するポリゴンのデータセット
  • hardvaluefill または softvaluefill[tag_value] 列に指定した整数フィールドに従ってトライアングルのタグ値を定義するポリゴンのデータセット

tag_value:サーフェス フィーチャ タイプを値の塗りつぶしに設定する場合に使用される、フィーチャクラスの属性テーブルからの整数フィールドタグ値の塗りつぶしは、境界が三角形分割にブレークラインとして適用されるトライアングル属性の基本形として使用されます。デフォルトでは「<なし>」に設定されます。

Value Table
constrained_delaunay
(オプション)

TIN のブレークラインで使用される三角形分割法を指定します。

  • DELAUNAYTIN はドローネ基準に適合する三角形を使用します。この場合、ブレークラインの各セグメントが高密度化されて複数の三角形エッジが生成されることがあります。これがデフォルトです。
  • CONSTRAINED_DELAUNAYTIN は制限付きドローネ三角形分割法を使用します。これを使用すると、各セグメントは単一のエッジとして追加されます。ドローネ三角形分割法の規則は、ブレークライン以外の場所に適用され、それは高密度化されません。
Boolean

コードのサンプル

CreateTIN(TIN の作成)の例 1(Python ウィンドウ)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.CreateTin_3d("NewTIN", "Coordinate Systems/Projected Coordinate Systems/State Plane/NAD 1983 (Feet)/NAD 1983 StatePlane California II FIPS 0402 (Feet).prj", "points.shp Shape.Z masspoints", "constrained_delaunay")
CreateTIN(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
import exceptions, sys, traceback

# 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:
    arcpy.CheckOutExtension("3D")
    # Execute LASToMultipoint
    arcpy.AddMessage("Creating multipoint features from LAS...")
    lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
    arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code, 
                             "ANY_RETURNS", "", sr, inFormat, zfactor)
    # Execute CreateTin
    arcpy.AddMessage("Creating TIN dataset...")
    arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
                       .format(lasMP), "Delaunay")
    # Execute CopyTin
    arcpy.AddMessage("Copying TIN to delineate data boundary...")
    arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
    # Execute DelineateTinDataArea
    arcpy.AddMessage("Delineating TIN boundary...")
    maxEdge = ptSpacing * 4
    arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
    # Execute TinDomain
    arcpy.AddMessage("Exporting data area to polygon boundary...")
    arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
    arcpy.AddMessage("Finished")
    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)

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: 次のものが必要 3D Analyst
ArcGIS for Desktop Standard: 次のものが必要 3D Analyst
ArcGIS for Desktop Advanced: 次のものが必要 3D Analyst
9/14/2013