直線と円弧による単純化 (Simplify By Straight Lines And Circular Arcs) (編集)

概要

連続するライン セグメントまたはエッジを、数の少ないライン セグメントまたはエッジに置き換えることによって、ポリゴンおよびライン フィーチャを単純化します。ライン セグメントおよびポリゴン エッジは、指定された最大許容オフセットに基づいて単純化されます。さらに、連続するライン セグメントまたはポリゴン エッジから円弧を作成できます。

[頂点にフィット] と [線分にフィット]
出力ラインまたはポリゴン エッジは、指定された許容可能最大オフセットの範囲内で、直線と円弧線分をフィットすることで作成します。

使用法

    注意:

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

  • このツールは、さまざまなデータ変換および操作処理によって、無用な頂点や短い線分を累積したラインおよびポリゴン フィーチャのジオメトリを単純化するために使用されます。連続した非線形線分またはエッジは、2 点から成る直線で置換できます。また、円弧を表す一連の線分またはエッジはトゥルー カーブに置換できます。このツールは、指定された最大許容オフセットの範囲内にある直線や円弧で複数の線分またはエッジを近似化し、置換します。

  • 入力フィーチャはポリゴンまたラインです。出力ラインまたはポリゴン エッジには、元の頂点のサブセットが含まれます。新しい頂点は追加されず、フィーチャは削除されません。

  • ベジェ曲線、円弧、楕円円弧など、既存のパラメーター曲線は変更されません。

    メモ:

    入力フィーチャがシェープファイルに保存されている場合、出力フィーチャの円弧は、高密度の小さな直線線分のままです。シェープファイルは、トゥルー カーブをサポートしていません。トゥルー カーブを作成するには、シェープファイルをフィーチャクラスにエクスポートします。

  • [円弧の作成] を使用して、トゥルー カーブと直線を生成します。[最大円弧角ステップ][最小頂点数][最小半径][最大半径][最小円弧角] の 5 つのオプション パラメーターにより、円弧をどのように線分またはエッジにフィットさせるかを制御します。

    • [最大円弧角ステップ (十進度)] は、円弧を作成する際に使用できる最大円弧角です。円弧角は、曲線の候補 (または作成中の曲線) の中心角です。最大円弧角ステップでは、円曲線を作成するために頂点を特定する際の中心角検索フィールドの上限幅を定義します。1 つの最大円弧角ステップ内に複数の頂点が見つかった場合、これらの頂点が円弧のフィットの対象となります。小さい方の円弧角を使用すると、円弧を密度の高い線分にフィットし、円弧が大きな線分にオーバー フィットするのを防ぐことができます。円弧を密度の低い線分にフィットするには、大きい方の円弧角を使用します。有効な値の範囲は 2 ~ 95 度です。デフォルト値は 20 度です。

      以下の図では、中心角 90 度の線分が円弧のフィットの対象となっています。最大円弧角ステップで 89 度が指定されている場合、線分は対象とされず、出力は曲線と直線で構成されます (中央の図)。91 度が指定されている場合、円弧の作成に線分が使用され、出力は 1 つの曲線で構成されます (最後の図)。

      最大円弧角ステップ
      [最大円弧角ステップ] パラメーターは、円弧を作成するにあたって頂点を特定するために使用されます。

    • メモ:

      [フィッティング タイプ] パラメーターに [線分にフィット] オプションが選択されている場合、[最大円弧角ステップ] パラメーターは使用できません。

  • 終点が一致する (ループを成す) ラインの終点を保持するには、[閉じたラインに対して終点を保持] パラメーターをオンにします。[閉じたラインに対して終点を保持] がオフになっている場合、終点は移動または削除されます。

構文

arcpy.edit.SimplifyByStraightLinesAndCircularArcs(in_features, max_offset, {fitting_type}, {circular_arcs}, {max_arc_angle_step}, {min_vertex_count}, {min_radius}, {max_radius}, {min_arc_angle}, {closed_ends}, {anchor_points})
パラメーター説明データ タイプ
in_features
[in_features,...]

単純化するフィーチャ。フィーチャはラインまたはポリゴンです。複数の入力を使用する場合、フィーチャは同じ空間参照を使用している必要があります。

Feature Layer
max_offset

出力フィーチャのエッジが、入力フィーチャの形状から逸脱してもいい最大距離。[フィッティング タイプ] パラメーターに [頂点にフィット] オプションが選択されている場合は、入力頂点と出力フィーチャのエッジの間の距離が計測されます。[線分にフィット] オプションが選択されている場合は、入力フィーチャと出力フィーチャのエッジの間の距離が計測されます。

Linear Unit
fitting_type
(オプション)

出力フィーチャのエッジと円弧が入力フィーチャの形状にどのようにフィットするかを指定します。

[線分にフィット] が選択されている場合、[最大円弧角ステップ][最小頂点数] パラメーターは使用できません。

  • FIT_TO_VERTICES出力フィーチャのエッジと入力フィーチャの頂点の間のオフセット ギャップが最小化されます。出力フィーチャのエッジおよび円弧は、入力フィーチャの頂点の位置にほぼフィットされます。これがデフォルトです。
  • FIT_TO_SEGMENTS出力フィーチャのエッジと入力フィーチャのエッジの間のオフセット ギャップが最小化されます。出力エッジおよび円弧は、入力フィーチャの形状の位置にほぼフィットされます。
String
circular_arcs
(オプション)

円弧を作成するかどうかを指定します。

  • CREATE円弧が作成されます。これがデフォルトです。
  • NOT_CREATE円弧は作成されません。
Boolean
max_arc_angle_step
(オプション)

円弧を作成するために使用される最大円弧角ステップ (度)。円弧角は、円弧の作成にあたって頂点の位置を特定する際に、各ステップで使用される視覚フィールドの幅を定義します。円弧角は、曲線の候補 (または作成中の曲線) の中心角です。頂点が最大円弧角ステップ内にある場合、円弧角が作成されます。たとえば、頂点とエッジがまばらであれば、大きな円弧角ステップを使用します。有効な値の範囲は 2 ~ 95 度です。デフォルト値は 20 度です。[フィッティング タイプ] パラメーターに [線分にフィット] オプションが選択されている場合、このパラメーターは使用できません。

Double
min_vertex_count
(オプション)

円弧角を作成するために必要な最小頂点数。3 より大きい値を指定する必要があります。デフォルトは 4 です。[フィッティング タイプ] パラメーターに [線分にフィット] オプションが選択されている場合、このパラメーターは使用できません。

Long
min_radius
(オプション)

出力円弧角で許容されている最小半径。0 より大きく、[最大半径] で指定された値よりも小さい値を指定する必要があります。値が指定されていない場合、出力円弧角の半径はオフです (デフォルト)。

Linear Unit
max_radius
(オプション)

出力円弧角で許容されている最大半径。[最小半径] で指定された値よりも大きい値を指定する必要があります。値が指定されていない場合、出力円弧角の半径はオフです (デフォルト)。

Linear Unit
min_arc_angle
(オプション)

円弧を作成するために使用される最小円弧角 (度)。最小円弧角とは、出力円弧角で許容されている、最小の中心角のことです。出力円弧角の中心角がこの値よりも小さい場合は、円弧角は作成されません。有効な値の範囲は 2 ~ 360 度です。デフォルト値は 2 度です。

Double
closed_ends
(オプション)

閉じたラインの終点を保持するかどうかを指定します。閉じたラインとは、終点が一致する (ループを成す) ラインです。

  • PRESERVE閉じたラインの終点が保持されます。これがデフォルトです。
  • NOT_PRESERVE閉じたラインの終点は保持されません。終点は移動または削除されます。
Boolean
anchor_points
(オプション)

アンカー ポイントを含むフィーチャクラスのパスと名前。アンカー ポイントは、入力フィーチャの頂点に重ねて配置し、単純化プロセスでそのポイントを移動または削除してはならないことを示します。

Feature Layer

派生した出力

名前説明データ タイプ
out_feature_class

更新されたフィーチャ。

フィーチャ レイヤー
out_feature_layers

更新されたレイヤーの名前。

フィーチャ レイヤー

コードのサンプル

SimplifyByStraightLinesAndCircularArcs (直線と円弧による単純化) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、SimplifyByStraightLinesAndCircularArcs 関数を使用してラインを単純化する方法を示しています。

import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.edit.SimplifyByStraightLinesAndCircularArcs_edit("myDensifiedLines", 
                                                       "1.5 feet")
SimplifyByStraightLinesAndCircularArcs (直線と円弧による単純化) の例 2 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、SimplifyByStraightLinesAndCircularArcs 関数を使用してアンカー ポイントによってラインとポリゴンを同時に単純化する方法を示しています。

import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.edit.SimplifyByStraightLinesAndCircularArcs("myDensifiedPolygons;myDensifiedLines", 
                                                  "0.4 Meters", 
                                                  anchor_points="myAnchorPoints")

ライセンス情報

  • Basic: いいえ
  • Standard: はい
  • Advanced: はい

関連トピック