フィーチャ → ライン (Feature to Line) (データ管理)

サマリー

ポリゴン境界線をラインへ変換するか、ライン フィーチャまたはポリゴン フィーチャ、またはその両方をフィーチャの交点で分割することで生成されるラインを含むフィーチャクラスを作成します。

フィーチャ → ラインの図

使用法

  • 必要に応じて入力属性を出力フィーチャクラスに保持できます。これは、ダイアログ ボックスの [属性の保存] オプション (スクリプトでは attributes パラメーター) によって指定します。

  • 複数のフィーチャクラスまたはレイヤーが入力フィーチャのリストで指定されている場合、それらのエントリの順序は出力フィーチャ タイプに影響を与えません。ただし、このツールのダイアログ ボックスで、リストの最上位にあるエントリの空間参照が処理で使用され、出力に設定されます。

  • 入力ラインまたは入力ポリゴン境界線が、フィーチャの始点と終点以外の位置で互いに接しているか、交差しているか、重なり合っている場合は、それらのフィーチャが交点で分割され、分割された各ラインが 1 つの出力ライン フィーチャになります。 入力ラインまたは入力ポリゴン境界線が別のフィーチャと交差していない場合は、そのフィーチャの形状全体が 1 つのライン フィーチャとして書き込まれます。

  • マルチパート入力フィーチャの場合、出力ラインはシングルパートになります。

  • 入力フィーチャがパラメトリック カーブ (トゥルー カーブ) である場合、出力ラインでは、分割された場合でもトゥルー カーブが維持されます。 これは、シェープファイル データには適用されません。

  • ダイアログ ボックスの [属性の保存] オプションがオンの場合 (スクリプトで attributes パラメーターが ATTRIBUTES に設定されている)、すべての入力エントリの属性が、入力リストに表示されている順番で出力ラインに保存されます。 新規フィールドである FID_xxx (xxx は、該当する入力エントリのソース フィーチャクラス名) が各入力エントリの出力に追加され、ソース フィーチャの ID に設定されます。 出力ラインは、次のいずれかの方法で属性に関連付けられます。

    • 2 つのポリゴンを区切る境界線など、同じ入力フィーチャのセット内でラインまたはポリゴン境界が一致している場合は、同じジオメトリを持つ 2 つのライン フィーチャが出力に書き込まれます。それらには、個別にそのソース フィーチャの属性が設定されます。
    • ポリゴン境界線に重なっているラインなど、2 つの異なる入力フィーチャのセット内でラインまたはポリゴン境界が一致している場合は、両方のソース フィーチャの属性を含むライン フィーチャが 1 つだけ出力に書き込まれます。
    • 出力ラインが、特定の入力フィーチャ セットのどのフィーチャとも重なり合わない場合は、FID_xxxx フィールドの値は -1 になり、そのフィーチャ セットからの他のフィールドの値はゼロか NULL になります。

    ダイアログ ボックスの [属性の保存] オプションがオフの場合 (スクリプトで attributes パラメーターが NO_ATTRIBUTES に設定されている)、入力属性はいずれも出力フィーチャクラスに保存されません。一致するラインまたはポリゴン境界線のセットごとに 1 つのライン フィーチャが出力に書き込まれます。

  • 入力フィーチャに隣接ポリゴンが含まれる場合、属性として左右のポリゴン フィーチャ ID が設定されている共有境界線を出力するには、代わりに [ポリゴン → ライン (Polygon To Line)] ツールを使用してください。

  • パフォーマンスとスケーラビリティの向上のため、このツールは、タイル プロセスを使用して非常に大きなデータセットを処理します。 詳細については、「大きいデータセットのタイル化処理」をご参照ください。

パラメーター

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

ラインまたはポリゴン、またはその両方である入力フィーチャ。

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

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

Feature Class
XY 許容値
(オプション)

すべてのフィーチャ座標の最短距離、および空間計算の間に X 方向、Y 方向、XY 方向に座標を移動できる距離。デフォルトの XY 許容値は、0.001 メートル、またはフィーチャ単位でそれに相当する値に設定されます。

注意:

このパラメーターの値を変更すると、失敗または予期しない結果が発生する可能性があります。 このパラメーターは変更しないことをお勧めします。 ツール ダイアログ ボックスのビューからは削除されています。 デフォルトでは、入力フィーチャクラスの空間参照の [XY許容値] プロパティが使用されます。

Linear Unit
属性の保存
(オプション)

入力フィーチャ属性を出力フィーチャクラスに保存するか、しないかを指定します。

  • オン - 入力属性を出力フィーチャに保存します。 これがデフォルトです。
  • オフ - 入力属性を出力フィーチャに保存しません。
Boolean

arcpy.management.FeatureToLine(in_features, out_feature_class, {cluster_tolerance}, {attributes})
名前説明データ タイプ
in_features
[in_features,...]

ラインまたはポリゴン、またはその両方である入力フィーチャ。

Feature Layer
out_feature_class

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

Feature Class
cluster_tolerance
(オプション)

すべてのフィーチャ座標の最短距離、および空間計算の間に X 方向、Y 方向、XY 方向に座標を移動できる距離。デフォルトの XY 許容値は、0.001 メートル、またはフィーチャ単位でそれに相当する値に設定されます。

注意:

このパラメーターの値を変更すると、失敗または予期しない結果が発生する可能性があります。 このパラメーターは変更しないことをお勧めします。 ツール ダイアログ ボックスのビューからは削除されています。 デフォルトでは、入力フィーチャクラスの空間参照の [XY許容値] プロパティが使用されます。

Linear Unit
attributes
(オプション)

入力属性を出力フィーチャクラスに保存するか、しないかを指定します。

  • ATTRIBUTES入力属性を出力フィーチャに保存します。 これがデフォルトです。
  • NO_ATTRIBUTES入力属性を出力フィーチャに保存しません。
Boolean

コードのサンプル

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

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.FeatureToLine_management(["majorrds.shp", "habitat_analysis.gdb/futrds"],
                               "c:/output/output.gdb/allroads",
                               "0.001 Meters", "ATTRIBUTES")
FeatureToLine の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、FeatureToLine 関数をスクリプティング環境で適用する方法の例を示しています。

# Name: FeatureToLine_Example2.py
# Description: Use FeatureToLine function to combine features from two 
#                  street feature classes into a single feature class,
#                  then determine an area of impact around all streets
#                  by buffering

# import system modules 
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data"

#  Set local variables
oldStreets = "majorrds.shp"
newStreets = "habitat_analysis.gdb/futrds"
uptodateStreets = "c:/output/output.gdb/allroads"

# Use FeatureToLine function to combine features into single feature class
arcpy.FeatureToLine_management([oldStreets, newStreets], uptodateStreets,
                               "0.001 Meters", "ATTRIBUTES")

# Use Buffer function to determine area of impact around streets
roadsBuffer = "c:/output/output.gdb/buffer_output"
arcpy.Buffer_analysis(uptodateStreets, roadsBuffer, "50 Feet",
                      "FULL", "ROUND", "ALL")

関連トピック