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

サマリ

TIN データセットを作成します。

使用法

構文

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

The output TIN dataset.

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
(オプション)

Specifies the triangulation technique used along the breaklines of the TIN.

  • DELAUNAYThe TIN will use Delaunay conforming triangulation, which may densify each segment of the breaklines to produce multiple triangle edges. This is the default.
  • CONSTRAINED_DELAUNAYThe TIN will use constrained Delaunay triangulation, which will add each segment as a single edge. Delaunay triangulation rules are honored everywhere except along breaklines, which will not get densified.
Boolean

コードのサンプル

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

The following sample demonstrates the use of this tool in the Python window:

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(スタンドアロン スクリプト)

The following sample demonstrates the use of this tool in a stand-alone Python script:

'''****************************************************************************
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)

環境

関連項目

ライセンス情報

ArcView: 必須 3D Analyst
ArcEditor: 必須 3D Analyst
ArcInfo: 必須 3D Analyst

7/10/2012