頂点の挿入(Densify) (編集)
サマリ
ライン フィーチャまたはポリゴン フィーチャに沿って頂点を追加します。さらに、曲線セグメント(ベジェ、円弧、楕円弧)を直線セグメントに置き換えます。
図
使用法
-
直線セグメントへの頂点の挿入には [距離] パラメータの値が使用されます。曲線セグメントは [距離]、[最小偏角]、または [最大オフセット偏差] パラメータに基づいた頂点の挿入によって単純化されます。
頂点の挿入はセグメントごとに行われます。
[頂点の挿入(Densify)] を実行するたびに、頂点の挿入方法を 1 つだけ選択できます。
-
データの空間参照は、このツールによって生成される結果に非常に大きな影響を与えます。フィーチャの形状を正確に維持するため、適切な座標系で頂点の挿入を行う必要があります。
-
生成されるフィーチャには、(始点と終点を含め)元のフィーチャの各頂点と一致する頂点が配置されます。
[最大オフセット偏差] によって頂点を挿入する際の入力ジオメトリに円弧が含まれている場合、出力ジオメトリで 2 本の連続するセグメントがなす角度が 10 度を超えないように、オフセットの上限が適用されます。[最小偏角] によって頂点を挿入する場合、この角度を超えることができます。
このツールを使用すると入力データが変更されます。詳しい説明および不適切なデータ変更を防ぐための方法については、「出力を伴わないツール」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
in_features |
頂点を挿入する対象のポリゴンまたはライン フィーチャクラス。 | Feature Layer |
densification_method (オプション) |
フィーチャに頂点を挿入する方法。
| String |
distance (オプション) |
頂点間の最大直線距離。この距離は、直線だけでなく曲線の単純化にも必ず適用されます。デフォルト値は、データの XY 許容値に基づいています。 | Linear unit |
max_deviation (オプション) |
元のジオメトリから出力ジオメトリまでの最大距離。このパラメータは曲線にのみ適用されます。デフォルト値は、データの XY 許容値に基づいています。 | Linear unit |
max_angle (オプション) |
入力ジオメトリからオフセット可能な出力ジオメトリの最大角度。有効な範囲は 0 ~ 90 です。デフォルト値は 10。このパラメータは曲線にのみ適用されます。 | Double |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで Densify(頂点の挿入)関数を使用する方法を、例を挙げて示したものです。
import arcpy
arcpy.Densify_edit("C:/data.gdb/lines", "ANGLE","", "", "0.75")
次に示すスタンドアロン スクリプトは、ワークフローの一部として Densify(頂点の挿入)関数およびスナップ編集ツールを使用する方法を示しています。
# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer
# boundary to ensure common boundary is coincident
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Make backup copy of climate regions feature class,
# since modification with the Editing tools below is permanent
climateBackup = "backups/climate.shp"
arcpy.CopyFeatures_management('climate.shp', climateBackup)
# Densify climate regions feature class to make sure there are enough
#vertices to match detail of vegetation layer when layers are snapped
arcpy.Densify_edit('climate.shp', "DISTANCE", "10 Feet")
# Snap climate regions feature class to vegetation layer vertices and edge
# first, snap climate region vertices to the nearest vegetation vertex within 30 Feet
# second, snap climate region vertices to the nearest vegetation edge within 20 Feet
snapEnv1 = ["Habitat_Analysis.gdb/vegtype", "VERTEX", "30 Feet"]
snapEnv2 = ["Habitat_Analysis.gdb/vegtype", "EDGE", "20 Feet"]
arcpy.Snap_edit('climate.shp', [snapEnv1, snapEnv2])