概要
[OD コスト マトリックスの生成 (Generate Origin Destination Cost Matrix)] ツールは、複数の起点から複数の終点までの OD (起点-終点) コスト マトリックスを作成します。OD コスト マトリックスは、各起点から各終点への移動時間と移動距離を含むテーブルです。また、各起点から各終点への移動に要する最小の時間または距離に基づいて、その起点に対する各終点を昇順にランク付けします。道路網の最適な経路は起点と終点のペアごとに検出され、移動時間と移動距離は出力ラインの属性として格納されます。パフォーマンス上の理由でラインが直線であっても、直線距離ではなく道路網に沿った移動時間または移動距離が常に格納されます。
注意:
このツールの最新情報については、Web ヘルプの最新エディションでこのトピックをご参照ください。ArcGIS Online では、 このようにサービスに対する機能的な更新を定期的に行っているため、インストールされているヘルプは最新でない可能性があります。
[OD コスト マトリックスの生成 (Generate Origin Destination Cost Matrix)] の出力の詳細
図
使用法
オンライン ツールボックスに収容されているツールは、ArcGIS Online でホストしているデータと機能を使って解析する ArcGIS Onlineジオプロセシング サービスです。
[計測単位] パラメーターの値が時間の単位である場合は、移動時間に基づいて最寄り施設が検索されます。同様に、使用する単位が距離の単位である場合は、移動距離を使用して最寄り施設が検索されます。
ツールを正しく実行するには、少なくとも 1 つの起点と 1 つの終点を指定する必要があります。最大で 1000 の起点と 1000 の終点を読み込むことができます。
最大で 250 のポイント バリアを追加できます。ライン バリアまたはポリゴン バリアは必要なだけ追加できますが、ライン バリアが交差する道路フィーチャは 500 以下にする必要があり、ポリゴン バリアが交差するフィーチャは 2,000 以下にする必要があります。
解析時に実際のルートではなく道路階層を使用することで、結果を短時間で生成することもできます。ただし、ソリューションの精度は最適な結果よりもやや劣ります。
[階層を使用] パラメーターがオン (True) であるかどうかにかかわらず、ストップのペア間の直線距離が 50 マイル (80.46 キロメートル) を超えている場合は、常に階層が使用されます。
移動モードが徒歩タイプに設定されている場合、または [カスタム] に設定されていて [徒歩] 規制が使用されている場合は、起点-終点ペア間の直線距離は 50 マイル (80.46 キロメートル) を超えることはできません。
入力したポイントと通行可能な最も近い道路の距離が 12.42 マイル (20 キロメートル) を超える場合、そのポイントは解析から除外されます。
このサービスを使用すると、クレジットが消費されます。詳細については、「サービス クレジットの概要」をご参照ください。
構文
GenerateOriginDestinationCostMatrix(Origins, Destinations, {Travel_Mode}, {Time_Units}, {Distance_Units}, {Analysis_Region}, {Number_of_Destinations_to_Find}, {Cutoff}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, Point_Barriers, Line_Barriers, Polygon_Barriers, {UTurn_at_Junctions}, {Use_Hierarchy}, {Restrictions}, {Attribute_Parameter_Values}, {Impedance}, Origin_Destination_Line_Shape, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Time_Impedance}, {Distance_Impedance}, {Output_Format})
パラメーター | 説明 | データ タイプ |
Origins | 終点に向かって移動する際の始点を指定します。 最大で 1000 の起点を追加できます。 起点を指定する際は、次の属性を使用して起点ごとにプロパティ (名前や起点から検索する終点の数など) を設定できます。 Name 起点の名前。名前は起点の一意の識別子です。名前は、出力行 (OriginName フィールド) と出力起点 (Name フィールド) に含まれ、ツールの出力からの追加情報を起点の属性に結合するために使用できます。 名前を指定しない場合は、接頭辞 Location が付いた一意な名前が自動的に生成されます。 TargetDestinationCount 起点に対して検索を実行する終点の最大数を指定します。 値を指定しない場合、[検出する終点の数] パラメーターの値が使用されます。 このフィールドでは、各起点に対して検出する終点数を指定できます。たとえば、このフィールドを使用して、1 つの起点の最寄りの終点を 3 件と、別の起点の最寄りの終点を 2 件検出できます。 Cutoff 指定された起点における終点の検索を停止するインピーダンス値。この属性では、各終点に対して異なるカットオフ値を指定できます。たとえば、この属性を使用して、1 つの起点から移動時間 5 分以内の終点と、別の起点から移動時間 8 分以内の終点を検索できます。 カットオフの単位は、インピーダンス属性の単位と同じです。値を指定しない場合、[カットオフ] パラメーターの値が使用されます。 CurbApproach 車両が起点から出発する方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、起点が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから起点を出発するかです。つまり、結局のところ車両の右側または左側になります。たとえば、起点から出発するときに、車両と起点の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。 Bearing ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。 通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。 このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。 BearingTol 方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。 単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。 NavLatency このフィールドは、Bearing と BearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、Bearing と BearingTol の値が存在する場合でも、NavLatency 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想経過時間を示します。 NavLatency の時間単位は、解析オブジェクトの timeUnits プロパティで指定された単位と同じです。 | Feature Set |
Destinations | 起点からの移動先になる終点の位置を指定します。 最大で 1000 の終点を追加できます。 終点を指定する場合は、次の属性を使用して、各終点のプロパティ (終点の名前など) を設定できます。 Name 終点の名前。名前は終点の一意の識別子です。名前は、出力行 (DestinationName フィールド) と出力終点 (Name フィールド) に含まれ、ツールの出力からの追加情報を終点の属性に結合するために使用できます。 名前を指定しない場合は、接頭辞 Location が付いた一意な名前が自動的に生成されます。 CurbApproach 車両が終点に到着する方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、起点が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから起点を出発するかです。つまり、結局のところ車両の右側または左側になります。たとえば、起点から出発するときに、車両と起点の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。 Bearing ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。 通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。 このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。 BearingTol 方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。 単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。 NavLatency このフィールドは、Bearing と BearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、Bearing と BearingTol の値が存在する場合でも、NavLatency 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想経過時間を示します。 NavLatency の時間単位は、解析オブジェクトの timeUnits プロパティで指定された単位と同じです。 | Feature Set |
Travel_Mode (オプション) | 解析でモデル化する交通モード。移動モードは ArcGIS Online で管理されます。組織の管理者は、移動モードを構成することで、組織のワークフローを反映することができます。 組織がサポートする移動モードの名前を指定する必要があります。 サポートされている移動モード名のリストを取得するには、このツールへのアクセスに使用した GIS サーバー接続で、[ユーティリティ] ツールボックスの [移動モードの取得 (GetTravelModes)] ツールを実行します。[移動モードの取得 (GetTravelModes)] ツールは、アプリケーションに [サポートされている移動モード] テーブルを追加します。[サポートされている移動モード] テーブルの [Travel Mode Name] フィールドの任意の値を、入力として指定できます。Travel Mode Settings フィールドの値を入力として指定することもできます。これにより、ツールが移動モード名に基づいて設定を検索する必要がなくなるため、ツールの実行時間を短縮します。 デフォルト値 [カスタム] を使用すると、カスタム移動モード パラメーター ([ジャンクションでの U ターン]、[階層の使用]、[規制]、[属性パラメーター値]、および [インピーダンス]) を使用して、独自の移動モードを構成できます。カスタム移動モード パラメーターのデフォルト値は、自動車による移動をモデル化します。歩くのが速い歩行者や、指定された高さ、重量、および特定危険物を積載したトラックなどをモデル化する場合に、[カスタム] を選択して、上記のカスタム移動モード パラメーターを設定することもできます。必要な解析結果を取得するために、異なる設定を試すことができます。解析設定を決定したら、組織の管理者と連携して、その設定を新規または既存の移動モードの一部として保存します。これにより、組織のすべてのユーザーが同じ設定で解析を実行できます。 注意:[カスタム] を選択すると、カスタム移動モード パラメーターに設定した値が解析に組み込まれます。組織で定義されている別の移動モードを指定すると、カスタム移動モード パラメーターで設定した値は無視されます。ツールはカスタムの設定ではなく、指定した移動モードの値を適用します。 | String |
Time_Units (オプション) | 起点と終点の各ペアの合計移動時間を計測およびレポートするときに使用される単位を指定します。 これには次の選択肢があります。
| String |
Distance_Units (オプション) | 起点と終点の各ペアの合計移動距離を計測およびレポートするときに使用される単位を指定します。 これには次の選択肢があります。
| String |
Analysis_Region (オプション) | 解析を実行する地域。このパラメーターに値を指定しない場合、入力ポイントの位置に基づいて地域名が自動的に計算されます。地域の名前は、地域名の自動検出が入力に対して正確ではない場合にのみ設定する必要があります。 地域を指定するには、次のいずれかの値を使用します。
レガシー:次の地域名は現在はサポートされておらず、今後のリリースで削除される予定です。廃止された地域名のいずれかを指定すると、サポートされている地域名がツールによって自動的に割り当てられます。
| String |
Number_of_Destinations_to_Find (オプション) | 起点ごとに検索を実行する終点の最大数を指定します。このパラメーターに値が指定されていない場合、出力マトリックスには、各起点からすべての終点までの移動コストが含まれます。個々の起点は、[検出する終点の数] パラメーターの値を無効化する独自の値を持つことができます (TargetDestinationCount フィールドで指定します)。 | Long |
Cutoff (オプション) | 所定の起点に対して終点の検索を中止する移動時間または移動距離の値。カットオフ値を超える終点は対象になりません。個々の起点は、[カットオフ] パラメーターの値を無効化する独自の値を持つことができます (Cutoff フィールドで指定します)。 値は、移動モードのインピーダンス属性が時間ベースの場合は [時間単位] で指定した単位、移動モードのインピーダンス属性が距離ベースの場合は [距離単位] で指定した単位にする必要があります。値を指定しない場合、ツールは終点の検索時に、移動時間または移動距離の制限を強制しません。 | Double |
Time_of_Day (オプション) | ルートの開始の日時。 運転移動モードをモデリングする場合、このパラメーターの値として現在の日時を指定すると、ライブ交通状況を使用して最適なルートが検出され、合計移動時間は交通状況に基づくものとなります。 時刻を指定すると、ルートと移動時間の推定がより正確になります。これは、その日時に該当する交通状況が移動時間に考慮されるためです。 [時刻のタイム ゾーン] パラメーターは、この日時が UTC を参照するか、ストップの場所のタイム ゾーンを参照するかを指定します。 [使用する単位] が時間ベース単位に設定されていない場合、このパラメーターは無視されます。 | Date |
Time_Zone_for_Time_of_Day (オプション) | [時刻] パラメーターのタイム ゾーンを指定します。
| String |
Point_Barriers | 一時的な規制として機能する 1 つ以上のポイント、または対象の道路を通行するために必要とされる追加の時間や距離を表す 1 つ以上のポイントを指定する場合に、このパラメーターを使用します。たとえば、ポイント バリアを使用して、道路沿いの倒木や、踏切で生じる遅延時間を表すことができます。 このツールでは、バリアとして追加できるポイントの数は 250 に制限されています。 ポイント バリアを指定する場合は、次の属性を使用して、各ポイント バリアのプロパティ (ポイント バリアの名前やバリアの種類など) を設定できます。 Name バリアの名前。 BarrierType ポイント バリアの通過を完全に禁止するか、通過時に時間または距離を追加するかを指定します。この属性の値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
Additional_Time バリアを通過するときに追加される移動時間。このフィールドは、解析の移動モードが時間ベースのインピーダンス属性を使用する場合にのみ、追加コスト バリアにのみ適用されます。 このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。 Additional_Distance バリアを通過するときに追加される距離。このフィールドは、解析の移動モードが距離ベースのインピーダンス属性を使用する場合にのみ、追加コスト バリアにのみ適用されます。 このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。 Additional_Cost バリアを通過するときに追加されるコスト。このフィールドは、解析の移動モードが時間ベースでも距離ベースでもないインピーダンス属性を使用する場合にのみ、追加コスト バリアにのみ適用されます。 FullEdge 解析時に、通行不可ポイント バリアをエッジ要素に適用する方法を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
CurbApproach バリアによって影響を受ける移動方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
ジャンクションは特定のポイントなので、右側/左側がありません。したがって、ジャンクション上にバリアを配置した場合は、アプローチ制限にかかわらずすべての車両に影響を与えます。 CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、施設が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから施設に到着するかです。つまり、結局のところ車両の右側または左側になります。たとえば、施設に到着するときに、車両と施設の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。 Bearing ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。 通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。 このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。 BearingTol 方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。 単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。 NavLatency このフィールドは、Bearing と BearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、Bearing と BearingTol の値が存在する場合でも、NavLatency 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想経過時間を示します。 NavLatency の時間単位は、解析オブジェクトの timeUnits プロパティで指定された単位と同じです。 | Feature Set |
Line_Barriers | 道路と交差しているラインの場所を移動できないようにする 1 つ以上のラインを指定する場合に、このパラメーターを使用します。たとえば、複数の道路区間にわたって通行禁止となるパレードやデモを表すときに通過不可ライン バリアを使用します。また、ライン バリアを使用すれば、道路網の特定の区間を迂回して利用できる経路をすばやく見つけることができます。 このツールでは、[ライン バリア] パラメーターを使用して規制できる道路の数に制限があります。ライン バリアとして指定できるラインの数に制限はありませんが、すべてのラインと交差する道路の総数が 500 を超えることはできません。 ライン バリアを指定する場合は、次の属性を使用するごとに、名前プロパティおよびバリア タイプ プロパティを設定できます。 Name バリアの名前。 | Feature Set |
Polygon_Barriers | 通過を完全に禁止するポリゴン、またはそのポリゴンと交差する道路を移動するときに時間または距離が係数に基づいて乗算されるポリゴンを指定する場合に、このパラメーターを使用します。 このサービスでは、[ポリゴン バリア] パラメーターを使用して規制できる道路の数に制限があります。ポリゴン バリアとして指定できるポリゴンの数に制限はありませんが、すべてのポリゴンと交差する道路の総数が 2,000 を超えることはできません。 ポリゴン バリアを指定する場合は、次の属性を使用して、各ポリゴン バリアのプロパティ (ポリゴン バリアの名前やバリアの種類など) を設定できます。 Name バリアの名前。 BarrierType バリアの通過を完全に禁止するか、バリアを通過する際のコスト (時間または距離など) を係数に基づいて計算するかを指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
ScaledTimeFactor これは、バリアが交差している道路の移動時間に乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。 このフィールドは、解析の移動モードが時間ベースのインピーダンス属性を使用する場合にのみ、コスト係数指定バリアにのみ適用されます。 ScaledDistanceFactor これは、バリアが交差している道路の距離に乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。 このフィールドは、解析の移動モードが距離ベースのインピーダンス属性を使用する場合にのみ、コスト係数指定バリアにのみ適用されます。 ScaledCostFactor これは、バリアと交差する道路のコストに乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。 このフィールドは、解析の移動モードが時間ベースでも距離ベースでもないインピーダンス属性を使用する場合にのみ、コスト係数指定バリアにのみ適用されます。 | Feature Set |
UTurn_at_Junctions (オプション) | ジャンクションでの U ターン ポリシーを指定します。U ターンを許可するということは、解析においてジャンクションで方向転換し、同じ道路を引き返すことができるということを意味します。 ジャンクションが道路の交差と行き止まりを表すことを前提に、さまざまな車両が、一部のジャンクションでは方向転換でき、他のジャンクションでは方向転換できない、というように設定できます。これは、ジャンクションが交差と行き止まりのどちらを表すかによって変わります。これに対応するには、ジャンクションに接続するエッジの数 (ジャンクションでのノードへの接続数) によって、暗黙的に U ターン ポリシーを指定します。以下では、このパラメーターで選択できる値と、ジャンクションので接続におけるそれぞれの意味について示します。
このパラメーターは、[移動モード] を [カスタム] に設定しなければ無視されます。 | String |
Use_Hierarchy (オプション) | ストップ間の最短パスを検索するときに階層を使用するかどうかを指定します。
施設と需要地点の間の直線距離が 50 マイル (80.46 キロメートル) を超える場合は、このパラメーターをオフに (Python では False に設定) しても、自動的に階層が使用されます。 このパラメーターは、[移動モード] を [カスタム] に設定しなければ無視されます。カスタム歩行モードをモデリングする場合、階層が動力付き車両用に設計されているため、階層をオフにすることをお勧めします。 | Boolean |
Restrictions (オプション) | 最適なルートを検索する際に使用される規制。 規制は、運転上の優先事項や要件を表します。ほとんどの場合は、規制により道路は通行禁止になります。たとえば、[Avoid Toll Roads] の規制を使用すると、ルートに有料道路が含まれるのは、インシデントまたは施設を訪問するために有料道路の使用が必要な場合のみになります。[Height Restriction] は、車両の高さより低い車高規制の場所を迂回できるようにします。車両に腐食性物質を積載している場合は、[Any Hazmat Prohibited] の規制を使用して、腐食性物質の運搬が法律で禁止されている道路の通行を回避します。 メモ:このパラメーターに指定した値は、[移動モード] を [カスタム] に設定しなければ無視されます。 メモ:一部の規制では、用途に関する追加の値を指定する必要があります。この値は、規制の名前、および規制に対応させることを意図している特定のパラメーターに関連付ける必要があります。[属性パラメーター値] パラメーターの [AttributeName] 列に規制の名前が表示されている場合、その規制を識別できます。通行可能な道路を検索するときに、規制が正しく使用されるように、規制に対応する [属性パラメーター値] パラメーター内で [ParameterValue] フィールドを指定する必要があります。 メモ:一部の規制は、特定の国でのみサポートされます。それらの規制の利用可否は、次のリスト内で地域ごとに記述されています。領域内で規制の利用可否が制限されている場合、ネットワーク解析範囲の国リストのセクションにあるテーブルを確認して、規制が特定の国で利用できるかどうかを決定できます。国の [ロジスティック属性] 列に [Yes] という値が指定されている場合、その国では、その地域内で選択可能な規制を利用できます。解析を行う範囲の国で利用できない規制の名前を指定した場合、無効な規制はサービスによって無視されます。また、[規制の使用] 属性パラメーターの値が 0 ~ 1 の範囲内にある規制も、サービスによって無視されます ([属性パラメーター値] パラメーターを参照)。[規制の使用] パラメーターの値が 0 より大きいすべての規制は禁止されます。 ツールは、次の規制をサポートしています。
レガシー:[Driving a Delivery Vehicle (配送車両の通行)] 規制属性は、使用できなくなりました。この規制は無効なので、サービスはこれを無視します。同様の結果を得るには、[Driving a Truck (トラックの通行)] 規制属性を [Avoid Truck Restricted Roads (トラック規制道路を使用しない)] 規制属性とともに使用します。 | String |
Attribute_Parameter_Values (オプション) | 規制が、制限された道路上の移動を禁止するか、回避するか、優先するかのいずれかを指定する場合など、属性または規制に必要な追加の値を指定する場合に、このパラメーターを使用します。規制が道路を回避または優先するためのものである場合は、このパラメーターを使用して道路が回避または優先される度合いも指定できます。たとえば、有料道路を決して使用しないこと、できるだけ避けること、または優先することを選択できます。 メモ:このパラメーターに指定した値は、[移動モード] を [カスタム] に設定しなければ無視されます。 フィーチャクラスから [属性パラメーター値] パラメーターを指定する場合は、フィーチャクラスのフィールド名が、次のフィールドと一致する必要があります。
[属性パラメーター値] パラメーターは、[規制] パラメーターに依存します。ParameterValue フィールドは、規制の名前が [規制] パラメーターの値として指定されている場合に限り適用できます。 [属性パラメーター値] では、AttributeName で指定した各規制の ParameterName フィールドに [規制の使用] という値があります。この値は、規制に関連付けられた道路での移動を禁止、回避、または優先するかどうか、および道路を回避または優先する場合のレベルを指定します。[ParameterName] フィールドの [規制の使用] の値には、次のいずれかの文字列、またはそれぞれの括弧に示した数値を割り当てることができます。
規制が車両の高さなどの車両の特性に依存している場合はほとんど、[Restriction Usage] にデフォルト値の PROHIBITED を使用できます。ただし、[規制の使用] の値がルートの優先度に依存している場合もあります。たとえば、[Avoid Toll Roads] の規制では、[規制の使用] 属性のデフォルト値は [AVOID_MEDIUM] になります。つまり、この規制を使用すると、可能な場合は有料道路を回避するルートが検索されます。また、[AVOID_MEDIUM] は、最適なルートを検索する際に有料道路を回避することの重要度も表しています (中程度の優先度)。[AVOID_LOW] を選択すると、有料道路を回避する重要度が下がります。AVOID_HIGH を選択すると重要度が上がり、有料道路を回避するためにより長い距離のルートも生成可能になります。[PROHIBITED] を選択すると有料道路の通行は完全に禁止され、ルートでは有料道路のいずれの部分も通行できなくなります。一部のユーザーは、有料道路を回避または禁止して、料金所での支払いを回避することが目的であることに注意してください。一方、料金所で支払うことよりも交通渋滞を避けることのほうに価値があるため、有料道路で運転することを優先するユーザーもいます。後者の場合は、[規制の使用] として [PREFER_LOW]、[PREFER_MEDIUM]、または [PREFER_HIGH] を選択できます。優先度が高いほど、規制に関連付けられている道路を通行するために遠回りするようになります。 | Record Set |
Impedance (オプション) | インピーダンスを設定します。インピーダンスは、道路セグメントや交通ネットワークのその他の部分を移動する労力やコストを表す値です。 移動時間もインピーダンスです。自動車は、空いている道路を 1 マイル移動するのに 1 分かかります。移動時間は、移動モードによって異なります。歩行者は、同じマイル数を歩くのに 20 分以上かかる可能性があります。そのため、モデル化している移動モードに対して適切なインピーダンスを選択することが重要です。 移動距離もインピーダンスになる可能性があります。道路の長さ (キロメートル) もインピーダンスと見なすことができます。この場合の移動距離は、すべてのモデルで同じです。歩行者の 1 キロメートルは、自動車でも 1 キロメートルです (変化する可能性があるのは、別のモデルでは移動が許可される通路で、ポイント間の距離に影響します。これは移動モード設定でモデル化されます)。 注意:このパラメーターに指定した値は、[移動モード] を [カスタム] (デフォルト値) に設定しなければ無視されます。 次のインピーダンス値から選択します。
[TravelTime]、[TruckTravelTime]、[Minutes]、[TruckMinutes]、[WalkTime] などの時間ベースのインピーダンスを選択する場合、[Measurement Units] パラメーターを時間ベースの値に設定する必要があります。[Miles]、[Kilometers] などの距離ベースのインピーダンスを選択する場合、[Measurement Units] が距離ベースである必要があります。 レガシー:[到達圏]、[トラック輸送時間]、[歩行時間]、[移動距離] インピーダンス値のサポートは終了するので、今後のリリースからは削除されます。これらのいずれかの値を使用している場合、時間ベースの値に対しては [時間インピーダンス] パラメーター、距離ベースの値に対しては [距離インピーダンス] パラメーターが使用されます。 | String |
Origin_Destination_Line_Shape | 結果として得られる OD コスト マトリックスのラインは、直線ジオメトリまたはジオメトリなしのどちらかで表現できます。どちらの場合も、起点と終点間の直線距離を使うのではなく、移動時間または移動距離を最小化する道路網に沿ったルートが常に計算されます。
| String |
Save_Output_Network_Analysis_Layer (オプション) | 解析設定をネットワーク解析レイヤー ファイルとして保存するかどうかを指定します。このファイルは、ArcMap などの ArcGIS Desktop アプリケーションで開いた場合でも、直接操作することはできません。これは、ツールから返される結果の品質を診断するために、Esri テクニカル サポートに送信されることを想定しています。
| Boolean |
Overrides (オプション) | ネットワーク解析問題の解決法を見つける場合に、解析の動作に影響を与えることができる追加設定。 JSON (JavaScript Object Notation) で、このパラメーターの値を指定する必要があります。たとえば、有効な値は {"overrideSetting1" : "value1", "overrideSetting2" : "value2"} という形式です。オーバーライド設定名は、必ず二重引用符で囲みます。値には、数値、ブール型、または文字列を使用できます。 このパラメーターのデフォルト値は、値なしであり、解析の設定を上書きしません。 オーバーライドは、設定を適用する前後で得られた結果を慎重に分析した後にのみ使用する必要のある高度な設定です。解析ごとにサポートされているオーバーライド設定の一覧およびそれらの許容される値については、Esri テクニカル サポートにお問い合わせください。 | string |
Time_Impedance (オプション) | 時間ベースのインピーダンス。インピーダンスは、道路セグメントや交通ネットワークのその他の部分の移動時間を表す値です。 メモ:[インピーダンス] パラメーターを使用して指定された移動モードのインピーダンスが時間ベースである場合、[時間インピーダンス] パラメーターと [インピーダンス] パラメーターの値が同じである必要があります。同一でなければ、サービスはエラーを返します。 | String |
Distance_Impedance (オプション) | 距離ベースのインピーダンス。インピーダンスは、道路セグメントや交通ネットワークのその他の部分の移動距離を表す値です。 メモ:[インピーダンス] パラメーターを使用して指定された移動モードのインピーダンスが距離ベースである場合、[距離インピーダンス] パラメーターと [インピーダンス] パラメーターの値が同じである必要があります。同一でなければ、サービスはエラーを返します。 | String |
Output_Format (オプション) | 出力フィーチャを作成する形式を指定します。 以下の形式から選択します。
[JSON ファイル] や [GeoJSON ファイル] など、ファイルベースの出力形式が指定されている場合は、ディスプレイに出力は追加されません。これは、ArcMap や ArcGIS Pro のようなアプリケーションは結果ファイルのコンテンツを描画できないからです。代わりに、結果ファイルはコンピューター上の一時ディレクトリにダウンロードされます。ArcGIS Pro でダウンロードされたファイルの場所を調べるには、プロジェクトのジオプロセシング履歴で、ツールの実行に対応するエントリの [出力結果ファイル] パラメーターの値を表示します。ArcMap でファイルの場所を調べるには、[ジオプロセシング結果] ウィンドウで、ツールの実行に対応するエントリの [出力結果ファイル] パラメーターから、ショートカット メニューの [ロケーションのコピー] オプションにアクセスします。 | String |
派生した出力
名前 | 説明 | データ タイプ |
Solve_Succeeded | サービスが OD コスト マトリックスを正常に生成したかどうかを判定します。 | ブール型 |
Output_Origin_Destination_Lines | 起点を終点に接続するラインへのアクセスを提供します。 | フィーチャ セット |
Output_Origins | 指定の起点から到達した終点の合計数や、解析に含めることができない起点など、解析で使用される起点に関する情報を提供します。 | フィーチャ セット |
Output_Destinations | 指定の起点から到達した起点の合計数や、解析に含めることができない終点など、解析で使用される終点に関する情報を提供します。 | フィーチャ セット |
Output_Network_Analysis_Layer | ツールのパラメーターでプロパティが構成されているネットワーク解析レイヤー。これは、マップ内でさらに詳細な解析やデバッグに使用できます。 | ファイル |
Output_Result_File | 解析結果を含んでいる *.zip ファイル。出力ごとに 1 つ以上のファイルが含まれます。個々のファイルの形式は [出力形式] パラメーターで指定されます。 | ファイル |
コードのサンプル
次の Python スクリプトは、 Generate Origin Destination Cost Matrix ツールをスクリプトで使用する方法を示しています。
"""This example shows how to generate a matrix of travel times between origins and destinations."""
import sys
import time
import arcpy
username = "<your user name>"
password = "<your password>"
od_service = "https://logistics.arcgis.com/arcgis/services;World/OriginDestinationCostMatrix;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/2.6/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(od_service)
# Set the variables to call the tool
origins = "C:/data/Inputs.gdb/Warehouses"
destinations = "C:/data/Inputs.gdb/Stores"
output_od_lines = "C:/data/Results.gdb/ODLines"
# Call the tool
result = arcpy.GenerateOriginDestinationCostMatrix_OriginDestinationCostMatrix(origins,
destinations,
Origin_Destination_Line_Shape="Straight Line")
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))
# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Save the lines connecting origins to destinations in a geodatabase
result.getOutput(1).save(output_od_lines)
次に、カスタム移動モードを使用して起点-終点コスト マトリクスの解析を行う方法を例示します。
"""This example shows how to perform an origin-destination cost matrix analysis using a custom travel mode
that models trucks carrying wide load."""
import sys
import time
import json
import arcpy
username = "<your user name>"
password = "<your password>"
od_service = "https://logistics.arcgis.com/arcgis/services;World/OriginDestinationCostMatrix;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(od_service)
# Set the variables to call the tool
origins = "C:/data/Inputs.gdb/Warehouses"
destinations = "C:/data/Inputs.gdb/Stores"
output_od_lines = "C:/data/Results.gdb/ODLines"
# Change Vehicle Width attribute parameter value to 4.5 (about 15 feet) for the Trucking Time travel mode
# used for the analysis
portal_url = "https://www.arcgis.com"
arcpy.SignInToPortal(portal_url, username, password)
travel_mode_list = arcpy.na.GetTravelModes(portal_url)
tt = travel_mode_list["Trucking Time"]
tt_json = str(tt)
tt_dict = json.loads(tt_json)
tt_dict["restrictionAttributeNames"].append("Width Restriction")
for attr_param in tt_dict["attributeParameterValues"]:
if attr_param['attributeName'] == 'Width Restriction' and attr_param['parameterName'] == 'Vehicle Width (meters)':
attr_param['value'] = 4.5
travel_mode = json.dumps(tt_dict)
# Call the tool
result = arcpy.GenerateOriginDestinationCostMatrix_OriginDestinationCostMatrix(origins, destinations,
Travel_Mode=travel_mode,
Origin_Destination_Line_Shape="Straight Line")
# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Save the lines connecting origins to destinations in a geodatabase
result.getOutput(1).save(output_od_lines)