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 軸の大きい位置に箱を持つ場合、ほとんどが長いリンクです。

構文

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

  • 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 など) に対するカウントを作成して、NULL 値を含まないフィールドから NULL 値を含むフィールドを減算します。
  • FIRST - 入力の最初のレコードを検出し、その指定されたフィールドの値を使用します。
  • LAST - 入力の最後のレコードを検出し、その指定されたフィールドの値を使用します。
  • MEDIAN - 指定されたフィールドのすべてのレコードの中央値を計算します。
  • VARIANCE - 指定されたフィールドのすべてのレコードの分散を計算します。
  • UNIQUE - 指定されたフィールドの個別値の数を数えます。
Value Table

コードのサンプル

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

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

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

arcpy.GenerateOriginDestinationLinks_analysis(
    "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.GenerateOriginDestinationLinks_analysis(
    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: はい
  • Standard: はい
  • Advanced: はい

関連トピック