エネルギー方向レイアウトの適用 (Apply Force Directed Layout) (ネットワーク ダイアグラム)

概要

ネットワーク ダイアグラムに含まれるループを強調します。

エネルギー方向レイアウト アルゴリズムの詳細

注意:

編集セッションを開いている場合、このツールを実行する前に編集内容を保存する必要があります。これにより、ダイアグラムはデータベース内のネットワーク トポロジに行われた最新の変更内容を反映するようになります。編集内容を保存できなかった場合、編集内容はダイアグラムに反映されません。

メモ:

各レイアウト アルゴリズムにはデフォルトのパラメーター値が含まれます。指定されていない限り、デフォルトのパラメーター値が使用されます。入力ネットワーク ダイアグラムが別のパラメーター値で構成されたこのレイアウトのテンプレートに基づいていない場合は、代わりにその値が使用されます。

使用法

  • このツールは、エンタープライズ ジオデータベース内のユーティリティ ネットワークまたはトレース ネットワークへのデータベース接続を使用している場合には使用できません。関連する公開されたユーティリティ ネットワーク サービス、トレース ネットワーク サービス、またはファイル ジオデータベースのユーティリティ ネットワークあるいはトレース ネットワークを使用してください。

  • 入力ネットワーク ダイアグラム レイヤーは、ファイル ジオデータベース内のユーティリティ ネットワークまたはトレース ネットワーク、あるいはネットワーク ダイアグラム サービスから取得する必要があります。

  • このレイアウト アルゴリズムは、物理的相似法を用いてエネルギーを局所的に最小化する力学系を識別して、グラフを描画します。力学系の平衡状態 (各ダイアグラム ジャンクション上で合力がゼロになる場所) が検索されます。

  • このアルゴリズムでは、ネットワーク ダイアグラムに含まれているループが強調される傾向があるため、一般に、上下水道管やガス管などの、網の目のように細かなネットワークを管理するオペレーターが使用します。

  • 非常に大きなダイアグラムの操作時は、サーバー上で非同期モードのレイアウトを適用することを検討してください。

構文

arcpy.nd.ApplyForceDirectedLayout(in_network_diagram_layer, {are_containers_preserved}, {iterations_number}, {repel_factor}, {degree_freedom}, {breakpoint_position}, {edge_display_type}, {run_async})
パラメーター説明データ タイプ
in_network_diagram_layer

レイアウトを適用するネットワーク ダイアグラム。

Diagram Layer
are_containers_preserved
(オプション)

アルゴリズムが格納器を処理する方法を指定します。

  • PRESERVE_CONTAINERS 格納器が保持されるように、ダイアグラムの上位グラフでレイアウト アルゴリズムを実行します。
  • IGNORE_CONTAINERSダイアグラム内の格納物フィーチャと非格納物フィーチャの両方でレイアウト アルゴリズムを実行します。これがデフォルトです。
Boolean
iterations_number
(オプション)

処理を反復する回数。デフォルトは 20 です。

Long
repel_factor
(オプション)

近接しているダイアグラム ジャンクション間の距離を追加します。反発係数が大きいほど、ほぼ重なるダイアグラム ジャンクションの間隔が広がります。デフォルトは 1 です。

Double
degree_freedom
(オプション)

アルゴリズムの各反復中にダイアグラム ジャンクションが移動する範囲を指定します。

  • LOWダイアグラム ジャンクションが移動する範囲が制限されます。これがデフォルトです。
  • HIGHダイアグラム ジャンクションが移動する範囲が広くなります。
  • MEDIUMダイアグラム ジャンクションが移動する範囲が中程度になります。
String
breakpoint_position
(オプション)

[エッジ表示タイプ][曲線エッジ] (Python では edges_display_type = "CURVED_EDGES") に設定されている場合、曲線エッジのジオメトリを計算するために、ダイアグラム エッジに沿って挿入される 2 つの変曲点の相対位置。15 ~ 40 の範囲のパーセントで、デフォルトは 30 です。たとえば、[ブレーク ポイントの相対位置 (%)] パラメーター値 N が 15 ~ 40 の場合、次のことが当てはまります。

  • 水平ツリーの場合、X はエッジの From ジャンクションの X 座標、Y はエッジの To ジャンクションの Y 座標です。
    • 最初の変曲点は、[XY] セグメントの長さの N% に配置されます。
    • 2 番目の変曲点は、[XY] セグメントの長さの (100 - N)% に配置されます。
  • 垂直ツリーの場合、Y はエッジの From ジャンクションの Y 座標、X はエッジの To ジャンクションの X 座標です。
    • 最初の変曲点は、[YX] セグメントの長さの N% に配置されます。
    • 2 番目の変曲点は、[XY] セグメントの長さの (100 - N)% に配置されます。

メモ:

上記の From ジャンクションと To ジャンクションの概念はツリー方向を基準にしています。ネットワーク フィーチャまたはオブジェクトのエッジの実際のトポロジとは関係ありません。

[エッジ表示タイプ] パラメーターが [標準エッジ] (Python では edges_display_type = "REGULAR_EDGES") に設定されている場合、このパラメーターは無視されます。

Double
edge_display_type
(オプション)

ダイアグラム エッジの表示タイプを指定します。

  • REGULAR_EDGESすべてのダイアグラム エッジが直線として表示されます。これがデフォルトです。
  • CURVED_EDGESすべてのダイアグラム エッジが曲線になります。
String
run_async
(オプション)

レイアウト アルゴリズムがサーバー上で非同期または同期で実行されるかどうかを指定します。

  • RUN_ASYNCHRONOUSLYサーバー上でレイアウト アルゴリズムを非同期で実行します。このオプションは、長いタイムアウト時間でレイアウト アルゴリズムを実行するサーバー リソース向けです。非同期での実行は、長時間を要し、サーバーのタイムアウトを超える可能性があるレイアウト (例: 部分オーバーラップ エッジ) を実行する場合や大規模なダイアグラム (例: フィーチャの数が 25,000 を上回る) を適用する場合にお勧めします。
  • RUN_SYNCHRONOUSLYサーバー上でレイアウト アルゴリズムを同期で実行します。実行時間がサービスのタイムアウト (デフォルトで 600 秒) を超えた場合、完了せずに失敗します。これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
out_network_diagram_layer

更新されたネットワーク ダイアグラム レイヤー。

ダイアグラム レイヤー

コードのサンプル

ApplyForceDirectedLayout (エネルギー方向レイアウトの適用) の例 (Python ウィンドウ)

[一時的なダイアグラム] という名前のダイアグラムにエネルギー方向レイアウト アルゴリズムを適用します。

import arcpy
arcpy.ApplyForceDirectedLayout_nd("Temporary Diagram", "PRESERVE_CONTAINERS", 
                                  20, 1, "LOW", 25, "CURVED_EDGES", 
                                  "RUN_SYNCHRONOUSLY")

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: いいえ
  • Standard: はい
  • Advanced: はい

関連トピック