ポリゴンを内挿してマルチパッチを作成(Interpolate Polygon to Multipatch) (3D Analyst)
サマリ
ラスタ、テレイン、または TIN サーフェスを使用して、ポリゴン フィーチャクラスからサーフェスに応じたマルチパッチ フィーチャを作成します。
各ポリゴン フィーチャには、サーフェスに沿って描かれた境界があります。各入力頂点、および境界線がサーフェスの三角形エッジやノードと交差する箇所でサンプリングすることにより、リニア内挿を使用して高さが取得されます。この自然緻密化により、最小限のサンプル数でリニア サーフェスの完全な定義が得られます。次に、ポリゴン内に含まれるすべてのノードが抽出されます。これらのノードは、新しいメモリベースの TIN で再び三角形網を形成し、3D ポリゴン境界がクリップ ポリゴンとなります。次に、この新しい TIN の三角形が一連のストリップとして抽出され、マルチパッチベースのフィーチャを定義するときに使用されます。
使用法
作成されるマルチパッチは、ジオメトリ内の 3D サーフェスを表現したものです。出力には、入力ポリゴンのその他の属性と一緒に面積と表面積の計算が含まれます。
-
サーフェス上にドレープされるポリゴンの 3 次元レンダリングに表示の問題が生じた場合には、ポリゴンをマルチパッチに変換します。
-
[帯の最大サイズ] の値は 3 以上にする必要があります。このパラメータは、マルチパッチの生成で使用する三角形ストリップの最大頂点数を指定します。ArcGIS には特定のサイズ制限または設定はありませんが、一部の 3D グラフィック カードではレンダリングされる三角形ストリップが直接 3D グラフィックス API(アプリケーション プログラム インタフェース)に読み込まれるため、この設定が必要になります。推奨される値の範囲は、128 ~ 2048 です。
構文
パラメータ | 説明 | データ タイプ |
in_surface |
入力の不規則三角形網(TIN)またはテレイン データセット サーフェス。 | Terrain Layer; TIN Layer |
in_feature_class |
入力ポリゴン フィーチャクラス。 | Feature Layer |
out_feature_class |
出力マルチパッチ フィーチャクラス。 | Feature Class |
max_strip_size (オプション) |
個々のトライアングル ストリップの作成に使用されるポイントの最大数を制御します。各マルチパッチは通常は、複数のストリップで構成されています。デフォルト値は 1,024 です。 | Long |
z_factor (オプション) |
標高値に乗算する係数。一般的には、Z の距離単位を変換して、XY の距離単位に一致させるために使用されます。デフォルトは 1 です。この場合、標高値は変更されません。 | Double |
area_field (オプション) |
結果として得られるマルチパッチの 2D 面積が格納される出力フィールドの名前。 | String |
surface_area_field (オプション) |
結果として得られるマルチパッチの 3D 表面積が格納される出力フィールドの名前。この表面積にはサーフェスの起伏が考慮に入れられるので、サーフェスが平面でない場合は常に面積よりも大きくなります。サーフェスが平面の場合は 2 つとも同じ大きさになります。 | String |
pyramid_level_resolution (オプション) |
このツールが使用するテレイン ピラミッド レベルの Z 許容値またはウィンドウサイズの解像度。デフォルト値は 0(最大解像度)です。 | Double |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.InterpolatePolyToPatch_3d("sample.gdb/featuredataset/terrain", "polygon.shp", "out_multipatch.shp", 1024, 1, "Area", "SArea", 5)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: InterpolatePolyToPatch Example
Description: This script demonstrates how to use the
InterpolatePolyToPatch tool.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Set Local Variables
inTerrain = "sample.gdb/featuredataset/terrain"
inPoly = "polygon.shp"
outMP = arcpy.CreateUniqueName("out_multipatch.shp")
#Execute InterpolatePolyToPatch
arcpy.InterpolatePolyToPatch_3d(inTerrain, inPoly, outMP, 1024, 1, "Area", "SArea", 5)