頂点の挿入 (Densify) (編集)

サマリー

ラインまたはポリゴン フィーチャに沿って頂点を追加し、曲線セグメント (ベジェ、円弧、楕円弧) を直線セグメントに置き換えます。

頂点の挿入の図
曲線の線形セグメントへの頂点の挿入は、オフセット、距離、または角度が使用されます。

使用法

    注意:

    このツールを実行すると、入力データが変更されます。 詳細と不要なデータの変更を回避するための方法については、「入力データを変更または更新するツール」をご参照ください。

  • 直線セグメントへの頂点の挿入には [距離] パラメーターの値が使用されます。 指定した距離を超えない間隔で頂点が追加されます。 曲線セグメントは [距離][最小偏角]、または [最大オフセット偏差] パラメーターに基づいた頂点の挿入によって単純化されます。

  • 頂点の挿入はセグメントごとに行われます。

  • [頂点の挿入 (Densify)] を実行するたびに、頂点の挿入方法を 1 つだけ選択できます。

  • データの空間参照は、このツールによって生成される結果に大きな影響を与えます。 フィーチャの形状を正確に維持するため、適切な座標系で頂点を挿入します。

  • 生成されるフィーチャには、(始点と終点を含め) 元のフィーチャの各頂点と一致する頂点が配置されます。

  • [最大頂点数] パラメーターは、頂点を挿入した各出力セグメントの最大頂点数を制御します。 頂点の挿入操作にこの値よりも大きい値が必要な場合、セグメントは、この頂点数 (+/- 1) を超えないように調整されます。 無効な値 (0 以下) が入力されると、線形セグメントに制限が適用されず、ツールはデフォルトで曲線セグメントの 12000 に設定します。

    [最大頂点数] を設定すると、設定値が線形セグメントと曲線セグメントの最大頂点数に使用されます。

    注意:
    使用される値が大きくなるほど、フィーチャが非常に拡大する可能性が大きくなります。 大きいフィーチャをオーバーレイすると、パフォーマンスへの悪影響が生じることがあります。 極端に小さい値を使用すると、出力フィーチャが劣化して、NULL ジオメトリになる可能性があります。 また、極端に小さい値により、以降の解析で予期しない結果を返すフィーチャが作成されることもあります。

  • [最大オフセット偏差] パラメーターを使用して頂点を挿入する際の入力ジオメトリに円弧が含まれている場合、出力ジオメトリで 2 本の連続する直線セグメントがなす角度が 10 度を超えないように、オフセットの上限が適用されます。 [最小偏角] パラメーターを使用して頂点を挿入する場合、この角度を超えることができます。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

頂点を挿入する対象のポリゴンまたはライン フィーチャクラス。

Feature Layer
頂点の挿入方法
(オプション)

使用するフィーチャに頂点を挿入する方法を指定します。

  • 距離直線と曲線は、指定した距離を使用して挿入されます。 これがデフォルトです。
  • オフセット曲線は、指定した最大オフセット偏差を使用して挿入されます。
  • 角度曲線は、指定した最小偏角を使用して挿入されます。
String
距離
(オプション)

頂点間の最大距離。 この距離は、直線だけでなく曲線の単純化にも必ず適用されます。 デフォルト値は、データの XY 許容値に基づいています。

新しい頂点がこの正確な間隔でライン沿いに挿入されず、前の頂点のこの範囲内に挿入される場合があります。 指定した間隔でライン セグメントに沿って正確に頂点を追加することはできません。

Linear Unit
最大オフセット偏差
(オプション)

元のセグメントから出力セグメントまでの最大距離。 このパラメーターは曲線にのみ適用されます。 デフォルト値は、データの XY 許容値に基づいています。

Linear Unit
最大偏角 (度)
(オプション)

入力ジオメトリから出力ジオメトリまでの最大角度。 有効な範囲は 0 ~ 90 度です。 デフォルト値は 10 です。 このパラメーターは曲線にのみ適用されます。

Double
最大頂点数 (セグメントあたり)
(オプション)

セグメントあたりに許容される最大長点数。 値が入力されていない、または無効な値 (0 以下) を入力した場合、線形セグメントの頂点の上限がなく、曲線セグメントはデフォルトの 12000 になります。

Long

派生した出力

ラベル説明データ タイプ
更新された入力フィーチャ

頂点が挿入された入力フィーチャ。

Feature Class

arcpy.edit.Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
名前説明データ タイプ
in_features

頂点を挿入する対象のポリゴンまたはライン フィーチャクラス。

Feature Layer
densification_method
(オプション)

使用するフィーチャに頂点を挿入する方法を指定します。

  • DISTANCE直線と曲線は、指定した距離を使用して挿入されます。 これがデフォルトです。
  • OFFSET曲線は、指定した最大オフセット偏差を使用して挿入されます。
  • ANGLE曲線は、指定した最小偏角を使用して挿入されます。
String
distance
(オプション)

頂点間の最大距離。 この距離は、直線だけでなく曲線の単純化にも必ず適用されます。 デフォルト値は、データの XY 許容値に基づいています。

新しい頂点がこの正確な間隔でライン沿いに挿入されず、前の頂点のこの範囲内に挿入される場合があります。 指定した間隔でライン セグメントに沿って正確に頂点を追加することはできません。

Linear Unit
max_deviation
(オプション)

元のセグメントから出力セグメントまでの最大距離。 このパラメーターは曲線にのみ適用されます。 デフォルト値は、データの XY 許容値に基づいています。

Linear Unit
max_angle
(オプション)

入力ジオメトリから出力ジオメトリまでの最大角度。 有効な範囲は 0 ~ 90 度です。 デフォルト値は 10 です。 このパラメーターは曲線にのみ適用されます。

Double
max_vertex_per_segment
(オプション)

セグメントあたりに許容される最大長点数。 値が入力されていない、または無効な値 (0 以下) を入力した場合、線形セグメントの頂点の上限がなく、曲線セグメントはデフォルトの 12000 になります。

Long

派生した出力

名前説明データ タイプ
out_feature_class

頂点が挿入された入力フィーチャ。

Feature Class

コードのサンプル

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

次の Python ウィンドウ スクリプトは、イミディエイト モードで Densify 関数を使用する方法を示しています。

import arcpy
arcpy.edit.Densify("C:/data.gdb/lines", "ANGLE", "", "", 0.75)
Densify の例 2 (スタンドアロン スクリプト)

次に示すスタンドアロン スクリプトは、ワークフローの一部として Densify 関数および Snap 編集ツールを使用する方法を示しています。

# 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.management.CopyFeatures('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.edit.Densify('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.edit.Snap('climate.shp', [snapEnv1, snapEnv2])

ライセンス情報

  • Basic: No
  • Standard: Yes
  • Advanced: Yes

関連トピック