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

サマリー

TIN (Triangulated Irregular Networks) データセットを作成します。

TIN の作成の図

使用法

  • x,y 単位が球面座標系で表されている場合、ドローネ三角形分割法のルールを有効に適用できないため、地理座標系を使用して TIN を作成するのは避けてください。

  • サーフェス フィーチャ タイプは、入力フィーチャがトライアングル サーフェスの定義にどのように寄与するかを定義します。

    • ポイント フィーチャを標高点として指定すると、サーフェスの三角形分割に使用される Z 値を持つデータ ノードを提供できます。
    • ライン フィーチャを標高点およびブレークラインとして指定すると、稜線、海岸線、舗装端などの、傾斜に不連続線を含むサーフェスに沿った位置を表現することができます。
    • ポリゴン フィーチャを、データ エリアを定義するクリップ フィーチャとともに、標高点およびブレークラインとして指定すると、一定の Z 値を持つ領域 (水域など) を定義するフィーチャに置き換えたり、データが存在しない内部エリアを示すフィーチャを消去することができます。
  • このツールでは、十分なメモリがあれば、数百万個ものポイントで構成される TIN を作成できます。 ただし、素早い表示パフォーマンスと全体的な操作性を維持するには、TIN ノード総数を 600 万個以下に制限してください。 大きい TIN サーフェスが必要な場合は、テレイン データセットの使用を検討してください。 テレイン データセットは、ソース計測値の非常に大きなコレクションに対応できるマルチ解像度の TIN サーフェスを提供します。

  • 作成された TIN をバージョン 10.0 よりも前の ArcGIS Desktop で使用する場合は、デフォルトの TIN 格納バージョン環境を PRE_10.0 に設定します。

  • TIN データセットが作成されると、[TIN の編集] ツールを使用してそれを修正し、TIN サーフェスにフィーチャベースの計測を追加で組み込むことができます。 また、[TIN データ エリアの定義] ツールを使用して、三角形のエッジの最大長に基づいて内挿ゾーンを構成する TIN 三角形を定義できます。 TIN サーフェスは、対話的編集によって修正することもできます。

パラメーター

ラベル説明データ タイプ
出力 TIN

生成される TIN データセット。

TIN
座標系
(オプション)

出力 TIN の空間参照。 空間参照を投影座標系に設定します。 地理座標系はお勧めしません。x,y 座標が角度単位で表現される場合に、ドローネ三角形分割は保証できないため、傾斜角、体積、見通し線などの距離ベースの計算の精度に悪影響を及ぼす可能性があるためです。

Coordinate System
入力フィーチャクラス
(オプション)

TIN への追加方法を定義する入力フィーチャおよびそれらに関連するプロパティ。

  • [入力フィーチャ] - TIN に追加されるフィーチャ。
  • [高さフィールド] - 入力フィーチャの標高ソース。 フィーチャの属性テーブルにある任意の数値フィールドが使用できます。3D フィーチャの Z 値には Shape.Z、ジオメトリに格納されている M 値には Shape.M が使用できます。 <None> キーワードを選択すると、フィーチャの標高が周囲のサーフェスから内挿されます。
  • [タイプ] - TIN サーフェスの定義での入力フィーチャの役割。 使用可能なオプションは、入力フィーチャのジオメトリによって変わります。 ラインベースのサーフェス フィーチャ タイプとポリゴンベースのサーフェス フィーチャ タイプの場合、サーフェス フィーチャ タイプにハードおよびソフトを指定すると、Natural Neighbor 内挿法を使用する場合に TIN データセットからラスター サーフェスを内挿する際のライン境界またはポリゴン境界の処理方法に影響します。 ハード サーフェス フィーチャ タイプは、標高に鮮明な途切れがある境界 (崖の端、壁、道路の脇のアプローチなど) を表します。 ソフト サーフェス フィーチャ タイプは、より滑らかな標高が定義されている境界を表します。
    • ポイント フィーチャとマルチポイント フィーチャを Mass_Points として定義できます。これにより、標高値が TIN データ ノードとして格納されるようになります。
    • ライン フィーチャは、次のように TIN に組み込むことができます。
      • ラインの頂点が TIN のノードに変換されている [標高点]
      • TIN における線形的な途切れを定義する [ライン (ハード)] または [ライン (ソフト)] ブレークライン フィーチャ。
    • ポリゴン フィーチャは、標高点、ブレーク ライン、および次のサーフェス フィーチャ タイプとして TIN に組み込むことができます。
      • TIN サーフェスのデータ エリアを定義する [クリップ (ハード)] または [クリップ (ソフト)] フィーチャ。
      • データ内の内部空隙を定義する [除外 (ハード)] または [除外 (ソフト)] フィーチャ。
      • 高さが一定であるエリアを定義する [置換 (ハード)] または [置換 (ソフト)] フィーチャ。
      • 整数の属性をノードおよび三角形フェイスに割り当てる [値の穴埋め (ハード)] または [値の穴埋め (ソフト)] フィーチャ。
  • [タグ フィールド] - 入力フィーチャの属性テーブル内の整数フィールドから取得した値を使用して、数値属性を TIN のデータ エレメントに割り当てます。
Value Table
制限付きドローネ
(オプション)

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

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

arcpy.ddd.CreateTin(out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
名前説明データ タイプ
out_tin

生成される TIN データセット。

TIN
spatial_reference
(オプション)

出力 TIN の空間参照。 空間参照を投影座標系に設定します。 地理座標系はお勧めしません。x,y 座標が角度単位で表現される場合に、ドローネ三角形分割は保証できないため、傾斜角、体積、見通し線などの距離ベースの計算の精度に悪影響を及ぼす可能性があるためです。

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

TIN への追加方法を定義する入力フィーチャおよびそれらに関連するプロパティ。

  • in_features - TIN に追加されるフィーチャ。
  • height_field - 入力フィーチャの標高ソース。 フィーチャの属性テーブルにある任意の数値フィールドが指定できます。3D フィーチャの Z 値には Shape.Z、ジオメトリに格納されている M 値には Shape.M が指定できます。 <None> キーワードを選択すると、フィーチャの標高が周囲のサーフェスから内挿されます。
  • sf_type - TIN サーフェスの定義での入力フィーチャの役割。 使用可能なオプションは、入力フィーチャのジオメトリによって変わります。 ラインベースのサーフェス フィーチャ タイプとポリゴンベースのサーフェス フィーチャ タイプの場合、サーフェス フィーチャ タイプにハードおよびソフトを指定すると、Natural Neighbor 内挿法を使用する場合に TIN データセットからラスター サーフェスを内挿する際のライン境界またはポリゴン境界の処理方法に影響します。 ハード サーフェス フィーチャ タイプは、標高に鮮明な途切れがある境界 (崖の端、壁、道路の脇のアプローチなど) を表します。 ソフト サーフェス フィーチャ タイプは、より滑らかな標高が定義されている境界を表します。
    • ポイント フィーチャとマルチポイント フィーチャを Mass_Points として定義できます。これにより、標高値が TIN データ ノードとして格納されるようになります。
    • ライン フィーチャは、次のように TIN に組み込むことができます。
      • ラインの頂点が TIN のノードに変換されている Mass_Points
      • TIN における線形的な途切れを定義する Hard_Line または Soft_Line ブレークライン フィーチャ。
    • ポリゴン フィーチャは、標高点、ブレーク ライン、および次のサーフェス フィーチャ タイプとして TIN に組み込むことができます。
      • TIN サーフェスのデータ エリアを定義する Hard_Clip または Soft_Clip フィーチャ。
      • データ内の内部空隙を定義する Hard_Erase または Soft_Erase フィーチャ。
      • 高さが一定であるエリアを定義する Hard_Replace または Soft_Replace フィーチャ。
      • 整数の属性をノードおよび三角形フェイスに割り当てる Hardvalue_Fill または Softvalue_Fill フィーチャ。
  • tag_field - 数値属性が、入力フィーチャの属性テーブル内の整数フィールドから生成されます。この属性の値を使用して、属性の基本形式を TIN のデータ エレメントに割り当てることができます。 <None> を指定すると、タグ値が割り当てられません。
Value Table
constrained_delaunay
(オプション)

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

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

コードのサンプル

CreateTin の例 1 (Python ウィンドウ)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.CreateTin("NewTIN", "NAD 1983 StatePlane California II FIPS 0402 (Feet).prj", 
                   "points.shp Shape.Z masspoints", "constrained_delaunay")
CreateTIN の例 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

関連トピック