水域ポリゴンの単純化 (Collapse Hydro Polygons) (カートグラフィ)

サマリー

単純化幅に基づいて、水域ポリゴンを中心線まで単純化するか部分的に単純化します。

水域ポリゴンの単純化ツールの図

使用法

  • このツールは小縮尺でラインとして表現するのに適切なフィーチャを単純化するのに最適化されています。 単純化幅を変えながら、複数回このツールを実行して、縮尺に応じた出力を生成します。 入力接続水域ライン フィーチャと交差していないと、小型の入力ポリゴン フィーチャは予期しない中心線を生成する場合があります。

  • ツールのパフォーマンスはデータのクリーンさに左右されます。 入力ポリゴン フィーチャが重なっていたり、入力ラインとポリゴン間の水域ネットワークが切断されていたりすると、予期しない結果になる場合があります。

  • 入力ポリゴンにホールかアイランドがあると、ホールの周囲で分岐する中心線が出力されます。 これを回避するには、このツールの実行前に [ポリゴン パートの削除 (Eliminate Polygon Part)] ツールを使用して、入力ポリゴンからホールを削除します。

  • 大きな水域データセットを処理する場合は、メモリの制限を超えることがあります。 このような場合は、「カートグラフィック パーティション」環境設定で、関連するポリゴン フィーチャクラスを特定することによって、パーティション単位で入力データを処理してください。 パーティションの境界によって定義されたデータの一部が順次処理されます。

    すべてのパーティションが処理されると、ラインとポリゴン フィーチャクラス出力が同時に生成されます。 これらのフィーチャクラスは境目なく表示され、パーティション エッジで分割されません。

    詳細については、「パーティションを使用した大きなデータセットのジェネラライズ」をご参照ください。

  • 各入力ポリゴン フィーチャが大きいと処理に時間がかかる場合があります。このツールの実行前に入力ポリゴンをディゾルブしないでください。 最初にポリゴンをディゾルブする必要がある場合は [隣接入力ポリゴンをマージ] パラメーターをオンにします。 このパラメーターを使用すると、水域ネットワークの正しい接続性を維持しながら、大きなポリゴンを作成することなく入力ポリゴンがツールによってマージされます。 出力ラインは元の入力ポリゴン境界で分割されます。

    入力ポリゴンが非常に大きい場合、処理時間短縮のため、[フィーチャの分割 (Dice)] ツールを使用して入力ポリゴンを小さなフィーチャに分割する必要がある場合があります。 パフォーマンスを向上するには、[ポリゴンの単純化 (Simplify Polygon)] ツールを使用して頂点数を削減します。

  • 単純化幅の値が 0 より大きい距離に設定されている場合、出力ポリゴン フィーチャクラスを指定する必要があります。 単純化幅より幅が広いポリゴンが出力ポリゴンに含まれます。 ポリゴンの一部だけが単純化幅の値より小さい場合、ポリゴンの一部が単純化される場合があります。 単純化幅の値より長いものも含めて、すべての入力ポリゴンに対して出力ラインが作成されます。 単純化幅の値が 0 の場合、すべての入力ポリゴンが完全に単純化され、出力ポリゴン フィーチャクラスは生成されません。

  • 出力ライン フィーチャクラスには COLLAPSED というフィールドが含まれます。 単純化されなかったポリゴンに対応するための値 0、および単純化されたポリゴンのための値 1 がこのフィールドには含まれています。

  • 単純化幅の値が 0 より大きい距離に設定されている場合、部分的に単純化されているポリゴンでの変動を回避するために、[単純化幅の許容値 (%)] パラメーターと [最小長] パラメーターを使用します。 河川ポリゴンの長さにかかわらず、部分的に単純化されると変動が発生し、1 つの河川ラインによって連続して接続された小さな湖ポリゴンが生成されます。 部分的に単純化されているポリゴンのセクションのうち、単純化幅の許容値に収まっているものが解析され、ポリゴン フィーチャのその部分を単純化するかどうかを決定する際に周囲のコンテキストが考慮されます。 解析するポリゴンの一部が最小長の値より短い場合、変動を防ぐために単純化幅が無視される場合があります。 最小長はポリゴン用に作成される中心線の長さに基づいています。

  • 出力ラインがある接続点で、部分的に単純化されているポリゴンがテーパ処理され、単純化されているポリゴンとそうでないポリゴンの間にスムーズなトランジションが作成されます。 各テーパ長は [テーパ長の割合] パラメーターで制御されます。このパラメーターはテーパ位置にある部分的に単純化されたポリゴンの幅の割合にテーパ長を設定します。 テーパ長の割合の値が 0 の場合、テーパ処理が一切行われません。

  • 出力ライン フィーチャクラスには、それらを作成するために使用されたフィーチャの ID が設定されている属性フィールドがあります。 必要に応じて、これらの値を使用して出力フィーチャを対応する入力に結合します。

    • InPoly_ID- 出力ライン フィーチャを作成するのに使用されるポリゴンを含むポリゴン フィーチャクラスの入力順を表す数字。 InPoly_ID 値を入力フィーチャクラスの名前にリンクする出力場所に <out_line_feature_class>_InPoly_DecodeID という名前のテーブルが保存されます。 フィーチャ データセットで出力場所が指定されている場合、ジオデータベース レベルで 1 つ上のレベルにテーブルが作成されます。
    • InPoly_FID- 出力ラインを作成するのに使用される、入力ポリゴン フィーチャの OBJECTID
    • InLine_ID- 出力ライン フィーチャに接続されているフィーチャを含む入力接続水域ライン フィーチャクラスの入力順を表す数字。 InLine_ID 値を入力フィーチャクラスの名前にリンクする出力場所に <out_line_feature_class>_InLine_DecodeID という名前のテーブルが保存されます。 フィーチャ データセットで出力場所が指定されている場合、ジオデータベース レベルで 1 つ上のレベルにテーブルが作成されます。
    • InLine_FID- 出力ライン フィーチャに接続されている入力接続水域ライン フィーチャの OBJECTID。 出力ライン フィーチャに接続されている接続水域ライン フィーチャがない場合、この値は -1 に設定されます。

    フィーチャクラスおよびこれらを作成するために使用されるフィーチャの ID が設定されている InPoly_ID 属性と InPolyFID 属性も出力ポリゴンには含まれます。 1 つの出力フィーチャを作成するために複数の入力接続ラインが使用された場合、各属性で記録される ID 番号は 1 つだけです。

  • 対応する入力ポリゴン フィーチャの幅に関する情報を記録する、3 つのフィールド属性が出力ライン フィーチャに含まれます。 幅は、出力の空間参照の距離単位で計測されます。

    • MIN_WIDTH- 出力ラインに沿ったポリゴンの最小幅
    • MAX_WIDTH- 出力ラインに沿ったポリゴンの最大幅
    • AVG_WIDTH- 出力ラインに沿ったポリゴンの平均幅

パラメーター

ラベル説明データ タイプ
入力水域ポリゴン フィーチャ

水域ポリゴンを含む 1 つ以上のフィーチャ レイヤー。

Feature Layer
出力ライン フィーチャクラス

単純化されたポリゴンの中心線を含むライン フィーチャクラス。 単純化されていないものも含めて、すべての入力ポリゴンの中心線が含まれます。 中心線フィーチャが単純化されたポリゴンを表すかどうかを指定する COLLAPSED 属性がこのフィーチャクラスにはあります。

Feature Class
隣接入力ポリゴンをマージ
(オプション)

中心線を計算する前に隣接入力ポリゴンをマージするかどうかを指定します。

  • オン - 中心線を計算する前に入力水域ポリゴンをマージします。 これがデフォルトです。
  • オフ - マージされていない入力水域ポリゴンから中心線を計算します。

Boolean
接続水域ライン フィーチャ
(オプション)

単純化される入力水域ポリゴンに接続する入力水域ライン フィーチャ。 これらの接続を維持するためにライン フィーチャが作成されます。

Feature Layer
単純化幅
(オプション)

単純化で考慮される、入力水域ポリゴンの閾値幅。 指定した幅を下回るすべてのポリゴンが単純化されます。 デフォルト値は 0 で、すべてのフィーチャが単純化されます。

Linear Unit
単純化幅の許容値 (%)
(オプション)

フィーチャが解析され、フィーチャを単純化するかどうかを決定する際に周囲のコンテキストが考慮される許容値。 これは単純化内の変動を最小限にするためです。 デフォルト値は 20 パーセントです。 [単純化幅] パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Double
最小長
(オプション)

出力ポリゴン フィーチャクラスで保持されるポリゴンで必要な最小長。 最小長はポリゴン用に作成される中心線の長さに基づいています。 ポリゴンの中心線が単純化幅より長く、最小長より短い場合、出力ポリゴン フィーチャクラスにはポリゴンが含まれません。 デフォルト値は 0 です。 [単純化幅] パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Linear Unit
テーパ長の割合
(オプション)

出力ポリゴン フィーチャクラスと出力ライン フィーチャクラスのポリゴンの間の接続の長さがテーパ処理されます。 このパラメーターでは、テーパ処理の長さを接続位置の幅の割合として指定します。 テーパ長の割合の値が 0 の場合、テーパ処理は行われません。 デフォルト値は 50 です。[単純化幅] パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Double
出力ポリゴン フィーチャクラス
(オプション)

入力水域ポリゴンの単純化されない部分を含むポリゴン フィーチャクラス。 [単純化幅] パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Feature Class

派生した出力

ラベル説明データ タイプ
InPoly Decode ID テーブル

入力水域ポリゴン フィーチャの名前に InPoly_ID 値をリンクするテーブル。 このテーブルは [出力ライン フィーチャクラス] 値と同じ場所に作成されます。 フィーチャ データセットで [出力ライン フィーチャクラス] 値が指定されている場合、ジオデータベース レベルで 1 つ上のレベルにテーブルが作成されます。

Table
InLine Decode ID テーブル

接続水域ライン フィーチャの名前に InLine_ID 値をリンクするテーブル。 このテーブルは [出力ライン フィーチャクラス] 値と同じ場所に作成されます。 フィーチャ データセットで [出力ライン フィーチャクラス] 値が指定されている場合、ジオデータベース レベルで 1 つ上のレベルにテーブルが作成されます。

Table

arcpy.cartography.CollapseHydroPolygon(in_features, out_line_feature_class, {merge_adjacent_input_polygons}, {connecting_features}, {collapse_width}, {collapse_width_tolerance}, {minimum_length}, {taper_length_percentage}, {out_poly_feature_class})
名前説明データ タイプ
in_features
[in_features,...]

水域ポリゴンを含む 1 つ以上のフィーチャ レイヤー。

Feature Layer
out_line_feature_class

単純化されたポリゴンの中心線を含むライン フィーチャクラス。 単純化されていないものも含めて、すべての入力ポリゴンの中心線が含まれます。 中心線フィーチャが単純化されたポリゴンを表すかどうかを指定する COLLAPSED 属性がこのフィーチャクラスにはあります。

Feature Class
merge_adjacent_input_polygons
(オプション)

中心線を計算する前に隣接入力ポリゴンをマージするかどうかを指定します。

  • MERGE_ADJACENT中心線を計算する前に入力水域ポリゴンをマージします。 これがデフォルトです。
  • NO_MERGEマージされていない入力水域ポリゴンから中心線を計算します。
Boolean
connecting_features
[connecting_features,...]
(オプション)

単純化される入力水域ポリゴンに接続する入力水域ライン フィーチャ。 これらの接続を維持するためにライン フィーチャが作成されます。

Feature Layer
collapse_width
(オプション)

単純化で考慮される、入力水域ポリゴンの閾値幅。 指定した幅を下回るすべてのポリゴンが単純化されます。 デフォルト値は 0 で、すべてのフィーチャが単純化されます。

Linear Unit
collapse_width_tolerance
(オプション)

フィーチャが解析され、フィーチャを単純化するかどうかを決定する際に周囲のコンテキストが考慮される許容値。 これは単純化内の変動を最小限にするためです。 デフォルト値は 20 パーセントです。 collapse_width パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Double
minimum_length
(オプション)

出力ポリゴン フィーチャクラスで保持されるポリゴンで必要な最小長。 最小長はポリゴン用に作成される中心線の長さに基づいています。 ポリゴンの中心線が単純化幅より長く、最小長より短い場合、出力ポリゴン フィーチャクラスにはポリゴンが含まれません。 デフォルト値は 0 です。 collapse_width パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Linear Unit
taper_length_percentage
(オプション)

出力ポリゴン フィーチャクラスと出力ライン フィーチャクラスのポリゴンの間の接続の長さがテーパ処理されます。 このパラメーターでは、テーパ処理の長さを接続位置の幅の割合として指定します。 テーパ長の割合の値が 0 の場合、テーパ処理は行われません。 デフォルト値は 50 です。collapse_width パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Double
out_poly_feature_class
(オプション)

入力水域ポリゴンの単純化されない部分を含むポリゴン フィーチャクラス。 collapse_width パラメーター値が指定されている場合のみ、このパラメーターが適用されます。

Feature Class

派生した出力

名前説明データ タイプ
in_poly_decode_id_table

接続水域ライン フィーチャの名前に InPoly_ID 値をリンクするテーブル。 このテーブルは out_line_feature_class 値と同じ場所に作成されます。 フィーチャ データセットで out_line_feature_class 値が指定されている場合、ジオデータベース レベルで 1 つ上のレベルにテーブルが作成されます。

Table
in_line_decode_id_table

接続水域ライン フィーチャの名前に InLine_ID 値をリンクするテーブル。 このテーブルは 値と同じ場所に作成されます。out_line_feature_class フィーチャ データセットで out_line_feature_class 値が指定されている場合、ジオデータベース レベルで 1 つ上のレベルにテーブルが作成されます。

Table

コードのサンプル

CollapseHydroPolygon の例 1 (スタンドアロン スクリプト)

こちらの例は、CollapseHydroPolygon 関数を使ってポリゴン フィーチャから中心線を作成する方法を示したものです。

# Name: CollapseHydroPolygon_sample1.py
# Description: Collapse all water polygons to produce centerlines

# Import System Modules
import arcpy
arcpy.env.workspace = r"C:/data/Hydro.gdb"

# Execute Collapse Hydro Polygon
arcpy.cartography.CollapseHydroPolygon('WaterPolygons', 'HydroCenterlinesOut')
CollapseHydroPolygon の例 2 (スタンドアロン スクリプト)

こちらの例は、CollapseHydroPolygon 関数を使って、幅が指定した単純化幅を下回るポリゴン フィーチャから中心線を作成する方法を示したものです。 作成される中心線と接続フィーチャ間の接続を維持するために接続フィーチャが使用されます。

# Name: CollapseHydroPolygon_sample2.py
# Description: Select the rivers and collapse features that are
#               below 6 meters wide to produce centerlines.

# Import System Modules
import arcpy
arcpy.env.workspace = r"C:/data/Hydro.gdb"

# Setting Local Variables
in_features = 'WaterPolygons'
out_line_feature_class = 'HydroCenterlinesOut'
merge_adjacent_input_polygons = False # default is True or "MERGE_ADJACENT"
connection_features = 'WaterLines'
collapse_width = "6 Meters"           # default is '0 Meters'
collapse_width_tolerance = 20         # default is 20
minimum_length = "10 Meters"          # default is '0 Meters' 
taper_length_percentage = 50          # default is 50
out_poly_feature_class =  'HydroPolyOut'

# Select only the Rivers
inputLyr = arcpy.MakeFeatureLayer_management(in_features,
                                             "inputLyr",
                                             "FTYPE = 'rivers'")

# Execute Collapse Hydro Polygon
arcpy.cartography.CollapseHydroPolygon(inputLyr,
                                       out_line_feature_class,
                                       merge_adjacent_input_polygons,
                                       connection_features,
                                       collapse_width,
                                       collapse_width_tolerance,
                                       minimum_length,
                                       taper_length_percentage,
                                       out_poly_feature_class)

ライセンス情報

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

関連トピック