概要
三角形のエッジの長さに基づいて TIN のデータ エリア (または内挿ゾーン) を再定義します。
図
使用法
このツールは、ソース データを一切除外しません。内挿ゾーンにエッジが含まれるかどうかを再分類して、入力 TIN を変更します。処理対象の TIN の変更されていないバージョンを保持したい場合は、このツールを実行する前に [Copy TIN (TIN のコピー)] を使用して、データセットの複製を作成してください。
エッジ長分類を開始する前は、すべての三角形エッジが評価されます。これによって、既存のデータ エリア分類が取り消されます。1 回の実行から取得された結果が不十分な場合、元のデータを取得しなくても、結果として得られた TIN を再実行できます。
このツールを使用して、TIN のソース測定値の凹面特性によって作成された極端なエッジ長を TIN の有効データ エリアから削除できます。エッジが [最大エッジの長さ] を超える三角形は、NoData エリアとしてマスクされます。
メモ:
[最大エッジの長さ] の値は、有効なデータ ゾーンと考えられるエリア内にある TIN ノードの平均間隔から決定するのが最善です。平均間隔より大きな値を指定します。このツールを適切に使用するには、TIN の作成時に使用するデータについての知識が必要になります。
[方法] はどの三角形を評価するかを指定します。
メモ:
凹面データ部分が TIN の外部端点に割り当てられている場合、[周長エッジ] (Python では method = "PERIMETER_ONLY") を使用します。
構文
arcpy.3d.DelineateTinDataArea(in_tin, max_edge_length, {method})
パラメーター | 説明 | データ タイプ |
in_tin | 処理対象の TIN データセット。 | TIN Layer |
max_edge_length | TIN のデータ エリア内の TIN 三角形のエッジの最大長を定義する 2 次元距離。1 つ以上のエッジがこの値を超える三角形は、TIN の内挿ゾーン外と見なされ、マップでのレンダリングにもサーフェス解析にも使用されません。 | Double |
method (オプション) | TIN のデータ エリアを定義する際に評価される TIN エッジ。
| String |
派生した出力
名前 | 説明 | データ タイプ |
derived_out_tin | 更新された TIN。 | TIN レイヤー |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
arcpy.env.workspace = "C:/data"
arcpy.DelineateTinDataArea_3d("elevation", 10, "PERIMETER_ONLY")
次のサンプルは、スタンドアロン 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