OD リンクの生成 (Generate Origin-Destination Links) (解析)

サマリー

起点フィーチャから終点フィーチャへの接続ラインを生成します。 これは、スパイダー ダイアグラムと呼ばれることがよくあります。

OD リンクの生成 (Generate Origin Destination Links)

使用法

  • 起点フィーチャまたは終点フィーチャがラインまたはポリゴンである場合、リンクの生成にはフィーチャの重心が使用されます。

  • 出力フィーチャには、次の属性フィールドが含まれます。

    • ORIG_FID- 起点フィーチャの ObjectID フィールド。
    • ORIG_X- 起点フィーチャ (または重心) の X 座標。
    • ORIG_Y- 起点フィーチャ (または重心) の Y 座標。
    • DEST_FID- 終点フィーチャの ObjectID フィールド。
    • DEST_X- 終点フィーチャ (または重心) の X 座標。
    • DEST_Y- 終点フィーチャ (または重心) の Y 座標。
    • LINK_DIST- 出力リンクの長さ (指定した距離単位で計測)。
    • GROUP_ID- 起点フィーチャおよび終点フィーチャがリンクされたペアの間で共有されるグループ フィールドの値。 起点と終点の両方のグループ フィールドが指定されている場合にのみ、このフィールドが追加されます。
    • COLOR_ID- 起点またはグループを最大でも 8 つの一意の色付きリンクにシンボル化するために使用される数値。 値は 1 ~ 8 の乱数です。
    • LINK_COUNT- 重複しているリンクの数。 これは、重複しているリンクを集約する際に追加されます。
    • 重複しているリンクを集約する際に指定される統計情報フィールドも、出力フィーチャクラスに追加されます。

  • 起点フィーチャおよび終点フィーチャは、同じレイヤーまたはデータセットとして指定できます。 起点と終点に同じデータが使用されると、長さが 0 のラインは Null ジオメトリ エラーになるため、同じオブジェクト ID を使用して起点から終点フィーチャにリンクが生成されることはありません。

  • このツールは、1 対 1 と 1 対多の両方のリレーションシップに使用できます。 たとえば、自動車の窃盗を回収場所 (1 対 1) にリンクしたり、近接解析を行って中央本部の場所と複数の地域オフィスの場所の間の距離を把握 (1 対多) したりできます。

  • 出力リンク レイヤーには、分析結果の視覚化に役立つ、次のチャートが含まれます。

    • グループ フィールドを指定した場合、各グループ ID の数のバー チャート
    • 各起点 ID または各グループ ID のリンク長の合計のバー チャート (グループ フィールドを指定した場合)。 これは、一部の起点またはグループから終点への総距離が長いかどうか、あるいは短いかどうかを確認するために役立ちます。
    • 各起点 ID または各グループ ID の平均リンク長のバー チャート (グループ フィールドを指定した場合)。 これは、起点フィーチャまたはグループと、それらからリンクされた終点の間の平均距離を確認するために役立ちます。
    • 各起点 ID または各グループ ID のリンク長の分布の箱ひげ図 (グループ フィールドを指定した場合)。 これは、起点またはグループのリンクから終点へのほとんどのリンクが短いかどうか、あるいは長いかどうか、およびそれらのリンク長の分布の範囲とサマリーを確認するために役立ちます。 起点 ID またはグループ ID が垂直方向に短い箱を持つ場合は、その起点またはグループから、リンクされたすべての終点への距離が類似していたことを意味します。 起点 ID またはグループ ID が Y 軸の大きい位置に箱を持つ場合、ほとんどが長いリンクです。

パラメーター

ラベル説明データ タイプ
起点フィーチャ

リンクの生成元となる入力フィーチャ。

Feature Layer
終点フィーチャ

リンクの生成先となる終点フィーチャ。

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

出力リンクを含む出力ポリライン フィーチャクラス。

Feature Class
起点グループ フィールド
(オプション)

グループ化に使用する入力起点フィーチャの属性フィールド。 起点と終点の間で同じグループ フィールド値を持つフィーチャは、リンクで接続されます。

Field
終点グループ フィールド
(オプション)

グループ化に使用する入力終点フィーチャの属性フィールド。 起点と終点の間で同じグループ フィールド値を持つフィーチャは、リンクで接続されます。

Field
ライン タイプ
(オプション)

出力リンクを生成する際に、楕円体 (測地線) または直交投影地球 (平面) のどちらで最短パスを使用するかを指定します。 測地線は、その長さが約 50 キロメートルを超える場合、緩いカーブを持ちます。これは、2D マップ上に表示される場合、地球の曲率によって、2 つのポイント間の最短距離が曲がっているように見えるためです。

データが、距離の計測に適さない座標系 (Web メルカトル、任意の地理座標系など) で格納されている場合や、データセットが広い地理範囲にまたがる場合、[測地線] ライン タイプを使用することをお勧めします。

  • 平面フィーチャ間で平面距離が使用されます。 これがデフォルトです。
  • 測地線測地距離はフィーチャ間で使用されます。 このライン タイプでは、楕円体の曲率を考慮して、日付変更線と極の近くのデータを正確に処理します。
String
最寄りの終点の数の終点の数
(オプション)

1 つの起点フィーチャから最寄りの終点フィーチャに対して生成されるリンクの最大数。 数値を指定しない場合、ツールはすべての起点フィーチャと終点フィーチャの間のリンクを生成します。

たとえば、1 という値を使用すると、各起点フィーチャとその最も近くにある 1 つの終点フィーチャの間のリンクが生成されます。

Double
検索距離
(オプション)

出力にリンク フィーチャを生成する起点フィーチャと終点フィーチャの間の最長距離。 検索距離の単位は、[距離単位] パラメーターで指定されます。 検索距離を指定しない場合、ツールは、起点フィーチャと終点フィーチャの間の距離に関係なく、すべての起点フィーチャと終点フィーチャの間のリンクを生成します。

Double
距離単位

リンクの長さの計測に使用する単位を指定します。 各リンクの距離は LINK_DIST フィールドに表示されます。 距離単位を指定しないと、起点フィーチャの座標系の距離単位が使用されます。

  • キロメートル起点と終点の間の距離がキロメートルで計算されます。
  • メートル起点と終点の間の距離がメートルで計算されます。
  • マイル起点と終点の間の距離がマイルで計算されます。
  • 海里起点と終点の間の距離が海里で計算されます。
  • ヤード起点と終点の間の距離がヤードで計算されます。
  • フィート起点と終点の間の距離がフィートで計算されます。
String
重複リンクの集約
(オプション)

重複リンクが集約されるかどうかを指定します。

  • オン - 開始ポイントの座標が同じ場合、重複リンクが集約されます。
  • オフ - 重複リンクが集約されません。 これがデフォルトです。
Boolean
集計フィールド
(オプション)

属性値を含み、特定の統計の計算に使用される数値フィールドを指定します。 複数の統計とフィールドの組み合わせを指定できます。 すべての計算から NULL 値が除外されます。

テキスト属性フィールドは、最初と最後の統計を使用して集計されます。 数値属性フィールドは、任意の統計を使用して集計されます。

使用できる統計タイプは次のとおりです。

  • [合計] - 指定したフィールドの値が加算されます。
  • [平均] - 指定したフィールドの平均が計算されます。
  • [最小] - 指定したフィールドのすべてのレコードから最も小さい値を検出します。
  • [最大] - 指定したフィールドのすべてのレコードから最も大きい値を検出します。
  • [範囲] - 指定したフィールドの値の範囲 (最大 - 最小) が計算されます。
  • [標準偏差] - 指定したフィールド内の値の標準偏差が計算されます。
  • [個数] - 統計情報の計算に含まれる値の数を検出します。 NULL 値以外の値の数がカウントされます。 フィールド内の NULL 値の数を調べるには、対象となるフィールドに対するカウントを作成し、NULL 値を含まない別のフィールド (OID など) に対するカウントを作成して、この 2 つの値の差を求めます。
  • [最初] - 入力の最初のレコードの指定したフィールドの値を使用します。
  • [最後] - 入力の最後のレコードの指定したフィールドの値を使用します。
  • [中央値] - 指定したフィールドのすべてのレコードの中央値を計算します。
  • [分散] - 指定したフィールドのすべてのレコードの分散を計算します。
  • [個別値] - 指定したフィールドの個別値の数を数えます。
Value Table

arcpy.analysis.GenerateOriginDestinationLinks(origin_features, destination_features, out_feature_class, {origin_group_field}, {destination_group_field}, {line_type}, {num_nearest}, {search_distance}, distance_unit, {aggregate_links}, {sum_fields})
名前説明データ タイプ
origin_features

リンクの生成元となる入力フィーチャ。

Feature Layer
destination_features

リンクの生成先となる終点フィーチャ。

Feature Layer
out_feature_class

出力リンクを含む出力ポリライン フィーチャクラス。

Feature Class
origin_group_field
(オプション)

グループ化に使用する入力起点フィーチャの属性フィールド。 起点と終点の間で同じグループ フィールド値を持つフィーチャは、リンクで接続されます。

Field
destination_group_field
(オプション)

グループ化に使用する入力終点フィーチャの属性フィールド。 起点と終点の間で同じグループ フィールド値を持つフィーチャは、リンクで接続されます。

Field
line_type
(オプション)

出力リンクを生成する際に、楕円体 (測地線) または直交投影地球 (平面) のどちらで最短パスを使用するかを指定します。 測地線は、その長さが約 50 キロメートルを超える場合、緩いカーブを持ちます。これは、2D マップ上に表示される場合、地球の曲率によって、2 つのポイント間の最短距離が曲がっているように見えるためです。

データが、距離の計測に適さない座標系 (Web メルカトル、任意の地理座標系など) で格納されている場合や、データセットが広い地理範囲にまたがる場合、GEODESIC ライン タイプを使用することをお勧めします。

  • PLANARフィーチャ間で平面距離が使用されます。 これがデフォルトです。
  • GEODESIC測地距離はフィーチャ間で使用されます。 このライン タイプでは、楕円体の曲率を考慮して、日付変更線と極の近くのデータを正確に処理します。
String
num_nearest
(オプション)

1 つの起点フィーチャから最寄りの終点フィーチャに対して生成されるリンクの最大数。 数値を指定しない場合、ツールはすべての起点フィーチャと終点フィーチャの間のリンクを生成します。

たとえば、1 という値を使用すると、各起点フィーチャとその最も近くにある 1 つの終点フィーチャの間のリンクが生成されます。

Double
search_distance
(オプション)

出力にリンク フィーチャを生成する起点フィーチャと終点フィーチャの間の最長距離。 検索距離の単位は、[距離単位] パラメーターで指定されます。 検索距離を指定しない場合、ツールは、起点フィーチャと終点フィーチャの間の距離に関係なく、すべての起点フィーチャと終点フィーチャの間のリンクを生成します。

Double
distance_unit

リンクの長さの計測に使用する単位を指定します。 各リンクの距離は LINK_DIST フィールドに表示されます。 距離単位を指定しないと、起点フィーチャの座標系の距離単位が使用されます。

  • KILOMETERS起点と終点の間の距離がキロメートルで計算されます。
  • METERS起点と終点の間の距離がメートルで計算されます。
  • MILES起点と終点の間の距離がマイルで計算されます。
  • NAUTICALMILES起点と終点の間の距離が海里で計算されます。
  • YARDS起点と終点の間の距離がヤードで計算されます。
  • FEET起点と終点の間の距離がフィートで計算されます。
String
aggregate_links
(オプション)

重複リンクが集約されるかどうかを指定します。

  • AGGREGATE_OVERLAPPING開始ポイントの座標が同じ場合、重複リンクが集約されます。
  • NO_AGGREGATE重複リンクが集約されません。 これがデフォルトです。
Boolean
sum_fields
[sum_fields,...]
(オプション)

属性値を含み、特定の統計の計算に使用される数値フィールドを指定します。 複数の統計とフィールドの組み合わせを指定できます。 すべての計算から NULL 値が除外されます。

テキスト属性フィールドは、最初と最後の統計を使用して集計されます。 数値属性フィールドは、任意の統計を使用して集計されます。

使用できる統計タイプは次のとおりです。

  • SUM - 指定したフィールドの値が合計されます。
  • MEAN - 指定したフィールドの平均が計算されます。
  • MIN - 指定したフィールドのすべてのレコードから最も小さい値を検出します。
  • MAX - 指定したフィールドのすべてのレコードから最も大きい値を検出します。
  • RANGE - 指定したフィールドの値の範囲 (最大 - 最小) が計算されます。
  • STD - 指定したフィールド内の値の標準偏差が計算されます。
  • COUNT - 統計情報の計算に含まれる値の数を検出します。 NULL 値以外の値の数がカウントされます。 フィールド内の NULL 値の数を調べるには、対象となるフィールドに対するカウントを作成し、NULL 値を含まない別のフィールド (OID など) に対するカウントを作成して、この 2 つの値の差を求めます。
  • FIRST - 入力の最初のレコードの指定したフィールドの値を使用します。
  • LAST - 入力の最後のレコードの指定したフィールドの値を使用します。
  • MEDIAN - 指定したフィールドのすべてのレコードの中央値を計算します。
  • VARIANCE - 指定したフィールドのすべてのレコードの分散を計算します。
  • UNIQUE - 指定したフィールドの個別値の数を数えます。
Value Table

コードのサンプル

GenerateOriginDestinationLinks (OD リンクの生成) の例 1 (Python ウィンドウ)

Python ウィンドウで GenerateOriginDestinationLinks 関数を使用する方法を、以下に示します。

import arcpy
arcpy.env.workspace = "C:/data/input/genODLinks.gdb"

arcpy.analysis.GenerateOriginDestinationLinks(
    "Station_100", "City_FireResponses", "Station_100_OD_Links")
GenerateOriginDestinationLinks (OD リンクの生成) の例 2 (スタンドアロン スクリプト)

次の Python スクリプトは、スタンドアロン スクリプトで GenerateOriginDestinationLinks 関数を使用する方法を示しています。

# Name: GenerateODLinks.py
# Description: Finds 10 nearest links within 25 miles from the origin fire
#              stations to the destination response points.

# import system modules
import arcpy

# set workspace environment
arcpy.env.workspace = "C:/data/input/genODLinks.gdb"

# set required parameters 
origin_features = "Station_100"
destination_features = "City_FireResponses"
out_feature_class = "Station_100_OD_Links"

# optional parameters
origin_group_field = 'STA_NUM'
destination_group_field = 'District'
line_type = 'PLANAR'
num_nearest = 10
search_distance = 25
distance_unit = 'MILES'
aggregate_links='AGGREGATE_OVERLAPPING'
sum_fields = 'TimeSpentOnCall SUM'

# make links between fire stations and call response points
arcpy.analysis.GenerateOriginDestinationLinks(
    origin_features, destination_features, out_feature_class,
    origin_group_field, destination_group_field, line_type, num_nearest,
    search_distance, distance_unit, aggregate_links, sum_fields)

ライセンス情報

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

関連トピック