ラスト マイル デリバリー解析レイヤーの作成 (Make Last Mile Delivery Analysis Layer) (Network Analyst)

サマリー

ラスト マイル デリバリー ネットワーク解析レイヤーを作成し、その解析プロパティを設定します。 ラスト マイル デリバリー解析レイヤーは、複数の車両による配送を最適化するときに役立ちます。 このレイヤーを作成するには、ローカル ネットワーク データセットを使用するか、オンラインでホストされたサービスまたはポータル内のサービスを使用します。

使用法

  • ラスト マイル デリバリー解析で使用される解析ネットワークには、少なくとも 1 つの移動モード、時間単位を持つ 1 つのコスト属性、距離単位を持つ 1 つのコスト属性、タイム ゾーン属性が必要です。

  • このツールで解析レイヤーを作成した後は、[ロケーションの追加 (Add Locations)] ツールを使用して解析レイヤーにネットワーク解析オブジェクトを追加し、[解析の実行 (Solve)] ツールを使用して解析を実行し、[レイヤー ファイルの保存 (Save To Layer File)] ツールを使用して結果をディスクに保存することができます。

  • このツールをジオプロセシング モデルに使用するときは、モデルをツールとして動作させる場合、出力ネットワーク解析レイヤーにモデル パラメーターを作成する必要があります。そうしないと、出力レイヤーはマップのコンテンツに追加されません。

  • このツールは Python で実行できますが、Python でラスト マイル デリバリーのワークフローを自動化する方法として、arcpy.nax Network Analyst モジュールの LastMileDelivery 解析オブジェクトを使用することをお勧めします。

パラメーター

ラベル説明データ タイプ
ネットワーク データ ソース

ネットワーク解析が実行されるネットワーク データセットまたはサービス。 サービスのポータル URL を使用します。

このネットワークには、少なくとも 1 つの移動モード、時間単位を持つ 1 つのコスト属性、距離単位を持つ 1 つのコスト属性、タイム ゾーン属性が必要です。

Network Dataset Layer;String
レイヤー名
(オプション)

作成するネットワーク解析レイヤーの名前。

String
移動モード
(オプション)

解析で使用する移動モードの名前。 「移動モード」は、移動規制や U ターン ポリシーなど、歩行者、車、トラック、その他の交通手段がネットワークをどのように移動するかを決定するネットワーク設定のコレクションを表します。 移動モードは、ネットワーク データ ソースに対して定義されます。

arcpy.na.TravelMode オブジェクトおよび移動モードの有効な JSON 表現を含む文字列もパラメーターの入力として使用できます。

移動モードのインピーダンス属性には、時間単位が必要です。

String
時間単位
(オプション)

解析レイヤーのプロパティで使用される時間の単位と解析レイヤーのサブレイヤーおよびテーブル (ネットワーク解析のクラス) の時間的なフィールドで使用される時間の単位を指定します。 この値は、時間コスト属性の単位と一致する必要はありません。

  • 時間単位は分です。 これがデフォルトです。
  • 時間単位は秒です。
  • 時間時間単位は時間です。
  • 時間単位は日です。
String
距離単位
(オプション)

解析レイヤーのプロパティで使用される距離の単位と解析レイヤーのサブレイヤーおよびテーブル (ネットワーク解析のクラス) の距離的なフィールドで使用される距離の単位を指定します。 この値は、オプションである距離コスト属性の単位と一致する必要はありません。

注意:
ネットワーク データ ソースがサービスの場合、[インチ][センチメートル][ミリメートル]、および [デシメートル] オプションは使用できません。

  • マイル距離の単位はマイルです。 これがデフォルトです。
  • キロメートル距離の単位はキロメートルです。
  • フィート距離の単位はフィートです。
  • ヤード距離の単位はヤードです。
  • メートル距離の単位はメートルです。
  • インチ距離の単位はインチです。
  • センチメートル距離の単位はセンチメートルです。
  • ミリメートル距離の単位はミリメートルです。
  • デシメートル距離の単位はデシメートルです。
  • 海里距離の単位は海里です。
String
ルート最早開始日
(オプション)

ルートのデフォルトの最早開始日。 この日付は、Routes サブレイヤーの EarliestStartDate フィールドが NULL であるすべてのルートに使用されます。 パラメーター値が指定されていない場合は、Routes サブレイヤーのすべての行に、EarliestStartDate フィールドの値を指定する必要があります。

このパラメーターには、日付と時間の両方を指定できますが、日付のみが使用されます。 ルートの最早開始時間を設定するには、[ルート最早開始時間] パラメーターを使用します。

注意:
その他の Network Analyst 解析では、特殊な日付を使用して、特定の静的な日付の代わりに、曜日または現在の日付をモデル化できますが、ラスト マイル デリバリー解析ではできません。 特定の日付を選択する必要があります。

Date
ルート最早開始時間
(オプション)

ルートのデフォルトの最早開始時間。 この時刻は、Routes サブレイヤーの EarliestStartTime フィールドが NULL であるすべてのルートに使用されます。 パラメーター値が指定されていない場合は、Routes サブレイヤーのすべての行に、EarliestStartTime フィールドの値を指定する必要があります。

このパラメーターには、日付と時間の両方を指定できますが、時間のみが使用されます。 ルートの最早開始日を設定するには、[ルート最早開始日] パラメーターを使用します。

Date
最大ルートの合計時間
(オプション)

各ルートの最大許容合計時間。 この値は、任意の正の数値にすることができます。

この値は、Routes サブレイヤーの MaxTotalTime フィールドが NULL であるすべてのルートに使用されます。 パラメーター値が指定されていない場合は、Routes サブレイヤーのすべての行に、MaxTotalTime フィールドの値を指定する必要があります。

この値は、[時間単位] パラメーターで指定された単位で解釈されます。

Double
時間フィールドのタイム ゾーン
(オプション)

このツールでサポートされている、入力日時フィールドに使用される、タイム ゾーンを指定します。

UTC 形式での日時の値の指定は、訪問先や拠点があるタイム ゾーンが不明な場合や、訪問先と拠点が複数のタイム ゾーンに分散しているときに、すべての日時の値を同時に開始する必要がある場合に役立ちます。

  • ロケーションのローカル タイム訪問先または拠点に関連付けられた日時の値は、それらの訪問先と拠点のタイム ゾーンにあります。 ルートの場合、日時の値は、ルートの開始拠点があるタイム ゾーンをベースとします。 ルートの開始拠点がない場合は、全ルートにわたるすべての訪問先と拠点が、1 つのタイム ゾーンにある必要があります。 これがデフォルトです。
  • UTC訪問先、拠点、およびルートに関連付けられた日時の値は、UTC (協定世界時) 形式であり、それらの訪問先や拠点のタイム ゾーンをベースとしません。
String
順序の間隔
(オプション)

解析の実行時に、隣接する訪問先間で、訪問先サブレイヤーの Sequence フィールドに入れたままにしておく数値の間隔。 この値は、各ルート上にある実際の訪問先の順序の乗数として機能します。 たとえば、間隔が 5 の場合、ルート上にある第 1 の訪問先の Sequence フィールド値は 5、ルート上にある第 2 の訪問先の Sequence フィールド値は 10、第 3 の訪問先は 15 などになります。 このパラメーターは、新しい訪問先を順序の間隔に挿入できるため、最初のルート計画を作成した後に訪問先を挿入するのに役立ちます。

値は正の整数でなくてはいけません。 デフォルトは 1 です。

最初に解析を実行したときに、指定した順序の間隔を使用して、Sequence フィールド値に連続する値が設定されます。 その後の同じ解析の実行では、既存の訪問先の Sequence フィールド値が維持され、他の訪問先が使用していない Sequence フィールドに使用可能な整数値を使用して、新しい訪問先が間隔に挿入されます。 順序の間隔を 1 に設定すると、解析のたびに、順序の値が、常に連続する値に更新されます。

Long
解析時に無効な訪問先のロケーションを除外
(オプション)

無効な訪問先のロケーションを除外するかどうかを指定します。

  • オン - 無効な訪問先のロケーションが除外されます。これにより、有効なロケーションだけを使用して、解析が正常に実行されるようになります。
  • オフ - 無効な訪問先のロケーションが除外されず、解析が正常に実行されません。 これがデフォルトです。
Boolean
出力ルート形状
(オプション)

解析で出力されるルート フィーチャに使用される形状タイプを指定します。

指定した出力形状のタイプに関係なく、常に最適なルートはユークリッド距離ではなくネットワーク インピーダンスによって決定されます。 これは、ルート形状のみが異なり、ネットワークの基となっているトラバースは同じであることを意味します。

  • ネットワーク沿い出力ルートはネットワーク ソースの正確な形状を保持します。 リニア リファレンスのためのルートのメジャー値が出力に含まれます。 メジャー値は、最初のストップから増加し、指定された位置に到着するまでの累積インピーダンスを記録します。
  • ラインなし出力ルートに形状は生成されません。
  • 直線出力ルート形状はストップ間を結ぶ 1 本の直線になります。これがデフォルトです。
String
解析時にルート案内を生成
(オプション)

解析の実行時に、ルート案内を生成するかどうかを指定します。

  • オン - 解析時にルート案内が生成されます。
  • オフ - 解析時にルート案内が生成されません。 これがデフォルトです。
Boolean

派生した出力

ラベル説明データ タイプ
Network Analyst レイヤー

新しいネットワーク解析レイヤー。

Network Analyst Layer

arcpy.na.MakeLastMileDeliveryAnalysisLayer(network_data_source, {layer_name}, {travel_mode}, {time_units}, {distance_units}, {earliest_route_start_date}, {earliest_route_start_time}, {max_route_total_time}, {time_zone_for_time_fields}, {sequence_gap}, {ignore_invalid_order_locations}, {line_shape}, {generate_directions_on_solve})
名前説明データ タイプ
network_data_source

ネットワーク解析が実行されるネットワーク データセットまたはサービス。 サービスのポータル URL を使用します。

このネットワークには、少なくとも 1 つの移動モード、時間単位を持つ 1 つのコスト属性、距離単位を持つ 1 つのコスト属性、タイム ゾーン属性が必要です。

Network Dataset Layer;String
layer_name
(オプション)

作成するネットワーク解析レイヤーの名前。

String
travel_mode
(オプション)

解析で使用する移動モードの名前。 「移動モード」は、移動規制や U ターン ポリシーなど、歩行者、車、トラック、その他の交通手段がネットワークをどのように移動するかを決定するネットワーク設定のコレクションを表します。 移動モードは、ネットワーク データ ソースに対して定義されます。

arcpy.na.TravelMode オブジェクトおよび移動モードの有効な JSON 表現を含む文字列もパラメーターの入力として使用できます。

移動モードのインピーダンス属性には、時間単位が必要です。

String
time_units
(オプション)

解析レイヤーのプロパティで使用される時間の単位と解析レイヤーのサブレイヤーおよびテーブル (ネットワーク解析のクラス) の時間的なフィールドで使用される時間の単位を指定します。 この値は、時間コスト属性の単位と一致する必要はありません。

  • Minutes時間単位は分です。 これがデフォルトです。
  • Seconds時間単位は秒です。
  • Hours時間単位は時間です。
  • Days時間単位は日です。
String
distance_units
(オプション)

解析レイヤーのプロパティで使用される距離の単位と解析レイヤーのサブレイヤーおよびテーブル (ネットワーク解析のクラス) の距離的なフィールドで使用される距離の単位を指定します。 この値は、オプションである距離コスト属性の単位と一致する必要はありません。

  • Miles距離の単位はマイルです。 これがデフォルトです。
  • Kilometers距離の単位はキロメートルです。
  • Feet距離の単位はフィートです。
  • Yards距離の単位はヤードです。
  • Meters距離の単位はメートルです。
  • Inches距離の単位はインチです。
  • Centimeters距離の単位はセンチメートルです。
  • Millimeters距離の単位はミリメートルです。
  • Decimeters距離の単位はデシメートルです。
  • NauticalMiles距離の単位は海里です。

注意:
ネットワーク データ ソースがサービスの場合、InchesCentimetersMillimetersDecimeters オプションは使用できません。

String
earliest_route_start_date
(オプション)

ルートのデフォルトの最早開始日。 この日付は、Routes サブレイヤーの EarliestStartDate フィールドが NULL であるすべてのルートに使用されます。 パラメーター値が指定されていない場合は、Routes サブレイヤーのすべての行に、EarliestStartDate フィールドの値を指定する必要があります。

このパラメーター値は、datetime.date オブジェクトを使用して指定します。

注意:
その他の Network Analyst 解析では、特殊な日付を使用して、特定の静的な日付の代わりに、曜日または現在の日付をモデル化できますが、ラスト マイル デリバリー解析ではできません。 特定の日付を選択する必要があります。

Date
earliest_route_start_time
(オプション)

ルートのデフォルトの最早開始時間。 この時刻は、Routes サブレイヤーの EarliestStartTime フィールドが NULL であるすべてのルートに使用されます。 パラメーター値が指定されていない場合は、Routes サブレイヤーのすべての行に、EarliestStartTime フィールドの値を指定する必要があります。

このパラメーター値は、datetime.time オブジェクトを使用して指定します。

Date
max_route_total_time
(オプション)

各ルートの最大許容合計時間。 この値は、任意の正の数値にすることができます。

この値は、Routes サブレイヤーの MaxTotalTime フィールドが NULL であるすべてのルートに使用されます。 パラメーター値が指定されていない場合は、Routes サブレイヤーのすべての行に、MaxTotalTime フィールドの値を指定する必要があります。

この値は、time_units パラメーターで指定された単位で解釈されます。

Double
time_zone_for_time_fields
(オプション)

このツールでサポートされている、入力日時フィールドに使用される、タイム ゾーンを指定します。

  • LOCAL_TIME_AT_LOCATIONS訪問先または拠点に関連付けられた日時の値は、それらの訪問先と拠点のタイム ゾーンにあります。 ルートの場合、日時の値は、ルートの開始拠点があるタイム ゾーンをベースとします。 ルートの開始拠点がない場合は、全ルートにわたるすべての訪問先と拠点が、1 つのタイム ゾーンにある必要があります。 これがデフォルトです。
  • UTC訪問先、拠点、およびルートに関連付けられた日時の値は、UTC (協定世界時) 形式であり、それらの訪問先や拠点のタイム ゾーンをベースとしません。

UTC 形式での日時の値の指定は、訪問先や拠点があるタイム ゾーンが不明な場合や、訪問先と拠点が複数のタイム ゾーンに分散しているときに、すべての日時の値を同時に開始する必要がある場合に役立ちます。

String
sequence_gap
(オプション)

解析の実行時に、隣接する訪問先間で、訪問先サブレイヤーの Sequence フィールドに入れたままにしておく数値の間隔。 この値は、各ルート上にある実際の訪問先の順序の乗数として機能します。 たとえば、間隔が 5 の場合、ルート上にある第 1 の訪問先の Sequence フィールド値は 5、ルート上にある第 2 の訪問先の Sequence フィールド値は 10、第 3 の訪問先は 15 などになります。 このパラメーターは、新しい訪問先を順序の間隔に挿入できるため、最初のルート計画を作成した後に訪問先を挿入するのに役立ちます。

値は正の整数でなくてはいけません。 デフォルトは 1 です。

最初に解析を実行したときに、指定した順序の間隔を使用して、Sequence フィールド値に連続する値が設定されます。 その後の同じ解析の実行では、既存の訪問先の Sequence フィールド値が維持され、他の訪問先が使用していない Sequence フィールドに使用可能な整数値を使用して、新しい訪問先が間隔に挿入されます。 順序の間隔を 1 に設定すると、解析のたびに、順序の値が、常に連続する値に更新されます。

Long
ignore_invalid_order_locations
(オプション)

無効な訪問先のロケーションを除外するかどうかを指定します。

  • SKIP無効な訪問先のロケーションが除外されます。これにより、有効なロケーションだけを使用して、解析が正常に実行されるようになります。
  • HALT無効な訪問先のロケーションが除外されず、解析が正常に実行されません。 これがデフォルトです。
Boolean
line_shape
(オプション)

解析で出力されるルート フィーチャに使用される形状タイプを指定します。

  • ALONG_NETWORK出力ルートはネットワーク ソースの正確な形状を保持します。 リニア リファレンスのためのルートのメジャー値が出力に含まれます。 メジャー値は、最初のストップから増加し、指定された位置に到着するまでの累積インピーダンスを記録します。
  • NO_LINES出力ルートに形状は生成されません。
  • STRAIGHT_LINES出力ルート形状はストップ間を結ぶ 1 本の直線になります。これがデフォルトです。

指定した出力形状のタイプに関係なく、常に最適なルートはユークリッド距離ではなくネットワーク インピーダンスによって決定されます。 これは、ルート形状のみが異なり、ネットワークの基となっているトラバースは同じであることを意味します。

String
generate_directions_on_solve
(オプション)

解析の実行時に、ルート案内を生成するかどうかを指定します。

  • DIRECTIONS解析時にルート案内が生成されます。
  • NO_DIRECTIONS解析時にルート案内が生成されません。 これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
out_network_analysis_layer

新しいネットワーク解析レイヤー。

Network Analyst Layer

コードのサンプル

MakeLastMileDeliveryAnalysisLayer の例 1 (Python ウィンドウ)

パラメーターのサブセットを指定して、ツールを実行します。

import datetime

arcpy.na.MakeLastMileDeliveryAnalysisLayer(
    r"C:\Data\SanFrancisco.gdb\Transportation\Streets_ND",
    "Package Delivery",
    "Trucking Time",
    time_units="Hours",
    earliest_route_start_date=datetime.date(2023, 11, 28),
    earliest_route_start_time=datetime.time(7, 30, 0),
    route_start_flexibility=1.5,
    line_shape="NO_LINES"
)

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック