ネットワークで使用するエバリュエーターの種類

Network Analyst のライセンスで利用可能。

ネットワークに定義されている各属性は、ネットワークに含まれる各ソースの値を持つ必要があります。 エバリュエーターは、各ソースの属性の値を割り当てます。 フィールド スクリプト エバリュエーターは、ネットワーク ソースのフィールドのエバリュエーターをネットワーク属性、ソース、および方向の組み合わせに割り当てます。 さらに、定数エバリュエーター、関数エバリュエーター、エレメント スクリプト エバリュエーターなど、他の種類のエバリュエーターも存在します。

次に、エバリュエーターについて説明します。

エバリュエーター説明

フィールド スクリプト

ネットワーク属性に値を割り当てる最も一般的な方法は、ネットワーク データセットの構築時にネットワーク属性の値となる 1 つのフィールドを指定する方法です。 たとえば、メートルで示した各道路セグメントの長さのように、値が測定値を説明する場合にフィールド エバリュエーターを使用できます。

ヒント:

コスト属性に距離の単位が含まれている場合、フィールド スクリプト エバリュエーターで Shape フィールドを使用すると、ライン フィーチャの測地線の長さがネットワーク属性の単位で返されます。 これは、システム管理の Shape_Length フィールドの使用とは対照的です。このフィールドには、フィーチャクラスの座標系における各ライン フィーチャの平面線長が格納され、その長さは座標系の歪みの影響を受けます。

Shape および Shape_Length フィールドはファイル ジオデータベース フィーチャクラスに存在することに注意してください。 エンタープライズ ジオデータベースの場合、ジオメトリおよび長さフィールドの名前が、お使いの DBMS によって異なることがあります。

[フィールド エバリュエーター] は、1 つのフィールドの代わりに、値としてフィールド式を指定することができます。 たとえば、ネットワーク属性の単位がメートルで、ソース データの単位がフィートの場合、ネットワーク データセットの構築時にフィートをメートルに変換する式を作成できます。

ヒント:

VBScript で書かれたフィールド式エバリュエーターは Python で書かれたものよりも実行速度が速くなります。 こうした理由から VBScript の使用をお勧めしますが、スクリプト言語を選ぶ際に次の点を認識する必要があります。

  • ほとんどの ArcGIS 製品は VBScript や Python を解釈することができます。
  • ArcGIS Server (Linux) は Python のみを解釈することができます。
  • フィールド式エバリュエーターのスクリプトはネットワーク データベースが構築された時に実行されます。
これらのポイントの論理的な意味は次のとおりです。
  • ネットワーク データセットを ArcGIS Server (Linux) 以外の ArcGIS 製品を使って構築しようとする場合は、スクリプトを VBScript で書くことができます。
  • ネットワーク データセットを ArcGIS Server (Linux) 上で構築しようとする場合は、Python でスクリプトを書かなくてはなりません。
  • ネットワーク データセットを ArcGIS Server (Linux) 以外の ArcGIS 製品を使って構築してから、ArcGIS Server (Linux) を使用して、構築されたネットワーク データセットを参照するネットワーク解析を実行しようとする場合は、VBScript でスクリプトを書くことができます。

定数

属性には、定数を割り当てることができます。 コスト属性、記述子属性、階層属性の値は数値です。規制属性では、ブール式データ タイプの [規制を使用] または [規制を無視] になります。

関数

関数エバリュエーターは属性値を計算するために、別の属性値、パラメーター値または定数で簡単な数学演算または論理比較を実行します。 属性タイプが数値の場合は、別のネットワーク属性と定数またはパラメーター値の乗算、除算、加算、または減算によって値が導出されます。 属性タイプがブール値の場合は、別の属性値とパラメーター値または定数を比較する式 (MaxHeight < VehicleHeight など) から属性値が求められます。

注意:
加算演算子 + と減算演算子 - はコスト属性で使用できません。

加算 + 演算子および減算 - 演算子は ArcGIS Pro 2.3 で追加されました。 エバリュエーターは、古いバージョンのソフトウェアではエラーを生成します。

ターン カテゴリ

ターン カテゴリ エバリュエーターは、2 つのエッジ エレメントの間を移動するためのデフォルトとなるコスト値を割り当てます。 コストは 2 つのエッジ間の相対角度と通過するエッジの道路クラス (幹線道路、一般道路、生活道路) に基づきます。 また、コストは、ターン移動によって横切られる交差点のカテゴリの影響を受けることもあります。 たとえば、ターン カテゴリ エバリュエーターを使用して、すべての左折 (左折かどうかは相対角度によって決定されます) について、生活道路から一般道路への左折を生活道路間の左折に比べて時間を要する設定にすることができます。 また、2 本の一般道路の交差点を直進する際に 10 秒間の遅延を追加するなど、他の移動に対して追加のコストを指定することもできます。

エレメント スクリプト

属性を VBScript または Python スクリプトの実行結果から割り当てることができます。 これにより、複雑な属性をモデリングできます。 他のエバリュエーターとは異なり、エレメント スクリプト エバリュエーターはネットワークの構築時に値を割り当てません。 その代わりに、解析中に、ネットワーク解析でその属性の使用が必要になった場合に値を割り当てます。 属性の値が絶えず変化する場合は、エレメント スクリプト エバリュエーターを使用することにより、それぞれのネットワーク解析についてその属性を確実に更新することができます。

ヒント:

エレメント スクリプト エバリュエーターでは、その値が解析時に計算されるので、解析のパフォーマンスに悪影響をおよぼす傾向があります。 可能であれば、他のエバリュエーターを使用してください。

VBScript で書かれたエレメント スクリプト エバリュエーターは Python で書かれたものよりも実行速度が速くなります。 こうした理由から VBScript の使用をお勧めしますが、スクリプト言語を選ぶ際に次の点を認識する必要があります。

  • ほとんどの ArcGIS 製品は VBScript や Python を解釈することができます。
  • ArcGIS Server (Linux) は Python のみを解釈することができます。
  • スクリプト エバリュエーターのスクリプトはネットワーク解析レイヤーを解析するときに実行されます。
これらのポイントの論理的な意味は次のとおりです。
  • ArcGIS Server (Linux) 以外の ArcGIS 製品を使ってネットワーク解析を実行しようとする場合は、スクリプトを VBScript で書くことができます。
  • ArcGIS Server (Linux) 上で解析を実行しようとする場合は、Python でスクリプトを書かなくてはなりません。

交通量

交通量エバリュエーターは、交通量データに使用します。 履歴データまたはライブデータを使用して、特定の曜日および時刻の移動時間を提供します。 特定時刻の移動時間が利用できないときに平日および週末の移動時間を提供する代替コスト属性が含まれています。 交通量エバリュエーターには、ルート解析でのストップや配車ルート解析での訪問を順序付ける場合や、解析で到着または出発時間が指定されない場合に、Network Analyst で参照される、時間に依存しないコスト属性も含まれます。

交通量の詳細

公共交通機関

公共交通機関エバリュエーターは、スケジュールされた公共交通サービスに基づいて、公共交通機関のライン セグメントに沿って移動時間を計算します。 返される移動時間には、スケジュールされた次の移動が開始するまでの待ち時間と、公共交通ライン セグメントの端から端への移動時間が含まれます。 このエバリュエーターを使用して、公共交通機関で移動する旅行者をモデル化します。 道路を走行するバスの移動時間をモデル化するには不向きです。

公共交通機関エバリュエーターは、ネットワーク データセットのフィーチャ データセットとジオデータベースに、Network Analyst 公共交通機関データ モデルで必要とされるすべてのフィーチャクラスとテーブルが含まれている場合に、エッジ ソース上の時間ベースのコスト属性 (LineVariantElements) に対してのみ使用できます。

公共交通機関エバリュエーターの詳細

公共交通機関を使用したネットワーク解析についての詳細

デフォルトと同じ

[ソース] カテゴリには、デフォルトのエバリュエーター タイプが存在します。 ソースのエバリュエーター タイプが [デフォルトと同じ] に設定されている場合は、デフォルトとして設定されているエバリュエーターが使用されます。

順方向と同じ

[エッジ] カテゴリのソースのエバリュエーター タイプが [順方向と同じ] に設定されている場合は、ソース フィーチャ [道路 (順方向)] で使用されるエバリュエーターが使用されます。

注意:

加えた変更によりネットワーク データセットがソース フィーチャクラスにアクセスする必要が生じた場合、ネットワーク データセットを再構築する必要があります。 たとえば、ソース フィーチャクラスから時間コストを取得するフィールド エバリュエーターを作成した場合、ネットワークを再構築する必要があります。 ソース フィーチャのジオメトリを変更した場合、ネットワーク データセットを再構築する必要があります。 ただし、他のタイプのエバリュエーターはソース フィーチャクラスから直接情報を取得しないため、これらのエバリュエーターでネットワークを再構築する必要はありません。