Skip To Content

ネットワーク データセットの作成

データの取得

このチュートリアルのデータは、ダウンロードして使用できます。

  1. データ ダウンロード ページに移動します。
  2. [ダウンロード] ボタンをクリックしてファイルをローカルに保存します。
  3. ダウンロードしたファイルを展開します。

マップの作成

  1. ArcGIS Pro を開きます。
  2. [Map.aptx] テンプレートに基づいて新しいプロジェクトを作成します。

    マップを含む新しいプロジェクトが表示されます。

ソース フィーチャクラスの確認

次に、[Streets] フィーチャクラスと [Walking_Pathways] フィーチャクラスをマップに追加します。

  1. [カタログ] ウィンドウで、[フォルダー] > [Tutorial] > [CreateNetworkDataset] > [SanDiego.gdb] > [Transportation] の順に展開します。
  2. [Streets][Walking_Pathways] をドラッグしてマップ上に配置します。

    両方のフィーチャクラスが [コンテンツ] ウィンドウとマップに追加されます。

  3. [コンテンツ] ウィンドウで、[Streets] レイヤーを右クリックして [属性テーブル] を選択します。
    1. それぞれのフィールドとこれらのフィールド内の値を確認します。これらのフィールドの多くは、ネットワーク データセットで一部の機能に使用されます。

      FT_MinutesTF_MinutesKPHMeters などのフィールドを使用すると、各エッジの通過にかかるコストをネットワーク データセットに通知するようにコスト属性を設定できます。これらのフィールドは通常、倍精度型または浮動小数型のフィールドです。

      F_ZLEV フィールドと T_ZLEV フィールドは、異なるレベルの道路を定義する場合に使用します。これらのフィールドを使用すると、高さが異なるために 1 本の道路から別の道路に直接ターンできない陸橋や地下道などの構造物を適切に設定することができます。これらのフィールドについては、ネットワーク データセットの作成と高度モデルの選択の説明箇所で後から取り上げます。

      FUNC_CLASS フィールドは、各道路にカテゴリを割り当てる整数フィールドです。このフィールドは、ネットワーク データセットに関する階層属性を設定する場合に使用します。このチュートリアルで後から、階層と併せてこのフィールドをもう一度取り上げます。

      これ以外にも、PAVEDAR_PEDESTAR_BUSAR_AUTODIR_TRAVELTF_HeightLimit_MetersFT_HeightLimit_Meters などのフィールドがあります。これらのフィールドは、特定の状況で一部の道路の通行を禁止する規制を設定する場合に使用します。これらのフィールドのほとんどは、値が Y または N になります。DIR_TRAVEL フィールドの値 (FT や TF など) は、一方通行の規制を設定する場合に使用します。FT_HeightLimit_Meters フィールドと TF_HeightLimit_Meters フィールドの値は、ほとんどの場合が NULL 値であり、一部のフィーチャには数字が入力されます。これら 2 つのフィールドは、パラメーター化規制という特殊な規制を設定する場合に使用します。高さ制限を設定すると、観光バスの車高を解析設定で指定できます。また、車高が原因で観光バスが一部の道路を通行できない場合は、ネットワーク データセットでその道路を規制することができます。

  4. 確認が終了したら、属性テーブルを閉じます。

ネットワーク データセットの作成

[ネットワーク データセットの作成 (Create Network Dataset)] ジオプロセシング ツールを使用して、基本的なネットワーク データセットを作成します。

  1. [解析] タブの [ジオプロセシング] グループで、[ツール] をクリックして [ジオプロセシング] ウィンドウを開きます。
  2. [ジオプロセシング] ウィンドウの検索バーをクリックして「Create Network Dataset」と入力します。
  3. 最初に表示された結果をクリックして [ネットワーク データセットの作成 (Create Network Dataset)] ジオプロセシング ツールを開きます。
  4. [ターゲット フィーチャ データセット] パラメーターで [参照] 参照 ボタンをクリックします。
  5. [SanDiego.gdb] > [Transportation] の順に選択して [OK] をクリックします。

    [Transportation] フィーチャ データセットが [ターゲット フィーチャ データセット] パラメーターに取り込まれます。

  6. [ネットワーク データセット名] パラメーターに「NewSanDiego_ND」と入力します。
  7. [ソース フィーチャクラス] パラメーターで、[Streets] のチェックボックスだけをオンにします。

    これで、[Streets] だけがネットワーク データセットの一部になり、[Walking_Pathways][Signposts] は除外されます。このチュートリアルで後からネットワーク データセットにフィーチャと機能をさらに追加します。

  8. [標高モデル] パラメーターは、デフォルト値の [Elevation_Fields] をそのまま使用します。
  9. ウィンドウの下部にある [実行] 実行 をクリックします。
    [ネットワーク データセットの作成 (Create Network Dataset)] ジオプロセシング ツールのダイアログ ボックス

    このツールを終了すると、[NewSanDiego_ND] という新しいネットワーク データセットがマップに追加されます。

  10. マップ上で [NewSanDiego_ND] レイヤーを右クリックし、[削除] を選択して、このネットワーク データセット レイヤーをマップから削除します。

    ネットワーク データセット レイヤーがマップ内に存在する間は、ネットワーク データセットのプロパティを編集することができません。このチュートリアルの後続のセクションに進むには、マップからレイヤーを削除しておく必要があります。

ネットワーク ソースの追加と接続性ポリシーの設定

最初に、[Streets] フィーチャクラスのみをネットワーク ソースにして、ネットワーク データセットを作成しました。ここで、[Walking_Pathways] フィーチャクラスをネットワーク データセットに追加し、どちらのネットワーク ソースにも適したグループおよび鉛直接続性ポリシーを設定します。

ネットワーク データセットを作成したら、そのネットワーク データセットのプロパティ ページですべての編集を行います。

  1. [カタログ] ウィンドウで、[NewSanDiego_ND] ネットワーク データセット ネットワーク データセットを右クリックして [プロパティ] を選択し、[ネットワーク データセット プロパティ] ダイアログ ボックスを開きます。
  2. [ソースの設定] > [ソース] の順にクリックします。

    ネットワーク データセットに現在含まれているすべてのソース フィーチャクラスがページに表示されます。

  3. ダイアログ ボックスの右上隅にある [ソースの追加/削除] ボタンをクリックします。

    1 つのエッジ ソースと 1 つのジャンクション ソースがすでに存在します。このジャンクション ソースは、ネットワーク データセットで作成および管理されているデフォルトのジャンクション フィーチャクラスです。

    [ソースの追加/削除] ダイアログ ボックスが表示されます。

  4. [ソースの追加/削除] ダイアログ ボックスで、[Walking_Pathways] の横にあるチェックボックスをオンにして [OK] をクリックします。
    ダイアログ ボックスでソースを追加する操作

    フィーチャ データセットに含まれている他のポリライン フィーチャクラスとポリゴン フィーチャクラスも [ソースの追加/削除] ダイアログ ボックスに表示されます。別々の役割を果たす多数のエッジ ソースとジャンクション ソースを 1 つのネットワーク データセットに含めることができます。ここで、[Walking_Pathways] のチェックボックスだけをオンにします。

    [OK] をクリックすると、[Walking_Pathways] がネットワーク データセット ソースとして表示されます。

  5. [鉛直接続性] タブをクリックします。
    [ネットワーク データセット プロパティ] の
    メモ:

    ソースごとに別々の標高モデルを使用することはできません。[Walking_Pathways] には Z 座標を使用できず、[Streets] には高度フィールドを使用できません。すべてのネットワーク データセット ソースで同じ高度モデルを使用する必要があります。ネットワーク データセットで Z 座標または高度フィールドを使用する方法の詳細については、「接続性について」をご参照ください。

    と同じように、グループ化されています。
  6. [Streets (From Node)] および [Walking_Pathways (From Node)] のドロップダウン リストで、プロパティを [なし] から [F_ZLEV] に変更します。
  7. [Streets (To Node)] および [Walking_Pathways (To Node)] のドロップダウン リストで、プロパティを [なし] から [T_ZLEV] に変更します。

    From ノード (始点ノード) および To ノード (終点ノード) の概念は、ライン フィーチャのデジタイズ方向に由来しています。From ノードはラインの始点にあり、To ノードはラインの終点にあります。同様に、Along 方向 (順方向) はラインのデジタイズ方向に移動することを意味し、Against 方向 (逆方向) はラインのデジタイズ方向とは逆の方向に移動することを意味します。

  8. [グループ接続性] タブをクリックします。
    [ネットワーク データセット プロパティ] の [グループ接続性] タブ
  9. [Streets][ポリシー] のドロップダウン リストをクリックし、オプションをメモしておきます。ただし、何も変更を加えないでください。
  10. [ネットワーク データセット プロパティ] ダイアログ ボックスの [OK] をクリックして実施した変更内容を確定し、ダイアログ ボックスを閉じます。

コストの追加

ネットワーク解析では、経路の計算 (最適ルートの検索) 時に、多くの場合はコスト (インピーダンス) の最小化が求められます。このセクションでは、ネットワーク データセットにコスト属性を追加します。コスト属性は、ネットワーク データセットでインピーダンスをモデル化する場合に使用します。これらの属性は、エッジに沿って割り当てることができます。つまり、エッジの長さに沿って比例分割することができます。

コスト属性の詳細

  1. [カタログ] ウィンドウで、[NewSanDiego_ND] ネットワーク データセット ネットワーク データセットを右クリックして [プロパティ] を選択し、[ネットワーク データセット プロパティ] ダイアログ ボックスを開きます。
  2. [移動属性] ページをクリックしてから、[コスト] タブをクリックします。

    [ネットワーク データセットの作成 (Create Network Dataset)] ツールでは、ネットワーク ソース内のジオメトリ フィールドに基づいて 1 つのコスト属性 [長さ] が自動的に作成されます。

  3. [長さ] は、コスト属性が表す内容を正確に記述していますが、あまり明確ではありません。また、デフォルトの距離コストの単位は、ソース フィーチャクラスの空間参照に基づいています。この場合の単位はメートルです。単位をマイルにする必要があります。したがって、コストに最初に加える変更は、デフォルトの距離属性を「Miles」に名前変更することです。エバリュエーターがすべてのエッジ ソースに対して正しく設定されていることを確認したら、式を適用してメートルをマイルに変換します。
  4. コストの [距離] セクションで [長さ] 属性をクリックします。
  5. [メニュー] ボタン メニュー をクリックして、[名前の変更] を選択します。
    コスト属性の名前変更
  6. [プロパティ] セクションで [名前] テキスト ボックスに「Miles」と入力し、キーボード上の Enter キーを押して、名前の変更を確定します。
  7. [単位][マイル] に変更します。

    [Streets (順方向)] 行の値は Shape フィールドであることに注意してください。Shape フィールドをエバリュエーターに渡すと、エッジの空間参照、単位、およびジオメトリもエバリュエーターに渡されます。Shape フィールドにより、エバリュエーターはエッジの長さを算出する際に空間参照を使用することができます。一方、Shape_Length フィールドの場合は、数値と単位しか渡されないため、データの座標系によっては、エッジの長さの精度が下がることがあります。

    エバリュエーターがコストに整数フィールドを使用している場合に、エバリュエーターの単位を変更するには、[エバリュエーター設定] ダイアログ ボックスで、そのフィールドから取得された数値を新しい単位に変換する式を作成する必要があります。たとえば、マイルをフィートに変換する場合は、次の式を使用します。

    [Miles_Field]*5280

    エバリュエーターで Shape フィールドと Shape_Length フィールドを使用している場合は、コストの単位の変更のみ行う必要があります。エバリュエーターがバックグラウンドで変換処理を実行します。

  8. [エバリュエーター] セクションにある [エッジ] グループの [Walking_Pathways (Along)] 行で、[タイプ][デフォルトと同じ] から [フィールド スクリプト] に変更します。
    のエバリュエーターを [フィールド スクリプト] に変更する操作
  9. [Walking_Pathways (Along)][値] 列をダブルクリックして、[フィールド スクリプト設定] ボタンを有効にした後、[フィールド スクリプト設定] ボタン 式の設定 をクリックします。

    [エバリュエーター設定] ダイアログ ボックスが表示されます。

  10. [結果] ボックスに「[Shape]」と入力して [OK] をクリックします。

    エバリュエーターは、エッジごとにインピーダンス (つまり、コスト) の計算方法をネットワークに通知します。定数にするか、フィールドを基準にするか、別の属性を基準にするか、スクリプトから算出することができます。これらはそれぞれタイプの異なるエバリュエーターです。

  11. 次に、ネットワーク データセットに [Minutes] という時間コストを追加します。
  12. [メニュー] ボタン メニュー をクリックして、[新規作成] を選択します。
  13. 新しいコストの名前として「Minutes」と入力します。
  14. [エバリュエーター] セクションにある [エッジ] グループの [Streets (順方向)] 行で、[タイプ][デフォルトと同じ] から [フィールド スクリプト] に変更します。

    [Streets (順方向)] 行と [Streets (逆方向)] 行の横に [X] アイコンが表示されますが、エバリュエーターの基準となるフィールドを選択すると、表示されなくなります。

  15. [Streets (Along)][値] 列をダブルクリックして、[フィールド スクリプト設定] ボタン 式の設定 を有効にした後、[フィールド スクリプト設定] ボタンをクリックします。

    エッジ上でどちらの方向に移動する場合にも必要となるコストを表す 1 つのフィールドを設定できます。たとえば、ラインの長さを制限速度で除算して値が算出された [Minutes] フィールドは、順方向と逆方向のどちらにも有効です。同じフィールドを両方の移動方向に使用できる場合は、[Streets (順方向)] 行に対してフィールド スクリプト エバリュエーターを使用することができます。[Streets (逆方向)] 方向に対してフィールド スクリプト エバリュエーターを設定する代わりに、エバリュエーターの [タイプ][順方向と同じ] に変更します。

    このデータの場合、順方向と逆方向をそれぞれ表す別々のフィールドが存在するため、両方の方向を設定します。

  16. [結果] ボックスに「[FT_Minutes]」と入力して [OK] をクリックします。
  17. [Streets (逆方向)] 行に対して、手順 12 ~ 13 を繰り返します。
  18. [結果] ボックスに「[TF_Minutes]」と入力して [OK] をクリックします。
  19. [Walking_Pathways (順方向)] 行と [Walking_Pathways (逆方向)] 行に対して、手順 12 ~ 16 を繰り返します。
    [Minutes] コストに関してフィールド スクリプト エバリュエーターに適したフィールドを設定する操作
    メモ:

    エバリュエーターにはさまざまなタイプがあり、[コスト]、[規制]、および [記述子] で使用できます。フィールド スクリプト エバリュエーターは、エッジの通過にかかるコストを算出するのに 1 つのフィールドまたは 1 つのフィールドに基づく単純な条件式を使用するため、最もよく利用されています。

    ネットワークで使用されるエバリュエーターの種類の詳細

  20. [エバリュエーター] セクションにある [ターン] グループで、[<デフォルト>] 行の [タイプ][ターン カテゴリ] に変更します。
  21. [<デフォルト>][値] 列をダブルクリックして、[ターン カテゴリ設定] ボタン 式の設定 を有効にした後、[ターン カテゴリ設定] ボタンをクリックします。

    [ターン カテゴリ エバリュエーター] ダイアログ ボックスが表示されます。

    ターン カテゴリ エバリュエーターの詳細

  22. [左折][U ターン] の秒数を 5 に変更します。
    で [左折] と [U ターン] を 5 秒の遅延に変更する操作

    [Minutes] コスト属性を使用した解析では、左折または U ターンが発生した場合に 5 秒の遅延時間が加算されます。

  23. [OK] をクリックして変更を確定し、[ターン カテゴリ エバリュエーター] ダイアログ ボックスを閉じます。
    メモ:

    階層属性が存在しないため、ターン カテゴリ エバリュエーターは道路クラスを使用してターンを区別できないという内容の [Minutes] コストに関する警告が生成されます。これは単なる警告であり、無視してもかまいません。この警告については、このチュートリアルで後から階層属性を追加する場合に対処します。

  24. [ネットワーク データセット プロパティ] ダイアログ ボックスの [OK] をクリックして実施した変更内容を確定し、ダイアログ ボックスを閉じます。

これで、ネットワーク データセットに長さコストと時間コストが設定されました。次に行うことは、乗用車の運転、徒歩、車高制限などの規制の追加です。

規制と記述子の追加

このセクションでは、徒歩、乗用車の運転、バスの運転、車高制限ありをモデル化した規制を追加します。また、車高制限で使用される車高の記述子も追加します。

解析中、規制によって、ある種の特色のある道路の走行を完全に禁止するか、回避するか、優先するかを決めることができます。たとえば、規制を使用して、歩行者が高速道路上を歩くのを防いだり、空頭が十分ではない道路上を車高の高いトラックが通過するのを防いだりできます。

記述子は、ネットワークまたはそのエレメントの特性を説明します。コストとは異なり、記述子は割り当てできません。つまり、この属性の値は、エッジ エレメントの長さには依存しません。記述子を使用すると、コストに割り当てることもコストで使用することも意図されていない属性を階層と規制で使用するためにネットワーク データセットに取り込むことができます。このチュートリアルでは、TF_HeightLimit_Meters フィールドと FT_HeigtLimint_Meters フィールドから取得した車高を [Height Restriction] 規制で使用するために [Streets] フィーチャクラスに取り込む目的で記述子を使用します。

規制の属性に関する詳細

記述子属性の詳細

まず、乗用車の運転、バスの運転、および徒歩をモデル化するための基本的な規制を作成します。

  1. [カタログ] ウィンドウで、[NewSanDiego_ND] ネットワーク データセット ネットワーク データセットを右クリックして [プロパティ] を選択し、[ネットワーク データセット プロパティ] ダイアログ ボックスを開きます。
  2. [移動属性] ページをクリックしてから、[規制] タブをクリックします。
  3. [規制] タブの右上隅にある [メニュー] ボタン メニュー をクリックして、[新規作成] を選択します。
  4. 新しい規制の名前として「Driving an Automobile」と入力します。
  5. [使用タイプ][禁止] のままにします。
  6. [エバリュエーター] セクションにある [エッジ] グループの [Streets (順方向)] 行で、[タイプ][デフォルトと同じ] から [フィールド スクリプト] に変更します。

    [Streets (順方向)] 行と [Streets (逆方向)] 行の横に [X] アイコンが表示されますが、エバリュエーターの基準となるフィールドを選択すると、表示されなくなります。

  7. [Streets (Along)] 行の [規制] 行をダブルクリックして、[フィールド スクリプト設定] ボタン 式の設定 を有効にした後、[フィールド スクリプト設定] ボタンをクリックします。

    [エバリュエーター設定] ダイアログ ボックスが表示されます。

  8. [結果] ボックスに「[AR_AUTO]="N"」と入力して [OK] をクリックします。

    このフィールドは、乗用車が道路を合法的に走行できるかどうかを示します。値が Y の場合は、乗用車がその道路を走行できることを示し、値が N の場合は、乗用車がその道路を走行できないことを示します。

    規制は常にブール型です。規制に対してフィールド スクリプト、エレメント スクリプト、または関数を定義する場合は、条件式、スクリプト、または関数から返された値のうち、どの値を True (そのエッジに影響を与える) と見なすかを規制に認識させます。それ以外の値はすべて、False (そのエッジに影響を与えない) と解釈されます。この場合は、規制がエッジに影響を与えると、そのエッジの通過が禁止されます。

  9. [Walking_Pathways (順方向)][タイプ][定数] に変更し、[禁止]True に変更します。
  10. [Walking_Pathways (逆方向)][順方向と同じ] のままにします。

    [Walking_Pathways] では、電動式の車両の通行が許可されないため、この規制が有効な場合は常に電動式の車両が規制されるように定数値を設定することができます。

  11. バスが特定の道路を走行するのを禁止する新しい規制を追加するには、手順 4 ~ 10 を繰り返し、規制に「Driving a Bus」という名前を付けて、AR_BUS フィールドを使用します。
    [Driving a Bus] 規制を示す [ネットワーク データセット プロパティ] の規制ページ
  12. Walking」という名前の新しい規制を追加します。
  13. [Streets (順方向)] で、エバリュエーターの [タイプ][フィールド スクリプト] に変更します。
  14. [Streets (順方向)] 行の [規制] 列をダブルクリックして、[フィールド スクリプト設定] ボタンを有効にした後、[フィールド スクリプト設定] ボタン 式の設定 をクリックします。
  15. [エバリュエーター設定] ダイアログ ボックスで、[結果] ボックスに「[AR_PEDEST] = "N"」と入力します。

    これで、[Walking] 規制が有効な場合に、州間道路 (つまり、交通量が多く、歩行者が入れない他の道路) が規制されます。

  16. [Walking_Pathways] エッジは、デフォルトのエバリュエーター設定をそのまま使用します。
  17. 次に、未舗装道路を回避する規制を作成します。前の規制では、規制の [使用タイプ][禁止] に設定しました。この場合は、エッジを通過できるか通過できないかのいずれかです。[Avoid Unpaved Roads] 規制では、[使用タイプ][回避] に設定されます。
  18. Avoid Unpaved Roads」という名前の規制を作成します。
  19. [使用タイプ][禁止] から [回避] に変更します。
  20. [Streets (順方向)] で、エバリュエーターの [タイプ][フィールド スクリプト] に変更します。
  21. [エバリュエーター設定] で、[結果] ボックスに「[PAVED] = "N"」と入力します。

    これで、PAVED フィールド内の値が N のすべてのエッジが適切に回避されます。

  22. 次に、一方通行の道路の規制を追加します。
  23. Oneway」という名前の新しい規制を追加します。
  24. [Streets (順方向)] で、エバリュエーターの [タイプ][フィールド スクリプト] に変更します。
  25. [Streets (順方向)][規制] 列をダブルクリックして、[フィールド スクリプト設定] ボタンを有効にした後、[フィールド スクリプト設定] ボタン 式の設定 をクリックします。

    一方通行の道路では通常、道路の一方向の移動が規制されます。この場合には、エッジに沿って移動する方向ごとに別々の値が必要です。[Streets] で移動方向ごとに、類似しているが少し異なるフィールド演算条件式を設定します。

  26. [結果] ボックスに「restricted」と入力し、[コード ブロック] ボックスに次の条件式を入力します。

    restricted = false
    Select Case UCase([DIR_TRAVEL])
      Case "N", "TF", "T": restricted = True
    End Select

    この VBScript 条件式は、値が NTF、または T かどうかを確認し、値がこれらのいずれかの場合に該当するエッジを規制します。この書式は大文字と小文字を区別しません。

    TFT はそれぞれ To-From と To を表します。これらの値は、エッジに対して規制された移動方向を意味します。この式では、To-From 方向 (逆方向) の移動が禁止され、From-To 方向 (順方向) の移動が許可されます。

    フィールド スクリプト: 順方向に対する一方通行規制のスクリプトを示す [Oneway] ダイアログ ボックス
  27. [エバリュエーター設定] ダイアログ ボックスの [OK] をクリックして変更を確定します。
  28. [Streets (逆方向)] で、エバリュエーターの [タイプ][フィールド スクリプト] に変更します。
  29. ここで、[Streets (逆方向)] 行の [エバリュエーター設定] ダイアログ ボックスを開きます。
  30. [結果] ボックスに「restricted」と入力し、[コード ブロック] ボックスに次の条件式を入力します。

    restricted = false Select Case UCase([DIR_TRAVEL])  Case "N", "FT", "F": restricted = True
    End Select

    この条件式は、TFT の代わりに FTF を使用している点を除いて、上記の条件式と同じです。この条件式では、もう 1 つの条件式で指定された方向とは反対の方向が規制されます。これは、一方通行規制の残りの半分で必要となります。

  31. [エバリュエーター設定] ダイアログ ボックスの [OK] をクリックして変更を確定します。
  32. 一部の道路での車高制限をモデル化するために、新しいパラメーター化規制を追加します。まず、[Streets] フィーチャクラスから車高を除去する記述子を作成します。
  33. [記述子] タブをクリックします。
  34. [メニュー] ボタン メニュー をクリックしてから、[新規作成] をクリックします。
  35. 名前として「Height Limit (Feet)」と入力します。
  36. [Streets (順方向)] 行で、エバリュエーターのタイプを [フィールド スクリプト] に変更します。
  37. [Streets (順方向)] 行の [エバリュエーター設定] ダイアログ ボックスを開きます。
  38. [結果] ボックスに次の条件式を入力します。

    [FT_HeightLimit_Meters]/0.3048

    これで、値が FT_HeightLimit_Meters フィールドから取得され、メートルからフィートに変換されます。

  39. [Streets (逆方向)] 行で、エバリュエーターのタイプを [フィールド スクリプト] に変更します。
  40. [Streets (逆方向)] 行の [エバリュエーター設定] ダイアログ ボックスを開きます。
  41. [結果] ボックスに次の条件式を入力します。

    [TF_HeightLimit_Meters]/0.3048

  42. [OK] をクリックして、この条件式を確定します。
    完全な
  43. 上部にある [規制] タブをクリックします。
  44. Height Restriction」という名前の新しい規制属性を追加します。
  45. 必要に応じて [パラメーター] セクションを展開します。
  46. [パラメーター] セクションで、グリッドをクリックして新しい行を追加します。
  47. 新しいパラメーターの名前を「Vehicle Height (Feet)」に変更します。

    ネットワーク解析は、さまざまな状況によって変わることがあります。この場合には、パラメーターを使用できます。パラメーターはプレースホルダー変数に似た役割を果たします。別の値で上書きされない限り、デフォルト値が使用されます。このパラメーターは、解析レイヤーの [移動モード] 設定で公開されます。ここで、この解析に合わせて車高を変更することができます。

    パラメーターを規制、コスト、または記述子に追加すると、その規制、コスト、または記述子がパラメーター化属性になります。パラメーター化属性では、高さ、重量、車軸数の規制、コスト係数指定の移動コストなど、多くのものをモデル化できます。

    ネットワーク属性でのパラメーターの使用の詳細

  48. [Streets (順方向)] 行の [タイプ][関数] に変更して、[エバリュエーター設定] ダイアログ ボックスを開きます。

    関数エバリュエーターで、単純な数学関数を作成します。コストや記述子などの数値タイプの属性では、乗算、除算、減算、および加算を演算として実行できます。規制などのブール属性では、比較オペランド (例: より大きい、より小さい) が使用されます。

  49. [属性名][Height Limit (Feet)] (前に作成した記述子) に設定します。
  50. [パラメーター名][Vehicle Height (Feet)] (この規制に追加したパラメーター) に設定します。
  51. 演算子として以下 (<=) を選択します。

    この条件式で Height Limit (Feet) <= Vehicle Height (Feet) が読み取られます。

    エッジの Height Limit (Feet) が解析レイヤーに入力された Vehicle Height (Feet) 以下の場合は、そのエッジが規制されます。

  52. [OK] をクリックして、この関数を確定します。
  53. [Walking_Pathways] 行は、デフォルト値をそのまま使用します。

    歩道では、高さ制限がなく、車両が許可されていないので、この規制を設定する必要はありません。

  54. [ネットワーク データセット プロパティ] ダイアログ ボックスの [OK] をクリックして実施した変更内容を確定し、ダイアログ ボックスを閉じます。

階層属性の追加

階層は、ネットワーク エレメントに割り当てられる順序またはランクです。通常、道路には 3 ~ 5 のクラスがありますが、これより多くのクラスを使用できます。3 つのレベルの階層の場合、クラスは幹線道路、一般道路、および生活道路になります。生活道路の例として、狭い住宅地道路などがあります。一般道路には、市街地を通る広い道路や州道などがあり、幹線道路には、州間道路や高速道路などがあります。

階層属性の詳細

  1. [カタログ] ウィンドウで、[NewSanDiego_ND] ネットワーク データセット ネットワーク データセットを右クリックして [プロパティ] を選択し、[ネットワーク データセット プロパティ] ダイアログ ボックスを開きます。
  2. [移動属性] ページをクリックしてから、[階層] タブをクリックします。
  3. [階層属性の追加] チェックボックスをオンにします。

    [範囲][エバリュエーター] の階層設定が表示されます。

  4. [幹線道路] の範囲の上限を 2 に設定します。
  5. [一般道路] の範囲の上限を 4 に設定します。
    メモ:

    これらの範囲はこのチュートリアルのデータであり、お使いのデータの分類方法はこれと異なっている可能性があります。

  6. [Streets (順方向)] 行で、エバリュエーターのタイプを [フィールド スクリプト] に変更して、[エバリュエーター設定] ダイアログ ボックスを開きます。
  7. [結果] ボックスに次の条件式を入力します。
    Cint([FUNC_CLASS])

    階層属性には、0 より大きい整数値を入力する必要があります。[FUNC_CLASS] フィールドはテキスト フィールドであるため、フィールド値を整数に変換する簡単なメソッドを使用する必要があります。

    フィールド値を整数に変換する
  8. [OK] をクリックして、この条件式を確定します。
  9. [Walking_Pathways (順方向)] 行に対して、手順 6 ~ 8 を繰り返します。
    [Walking_Pathways (順方向)] のフィールド値を整数に変換する
  10. [ネットワーク データセット プロパティ] ダイアログ ボックスの [OK] をクリックして実施した変更内容を確定し、ダイアログ ボックスを閉じます。

移動モードの追加

移動モードとは、基本的に、車両や歩行者の物理的な特徴を定義する移動設定の長いリストで構成されるテンプレートです。これらの特徴は、車両または歩行者が移動する方法や移動できる場所を定義するためのネットワーク解析の実行時に考慮されます。事前定義された移動モードを使用すると、各設定を手動で選択せずに、事前に決められた設定をネットワーク解析にすぐに適用できます。

移動モードでは、乗用車の運転や徒歩などの一般的なモードをモデル化できるだけでなく、制限速度を超えることがないトレーラー トラックの運転や一部の道路交通法を無視できる救急車の運転などの具体的なモードをモデル化することもできます。

移動モードはネットワーク データセットに格納されるため、必要に応じて解析レイヤー内で変更できます。

乗用車の運転、観光バスの運転、および徒歩という 3 つの移動手段に対して 5 つの移動モードを作成します。乗用車の運転および観光バスの運転では、距離ベースの移動モードと時間ベースの移動モードを作成します。徒歩の場合は、距離ベースの移動モードのみを作成します。

  1. [カタログ] ウィンドウで、[NewSanDiego_ND] ネットワーク データセット ネットワーク データセットを右クリックして [プロパティ] を選択し、[ネットワーク データセット プロパティ] ダイアログ ボックスを開きます。
  2. [移動属性] ページをクリックしてから、[移動モード] タブをクリックします。
  3. ダイアログ ボックスの右上隅にある [メニュー] ボタン メニュー をクリックして、[新規作成] を選択します。
  4. 移動モードに「Automobile Time」という名前を付けます。
  5. この移動モードが乗用車の運転の時間ベースの移動モードであることを示す内容を [説明] に入力します。
  6. [タイプ][運転] のままにします。
  7. [コスト] セクションで、[インピーダンス][分] に設定されていることを確認します。
  8. [距離コスト][マイル] に設定します。
  9. [規制] セクションで、下の図に示されているように、次の規制のチェックボックスをオンにします。
    [Automobile Time] 移動モードで [Avoid Unpaved Roads]、[Driving an Automobile]、および [Oneway] 規制がオンになっている状態

    移動モードを設定する場合は、移動手段 ([Driving an Automobile]、[Driving a Bus]、または [Walking]) のうちの 1 つだけをオンにします。これらの規制は、該当する移動手段に合法的であることを示します。複数をオンにすると、一部のエッジが不正に規制されたり許可されたりすることがあります。

    乗用車は通常、道路上での高さ制限の問題がないため、[Height Restriction] 属性はオンにしません。

  10. [U ターン] セクションで、設定を [行き止まりと交差点] に変更します。
  11. 折りたたまれている場合は、[高度な設定] セクションを展開します。
  12. [高度な設定] セクションで、[階層を使用] の横にあるチェックボックスをオンにします。

    通常、階層を使用すると、大規模なネットワークの解析にかかる時間が短縮されます。また、人のように、生活道路よりも単調で予測しやすい州間道路や高速道路などの幹線道路を優先するため、人が好む運転方法がシミュレートされます。

  13. [メニュー] ボタン メニュー から [コピー] を選択します。
  14. 新しい移動モードの名前を「Automobile Distance」に変更します。
  15. [インピーダンス][マイル] に変更します。
  16. [高度な設定] セクションで、[階層を使用] の横にあるチェックボックスをオフにします。

    階層は、時間ベースのコスト属性で使用することが最も有効です。インピーダンスが時間ベースでない場合は、解析で階層を使用しても現実的な結果が得られません。

  17. これで、乗用車の運転に関する 2 つの移動モードが作成されました。次に、バスの運転に関する移動モードを作成します。
  18. Tour Bus Time」という名前の移動モードを作成します。
  19. [インピーダンス][分] に変更します。
  20. [規制] セクションで、[Avoid Unpaved Roads] をクリックします。
  21. [パラメーター] の [規制の使用][値][回避 (高)] に変更します。
    [Avoid Unpaved Roads] 規制の [値] を [回避] から [回避 (高)] に変更する操作

    観光バスはあまり未舗装道路を運転することがありません。このため、未舗装道路の使用を必要な場合に限定しなければなりません。これには、この移動モードの [規制の使用][回避 (高)] に設定します。

  22. [Avoid Unpaved Roads] のチェックボックスがオンになっていることを確認します。
  23. [Height Restriction] をクリックします。
  24. [Vehicle Height (Feet)] パラメーターの値を 11 に変更します。

    ここに入力された値はすべて、道路の高さ制限に対して車高を評価する場合のデフォルト値として使用されます。1 階建ての観光バスの高さは平均で 10 ~ 11 フィートであるため、11 フィートは車高の適切なデフォルト値です。

  25. [U ターン] セクションで、ポリシーを [なし] に設定します。
  26. [高度な設定] セクションで、[階層を使用] の横にあるチェックボックスをオンにします。
  27. この移動モードをコピーして、新しい移動モードの名前を「Tour Bus Distance」に変更します。
  28. [インピーダンス][マイル] に変更し、[階層を使用] のチェックボックスをオフにします。それ以外のすべてのプロパティは、そのまま同じ値を使用します。
  29. このチュートリアルで最後に追加する移動モードは、徒歩距離の移動モードです。
  30. Walking Distance」という名前の新しい移動モードを追加します。
  31. この移動モードの [タイプ][Walking] に変更します。
    移動モードのタイプを [Walking] に変更する操作
  32. [インピーダンス][マイル] に変更します。
  33. [Walking] 規制のみをオンにします。

    歩行者は、一方通行の道路、高さ制限、未舗装道路を気にしないので、これらの規制をオンにする必要はありません。

  34. [U ターン] ポリシーを [すべて] のままにします。
  35. [階層を使用] チェックボックスをオフのままにします。

    [Walking] 規制により、階層で優先される多数の幹線道路 (州間道路や高速道路など) 上を歩行者が移動できなくなります。

  36. [ネットワーク データセット プロパティ] ダイアログ ボックスの [OK] をクリックして実施した変更内容を確定し、ダイアログ ボックスを閉じます。

コスト属性の更新

ネットワーク データセットに関する階層属性がすでに存在するので、ターン遅延を定義できるカテゴリをターン カテゴリ エバリュエーターに割り当てます。[Minutes] コストに戻って、新しい遅延時間をターン カテゴリ エバリュエーターに反映します。

ターン カテゴリ エバリュエーターの詳細

  1. [カタログ] ウィンドウで、[NewSanDiego_ND] ネットワーク データセット ネットワーク データセットを右クリックして [プロパティ] を選択し、[ネットワーク データセット プロパティ] ダイアログ ボックスを開きます。
  2. [移動属性] ページをクリックしてから、[コスト] タブをクリックします。
  3. [Minutes] コストを選択します。
  4. [Minutes] コストを下にスクロールして、[ターン] セクションを確認します。
  5. [<デフォルト>][値] 列をダブルクリックして、[ターン カテゴリ設定] ボタン 式の設定 を有効にします。

    [値] を確認すると、ターン カテゴリ数が [ターン カテゴリ エバリュエーター] の設定時に表示された 5 件ではなく、20 件あることがわかります。

  6. [ターン カテゴリ設定] ボタン 式の設定 をクリックして、[ターン カテゴリ エバリュエーター] ダイアログ ボックスを開きます。
    分類済みの道路が反映されたターン カテゴリ エバリュエーター

    [ターン方位角範囲] セクションに変更はありませんが、[道路クラス] というセクションが追加されています。このセクションを使用すると、ターン カテゴリ エバリュエーターで幹線道路、一般道路、または生活道路と見なされる階層値を変更することができます。

    デフォルトでは、階層属性で定義された範囲が使用されます。範囲を変更する理由が特にない限り、デフォルトの範囲をそのまま使用してください。

    これで、[ターン カテゴリの移動時間] セクションに、道路を階層で分類できるターン カテゴリがさらに多く表示されるようになります。

  7. [左折] グループで、[生活道路]: [生活道路]: [任意][秒] 値を 5 から 7 に変更します。

    これらの列は、ターンが開始された道路のクラス、ターンが終了した道路のクラス、道路が横切られているかどうか (通常の交差点など)、該当する道路のクラスが表示されます。たとえば、生活道路に進入するのに広い大通りを横切る必要がある場合は、走行車両が途絶えるまで数秒待機しなければなりません。デフォルトでは、この種の走行の遅延時間は 15 秒です。ただし、生活道路に進入するのに別の狭い道だけを横切る必要がある場合は、それほど長く待機しなくても済みます。この種の走行の遅延時間は 2 秒です。

  8. [OK] をクリックして変更を確定し、[ターン カテゴリ エバリュエーター] ダイアログ ボックスを閉じます。
  9. [ネットワーク データセット プロパティ] ダイアログ ボックスの [OK] をクリックして実施した変更内容を確定し、ダイアログ ボックスを閉じます。

ルート案内の設定

ルート案内は、ルートを進むためのターンごとの指示です。ルート案内をサポートするネットワーク データセットの最低要件は次のとおりです。

  • 長さの値が入力されている属性フィールド (単位はメートルやキロメートルなどの長さ単位)
  • 少なくとも 1 つのエッジ ソース
  • エッジ ソースに少なくとも 1 つのテキスト フィールドが存在する

基本的なルート案内は必要最小限のデータで設定できますが、ルート案内の一部のフィーチャには、さらに多くのデータが必要となります。

ルート案内を設定する方法の詳細

  1. [カタログ] ウィンドウで、[NewSanDiego_ND] ネットワーク データセット ネットワーク データセットを右クリックして [プロパティ] を選択し、[ネットワーク データセット プロパティ] ダイアログ ボックスを開きます。
  2. [ルート案内] ページをクリックします。
  3. [ルート案内のサポート] の横にあるチェックボックスをオンにします。

    [ルート案内] ページと [フィールドの割り当て] タブに無効な状態を表すマーク (赤色の下付きの破線) が付けられます。この点を気にする必要はありません。[フィールドの割り当て] タブにアクセスすると、この問題が修正されます。

  4. [一般] タブをクリックします。
  5. [属性の割り当て] セクションは、すべてのデフォルト設定をそのまま使用します。

    [属性の割り当て] セクションのプロパティは、ネットワーク データセットの属性になります。

    [デフォルトの長さ属性] は、ルート案内の対象となるルートの各セグメントの長さの計算に使用されます。選択したコスト属性の単位は、ルート案内の単位として使用されます。

    [デフォルトの時間属性] は、ルート案内の表示時に各セグメントの通過に要する時間の計算に使用されます。

    [フィーチャ カテゴリ] プロパティと [マヌーバー クラス] プロパティは、ルート案内の微調整に使用されます。これらのプロパティの詳細については、該当するドキュメントをご参照ください。

  6. [補助データ ソース] セクションで、次のプロパティを設定します。

    • 標識フィーチャ: Signposts
    • 標識結合テーブル: Signposts_Streets

    [補助データ ソース] のプロパティは、ネットワーク データセットまたはジオデータベース テーブルと同じフィーチャ データセット内の他のフィーチャクラスになります。

    [標識フィーチャ] 属性と [標識結合テーブル] 属性は、出口番号、連絡道路、連絡道路を進んで到達可能な主な行先など、高速道路標識に表示される行先情報を提供します。これらのプロパティは組み合わせて使用されるため、ルート案内で標識情報を利用したい場合は、両方とも指定する必要があります。

    [フィーチャ カテゴリ] 属性および [マヌーバー クラス] 属性と同様に、[道路分岐テーブル] も、特定タイプのターンに対して微調整されたルート案内に使用されます。

  7. [ローカライズ名] は、デフォルト設定をそのまま使用します。

    ネットワーク データセット ソースでは、道路名と標識のテキストが複数の言語で表示されることがあります。たとえば、欧州のいくつかの国には複数の公用語があるため、一部の地域の道路名は複数の言語で表示されています。この設定によって、ルート案内に道路名を利用可能なすべての言語で表示するかルート案内言語でのみ表示するかが決まります。

    [優先出力ルート案内言語] を選択する前に、いくつかのデータ要件を満たしておく必要があります。

    ルート案内の設定でのローカライズ名の詳細

  8. [フィールドの割り当て] タブをクリックします。

    ネットワークに含まれる各エッジ ソースには、道路名のフィールドを設定できます。これは、ルート案内の表示に使用される名前です。

  9. [Streets (エッジ)] ソースの [代替名] の数を増やします。

    1 つのエッジ ソースに複数の名前を割り当てることができます。たとえば、2 つの高速道路が同じ 1 本の道路を数マイルにわたって共有していることがあります。この 1 本の道路を表すエッジには 2 つの名前が割り当てられます。ルート案内でこの状況を表現するために、エッジ ソースで代替名を使用することができます。

  10. [Streets (エッジ)] ソースの [代替名] の数を減らします。

    このチュートリアルのデータは代替名を使用していないので、代替名を設定する必要はありません。

  11. 下の図に示された [Streets (エッジ)] ソースと [Walking_Pathways (エッジ)] ソースの [優先名] のプロパティを入力します。
    ルート案内でのエッジ ソースのフィールドの割り当て
    メモ:

    [ベース名] だけが必要となります。それ以外のフィールドはすべてオプションです。

    ルート案内は、複数の言語での道路名の表示に対応しています。[言語] フィールドでは、名前をどの言語で記述するかを指定します。優先名を 1 つの言語で記述し、代替名をもう 1 つの言語で記述することができます。

  12. [Streets (エッジ)] および [Walking_Pathways (エッジ)][補助プロパティ] セクションは、デフォルト値をそのまま使用します。

    [行政界] フィールドには、エッジが属している行政界が表示されます。行政界に変更があると、その内容がルート案内に表示されます。たとえば、州境を通過する際に “Enter California” (カリフォルニア州に入りました) と表示されます。

    [Level (From)][Level (To)][Floor Name (From)]、および [Floor Name (To)] 関数は [行政界] によく似ていますが、屋内のルート検索に有効です。これらの関数はそれぞれ、階数と階名の変更を表示します。

  13. [ランドマーク] タブをクリックします。

    [空間ランドマーク] および [参照ランドマーク] という 2 つのグループが表示されます。空間ランドマークはフィーチャクラスであり、参照ランドマークはテーブルです。空間ランドマークでは、解析時に空間検索を利用して、ランドマークを参照するタイミングを決定します。参照ランドマークでは、ネットワーク上の場所が行内に作成されるので、ルート案内でのランドマークの使用がテーブル検索だけで済みます。通常、空間検索はテーブル検索よりも時間がかかるため、空間ランドマークよりも参照ランドマークの方が実行速度が速くなります。

    空間ランドマークでは、場所を特定するのに簡単な空間検索が使用されるので、設定が非常に簡単です。空間ランドマークのラベルになるテキスト フィールドを少なくとも 1 つ含むポイント フィーチャクラスが必要となります。それ以外のフィールドは、階、屋内のルート検索、各ポイント フィーチャのカスタム検索許容値などの特性を定義するのに使用できます。

    一方で、参照ランドマークの設定には、多くの作業が必要です。参照ランドマークでは、特定のスキーマが必要であり、ネットワーク ロケーションと他の必須フィールドを手動で設定しなければなりません。

    空間ランドマークと参照ランドマークの両方を設定します。

  14. まず、空間ランドマークを設定します。
  15. [空間ランドマークの追加/削除...] ボタンをクリックします。

    2 つのグループを含む [空間ランドマークの追加/削除] ダイアログ ボックスが表示されます。確認ガイダンス ランドマークは、正しい道を走行していることを運転手に伝えます。例: “Go by Eastlake Park on your left” (今、左にイーストレイク パークがあります) ターン ガイダンス ランドマークは、ジャンクションで正しく走行できるように運転手を支援します。例: “Turn left before the Tall White Cylindrical Building on 1st Ave” (最初の大通りに面している円筒形の白い高層ビルの前を左折してください)

    ランドマーク フィーチャクラスは、ネットワーク データセットと同じフィーチャ データセットに配置する必要があります。1 つのランドマーク フィーチャクラスを確認ガイダンス ランドマークとターン ガイダンス ランドマークの両方として登録することができます。

  16. [確認ガイダンス] グループで [MajorAttractions] のツリー ビューを展開します。

    エッジ ソースごとに、ランドマーク フィーチャクラスが確認ガイダンス ランドマークまたはターン ガイダンス ランドマークのいずれかとして登録されます。ほとんどの場合、すべてのエッジ ソースのランドマーク フィーチャクラスを確認ガイダンス ランドマーク、ターン ガイダンス ランドマーク、またはその両方のランドマークとして登録します。

  17. [確認ガイダンス][ターン ガイダンス] の両方のセクションで、最上部の [MajorAttractions] の横にあるチェックボックスをオンにします。

    [MajorAttractions] フィーチャクラスは、サンディエゴ市の主要な観光名所を表します。これらの観光名所は [Streets] または [Walking_Pathways] フィーチャに隣接している場合があります。また、これらの観光名所を確認ガイダンスとターン ガイダンスに使用することもできます。すべてのエッジ ソースの [MajorAttractions] フィーチャクラスを両方のランドマーク グループに登録します。

    最上部のチェックボックスをオンにすると、そのサブレベルのチェックボックスもすべてオンになる点に注意してください。

  18. [OK] をクリックして、空間ランドマークの登録を確定します。
    ターン ガイダンスおよび確認ガイダンス空間ランドマークとして登録された [MajorAttractions] フィーチャクラス

    [空間ランドマーク] ヘッダーにあるグリッドには、ランドマーク登録が入力されます。

  19. [フィールドの割り当て] ボタンをクリックします。

    [空間ランドマーク フィールド マッピング] ダイアログ ボックスが表示されます。

    デフォルトでは、該当するランドマークの [ラベル フィールド]Name フィールドが選択されており、[レベル フィールド][<なし>] のままになっていました。

  20. [ラベル フィールド][レベル フィールド] のドロップダウン リストをクリックし、選択肢をメモしておきます。
    [MajorAttractions] フィーチャクラス内のすべてのテキスト フィールドが表示された [ラベル フィールド] ドロップダウン リストを含む [空間ランドマーク フィールド マッピング] ダイアログ ボックス

    [ラベル フィールド] ドロップダウン リストには、[MajorAttractions] フィーチャクラス内のすべてのテキスト フィールドが表示され、[レベル フィールド] ドロップダウン リストには、すべての整数フィールドが表示されます。

    このダイアログ ボックスに変更を加えると、すべてのガイダンス タイプとエッジ ソースでフィールドの割り当てが設定されます。

  21. ここで、フィールドに変更を加えたり、[キャンセル] をクリックして [空間ランドマーク フィールド マッピング] ダイアログ ボックスを閉じたりしないでください。
  22. 次に、参照ランドマークを設定します。
  23. [参照ランドマークの追加/削除...] ボタンをクリックします。

    [参照ランドマークの追加/削除] ダイアログ ボックスが表示されます。

  24. [Reference_Landmarks] の横にあるチェックボックスをオンにします。
    [Reference_Landmarks] テーブルがルート案内にランドマーク テーブルとして登録されます。

    このダイアログ ボックスには、参照ランドマークに必要なスキーマを含むテーブルだけが候補として表示されます。

  25. [OK] をクリックして、参照ランドマークの登録を確定します。

    設定が完了した [ランドマーク] タブは、下の図のようになるはずです。

    登録済みの空間ランドマークと参照ランドマークを含む [ランドマーク] タブ
  26. [ネットワーク データセット プロパティ] ダイアログ ボックスの [OK] をクリックして実施した変更内容を確定し、ダイアログ ボックスを閉じます。

ネットワーク データセットの構築

ネットワーク データセット設定にすべての変更を加えたら、ネットワークを構築する必要があります。ネットワークを構築すると、ネットワーク エッジが作成および更新されるため、ソース フィーチャからの最新の情報が確保されます。

ネットワーク データセットを構築するタイミングの詳細

  1. [解析] リボン上の [ジオプロセシング] グループで、[ツール] をクリックして [ジオプロセシング] ウィンドウを開きます。
  2. [ジオプロセシング] ウィンドウの検索バーをクリックして「Build Network」と入力します。
  3. 最初に表示された結果をクリックして [ネットワークの構築 (Build Network)] ジオプロセシング ツールを開きます。
  4. [入力ネットワーク データセット] パラメーターで、[参照] ボタン 参照 をクリックした後、[NewSandiego_ND] ネットワーク データセットを参照して選択し、[OK] をクリックします。
  5. 下部にある [実行] ボタン 実行 をクリックします。