概要
連続するライン セグメントまたはエッジを、数の少ないライン セグメントまたはエッジに置き換えることによって、ポリゴンおよびライン フィーチャを単純化します。ライン セグメントおよびポリゴン エッジは、指定された最大許容オフセットに基づいて単純化されます。さらに、連続するライン セグメントまたはポリゴン エッジから円弧を作成できます。
図
使用法
このツールは、さまざまなデータ変換および操作処理によって、無用な頂点や短い線分を累積したラインおよびポリゴン フィーチャのジオメトリを単純化するために使用されます。連続した非線形線分またはエッジは、2 点から成る直線で置換できます。また、円弧を表す一連の線分またはエッジはトゥルー カーブに置換できます。このツールは、指定された最大許容オフセットの範囲内にある直線や円弧で複数の線分またはエッジを近似化し、置換します。
入力フィーチャはポリゴンまたラインです。出力ラインまたはポリゴン エッジには、元の頂点のサブセットが含まれます。新しい頂点は追加されず、フィーチャは削除されません。
ベジェ曲線、円弧、楕円円弧など、既存のパラメーター曲線は変更されません。
メモ:
入力フィーチャがシェープファイルに保存されている場合、出力フィーチャの円弧は、高密度の小さな直線線分のままです。シェープファイルは、トゥルー カーブをサポートしていません。トゥルー カーブを作成するには、シェープファイルをフィーチャクラスにエクスポートします。
[円弧の作成] を使用して、トゥルー カーブと直線を生成します。[最大円弧角ステップ]、[最小頂点数]、[最小半径]、[最大半径]、[最小円弧角] の 5 つのオプション パラメーターにより、円弧をどのように線分またはエッジにフィットさせるかを制御します。
- [最大円弧角ステップ (十進度)] は、円弧を作成する際に使用できる最大円弧角です。円弧角は、曲線の候補 (または作成中の曲線) の中心角です。最大円弧角ステップでは、円曲線を作成するために頂点を特定する際の中心角検索フィールドの上限幅を定義します。1 つの最大円弧角ステップ内に複数の頂点が見つかった場合、これらの頂点が円弧のフィットの対象となります。小さい方の円弧角を使用すると、円弧を密度の高い線分にフィットし、円弧が大きな線分にオーバー フィットするのを防ぐことができます。円弧を密度の低い線分にフィットするには、大きい方の円弧角を使用します。有効な値の範囲は 2 ~ 95 度です。デフォルト値は 20 度です。
以下の図では、中心角 90 度の線分が円弧のフィットの対象となっています。最大円弧角ステップで 89 度が指定されている場合、線分は対象とされず、出力は曲線と直線で構成されます (中央の図)。91 度が指定されている場合、円弧の作成に線分が使用され、出力は 1 つの曲線で構成されます (最後の図)。
メモ:
[フィッティング タイプ] パラメーターに [線分にフィット] オプションが選択されている場合、[最大円弧角ステップ] パラメーターは使用できません。
- [最大円弧角ステップ (十進度)] は、円弧を作成する際に使用できる最大円弧角です。円弧角は、曲線の候補 (または作成中の曲線) の中心角です。最大円弧角ステップでは、円曲線を作成するために頂点を特定する際の中心角検索フィールドの上限幅を定義します。1 つの最大円弧角ステップ内に複数の頂点が見つかった場合、これらの頂点が円弧のフィットの対象となります。小さい方の円弧角を使用すると、円弧を密度の高い線分にフィットし、円弧が大きな線分にオーバー フィットするのを防ぐことができます。円弧を密度の低い線分にフィットするには、大きい方の円弧角を使用します。有効な値の範囲は 2 ~ 95 度です。デフォルト値は 20 度です。
終点が一致する (ループを成す) ラインの終点を保持するには、[閉じたラインに対して終点を保持] パラメーターをオンにします。[閉じたラインに対して終点を保持] がオフになっている場合、終点は移動または削除されます。
注意:
このツールを実行すると、入力データが変更されます。詳細と不要なデータの変更を回避するための方法については、「入力データを変更または更新するツール」をご参照ください。
構文
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 (オプション) | 出力フィーチャのエッジと円弧が入力フィーチャの形状にどのようにフィットするかを指定します。 [線分にフィット] が選択されている場合、[最大円弧角ステップ] と [最小頂点数] パラメーターは使用できません。
| String |
circular_arcs (オプション) | 円弧を作成するかどうかを指定します。
| 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 (オプション) | 閉じたラインの終点を保持するかどうかを指定します。閉じたラインとは、終点が一致する (ループを成す) ラインです。
| Boolean |
anchor_points (オプション) | アンカー ポイントを含むフィーチャクラスのパスと名前。アンカー ポイントは、入力フィーチャの頂点に重ねて配置し、単純化プロセスでそのポイントを移動または削除してはならないことを示します。 | Feature Layer |
派生した出力
名前 | 説明 | データ タイプ |
out_feature_class | 更新されたフィーチャ。 | フィーチャ レイヤー |
out_feature_layers | 更新されたレイヤーの名前。 | フィーチャ レイヤー |
コードのサンプル
次の Python ウィンドウ スクリプトは、SimplifyByStraightLinesAndCircularArcs 関数を使用してラインを単純化する方法を示しています。
import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.edit.SimplifyByStraightLinesAndCircularArcs_edit("myDensifiedLines",
"1.5 feet")
次の 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: はい