Network Analyst のライセンスで利用可能。
ネットワーク属性の値は変動する条件に依存する場合があります。たとえば、車両の車高を使用して、低い歩道橋が設置された道路部分を通過できるかを判定できます。現在の気象条件により移動速度が遅くなると、ネットワークの時間コストに影響をおよぼす場合があります。車両の車高に基づく規制やスケール ファクターに基づく移動コストなどのネットワーク解析における変動する要素を、下記の 2 つの方法の内のいずれかを使用してモデリングすることができます。1 つの方法は、高さまたは気象条件に変動があるたびにネットワーク属性を作成するというものです。しかし、この方法は、変更する属性の数が増えるにつれて扱いにくくなります。もう 1 つの方法は、ネットワーク属性を、この属性の変動的な要素を含むパラメーターと一緒に使用するというもので、汎用性があります。
パラメーターとは、特定の解析について変更できる値のプレースホルダーです。それぞれに意味のあるデフォルト値が設定されていますが、必要に応じてユーザーが無効にすることができます。ArcCatalog では、パラメーターは、ネットワーク属性に追加され、属性のエバリュエーターによって参照されます。ArcMap では、ネットワーク解析の設定をするときに、パラメーター値を変更できます。これにより、実行時には式と現在のパラメーター値を使用してネットワーク属性の値を求めることができます。
パラメーター化されたネットワーク属性の機能
パラメーター化されたネットワーク属性にはエバリュエーターが含まれています。エバリュエーターは、パラメーターをそのネットワーク属性だけでなく別のネットワーク属性にも適用して、値の判断に役立てます。
パラメーターの値は実行時に変動する場合があるため、ネットワーク属性の値はデータベースに書き込まれず、必要なときに算出されるだけです。したがって、パラメーター値が変化しても、ネットワーク データセットを再構築する必要はありません。
規制属性のパラメーター
規制の使用法のデフォルト パラメーター
規制属性を作成すると、[規制の使用法] というパラメーターが自動的に追加されます。このパラメーターは、制限を使用するエレメント上の移動が、規制属性によって禁止されるか、回避されるか、優先されるかを指定します。エレメントを回避または優先する場合は、回避または優先するレベルも指定します。具体的には、[規制の使用法] には以下の値のいずれかを割り当てることができます (括弧内の数値については、リストの下で説明しています)。
- 禁止 - (-1) 関連付けられたネットワーク エレメント上の移動は完全に禁止されます。これは、最も一般的な規制の使用法です。
- 回避: 高 - (5) 規制に関連付けられたネットワーク エレメントが解析で使用される可能性は非常に低くなります。
- 回避: 中 - (2) 規制に関連付けられたネットワーク エレメントが解析で使用される可能性は低くなります。
- 回避: 低 - (1.3) 規制に関連付けられたネットワーク エレメントが解析で使用される可能性はやや低くなります。
- 優先: 低 - (0.8) 規制に関連付けられたネットワーク エレメントが解析で使用される可能性はやや高くなります。
- 優先: 中 - (0.5) 規制に関連付けられたネットワーク エレメントが解析で使用される可能性は高くなります。
- 優先: 高 - (0.2) 規制に関連付けられたネットワーク エレメントが解析で使用される可能性は非常に高くなります。
車両特性をモデリングするパラメーター
Network Analyst では、デフォルトのパラメーターである [規制の使用法] が常にすべての規制属性に追加されます。車両特性を設定して、特定の車両が通過できるネットワーク エレメントをより正確に指定するためのパラメーターを追加することもできます。
たとえば、規制属性を車高パラメーターとともに追加して、車両の車高を、高架の下またはトンネルの中の高さ制限を保持する記述子属性と比較することができます。車高が高さ制限を超えている場合は、エッジが禁止されます。これにより、車両に応じて異なるルートが生成されます。下図に示すように、車高が低い車両は、低い高架橋を通るルートをそのままたどることになります。一方、車高が高い車両は高さ制限が低い高架橋を避けて別のルートをとることになります。
このようなシナリオでは、記述子属性と規制属性を作成するとよいでしょう。記述子属性には MaxHeight という名前を付け、規制属性には HeightRestriction という名前を付けることにします。MaxHeight はソース データから高さ制限値を取り込み、HeightRestriction は MaxHeight から値を読み取り、読み取った値を現在の車高を保持するパラメーターと比較することになります。下図は、このプロセスの概要を示したものです。
コスト属性のパラメーター
別のコスト属性を参照してスケーリングすることができる、パラメーター化されたコスト属性を必要とする場合もあります。これは、凍結、霧、豪雨などの荒れ模様の天候が調査エリアを襲い、通常の車の流れが妨げられている場合に有用です。コスト属性にあらかじめパラメーターを用意しておくことにより、移動時間の予想を、走行速度の変化に応じて調整することができます。
2 つのネットワーク属性を作成することが可能です。1 つは DriveTime です。これには、通常の運転時間インピーダンスが格納され、値はソース データ内のフィールドから得られます。もう 1 つは DriveTime_scaled です。これは DriveTime の属性値をとり、その値は、現在のスケール ファクターを保持する DriveTime_scaled 属性のパラメーターによってスケーリングされます。
パラメーター化属性の設定
必要なネットワーク属性を作成したら、パラメーター化属性を設定することができます。このための主要な 2 つの手順は次のとおりです。
- パラメーターをネットワーク属性に追加
- パラメーターを使用するように属性のエバリュエーターを設定します。
この 2 つの手順は、[ネットワーク データセット プロパティ] ダイアログ ボックスの [属性] タブを使用して ArcCatalog で実行します。
パラメーターの追加
パラメーターを作成するには、次の手順に従います。以下に示す例は、規制属性 [HeightRestriction] に合わせてありますが、コスト属性に対しても同じ手順が有効です。
[HeightRestriction] 属性に新しいパラメーター [Vehicle Height] を追加し、デフォルト値として 0 を割り当てます (車高が 0 の場合、車両は一切の高さ制限を受けないと見なされます)。ArcMap でネットワーク解析を実行する際は、パラメーターの値をデフォルトから別の値に変更することができます。
エバリュエーターの設定
パラメーターが追加されたら、エバリュエーターを設計する必要があります。エバリュエーターは、パラメーターを取り込み、さらに定数または別のネットワーク属性 (パラメーターに関係する情報を格納) のいずれかを取り込むものとします。下に示す例では、パラメーター化された規制属性 [HeightRestriction] にはエバリュエーターが割り当てられています。このエバリュエーターは、[Vehicle Height] パラメーターを、ネットワーク エレメントの高さ制限計測値を含む記述子ネットワーク属性 [MaxHeight] と比較します。
この例では関数エバリュエーターが選択されています。以下に示す [関数エバリュエーター] ダイアログ ボックスには、道路ごとに評価される式が表示されています。関数エバリュエーターが [True] を返すときは必ず、ネットワーク エレメントが規制されています。[False] を返すとき、ネットワーク エレメントは規制されないため、解析で使用できます。
比較するために、パラメーター化されたコスト属性 [DriveTime_scaled] は、[DriveTime Factor] パラメーターを使用する関数エバリュエーター (下図参照) で設定されています。エバリュエーターは [DriveTime] コスト属性から運転時間を読み取り、読み取った値を実行時に指定される [DriveTime Factor] の値と掛け算します。
パラメーターの値は実行時にデフォルトの 1 から変更することができます。値を 1.5 に設定すると、運転時間が通常の運転時間より 50 パーセント遅くなります。[DriveTime] の値が 5 分であるネットワーク エレメントの場合、[DriveTime_scaled] の値は 7.5 分になります。
ネットワーク データセットの再構築
関数エバリュエーターは、値をデータベースに格納するのでなく実行時に計算するので、関数エバリュエーターまたは ArcCatalog 内の対応する属性パラメーターを追加または変更した後でネットワーク データセットを再構築する必要はありません。しかし、フィールド エバリュエーターに基づいて関連する属性に変更を加える場合、ネットワーク データセットを再構築して新しい値を使用する必要があります。
ArcCatalog でパラメーター化属性が提供されている場合、ArcMap では属性を使用してネットワーク問題の解析を開始することができます。パラメーターの値をデフォルトから別の値に変更しても、ネットワークを再構築する必要はありません。