VehicleRoutingProblemSolverProperties (arcpy.na)

サマリ

Provides access to analysis properties from a vehicle routing problem Network Analyst layer. The GetSolverProperties function is used to obtain a VehicleRoutingProblemSolverProperties object from a vehicle routing problem Network Analyst layer.

説明

The VehicleRoutingProblemSolverProperties object provides read and write access to all the analysis properties of a vehicle routing problem Network Analyst layer. The object can be used to modify the desired analysis properties of the vehicle routing problem layer, and the corresponding layer can be re-solved to determine the appropriate results. A new vehicle routing problem layer can be created using the Make Vehicle Routing Problem Layer geoprocessing tool. Obtaining the VehicleRoutingProblemSolverProperties object from a new vehicle routing problem layer allows you to reuse the existing layer for subsequent analyses rather than create a new layer for each analysis, which can be slow.

After modifying the properties of the VehicleRoutingProblemSolverProperties object, the corresponding layer can be immediately used with other functions and geoprocessing tools. There is no refresh or update of the layer required to honor the changes modified through the object.

特性

プロパティ説明データ タイプ
attributeParameters
(読み書き)

解析で使用されるパラメータ化属性を取得または設定できます。プロパティは Python ディクショナリを返します。ディクショナリのキーは、属性名とパラメータで構成される 2 つの値の組み合わせです。ディクショナリ内の各アイテムの値はパラメータ値です。

パラメータ化されたネットワーク属性は、リアルタイムに変化する属性値をモデリングするために使用されます。たとえば、12 フィートの車高規制があるトンネルをパラメータを使用してモデリングできます。この場合、車両の高さ(フィート)をパラメータ値として指定する必要があります。車両の高さが 12 フィートを超えている場合は、この規制が true に評価され、トンネルの通行が規制されます。同様に、橋は重量規制を指定するパラメータを保持することができます。

attributeParameters プロパティを直接変更しようとしても、値は更新されません。常に新しいディクショナリ オブジェクトを使用して、プロパティの値を設定する必要があります。以下の 2 つのコード ブロックは、これらの 2 つの方法の違いを示しています。

#Don't attempt to modify the attributeParameters property in place.
#This coding method won't work.

solverProps.attributeParameters[('HeightRestriction', 'RestrictionUsage')] = "PROHIBITED"
#Modify the attributeParameters property using a new dictionary object.
#This coding method works. 

params = solverProps.attributeParameters
params[('HeightRestriction', 'RestrictionUsage')] = "PROHIBITED"
solverProps.attributeParameters = params
ネットワーク解析レイヤにパラメータ化属性がない場合、このプロパティは None を返します。

Dictionary
capacityCount
(読み書き)

各車両の積載容量を示す場合に必要な積載容量の制約を示すディメンション数を取得または設定できます。

Integer
defaultDate
(読み書き)

日付が指定されない時間フィールド値で使用する日付を取得または設定できます。訪問先オブジェクトに対する時間フィールド(TimeWindowStart1 など)が時刻のみを示す値である場合、日付は defaultDate プロパティ値となります。たとえば、訪問先の TimeWindowStart1 値が 9:00 で defaultDatedatetime.date(2012, 3, 6) に設定されている場合、フィールドの時間全体の値は 2012/3/6 9:00 になります。デフォルトの日付はすでに日付を保持している時間フィールド値には無効です。

デフォルトの日付では、次の日付を使用して曜日を指定することもできます。

  • 今日 - 1899/12/30
  • 日 - 1899/12/31
  • 月 - 1900/1/1
  • 火 - 1900/1/2
  • 水 - 1900/1/3
  • 木 - 19001/4
  • 金 - 1900/1/5
  • 土 - 1900/1/6

たとえば、時間フィールド値に対する暗黙の日付を火曜日に指定するには、プロパティ値を「1900/1/2」に指定します。

DateTime
distanceAttribute
(読み書き)

ネットワークのエレメントに沿って長さを定義するのに使用する距離コスト属性を取得または設定できます。

String
distanceFieldUnits
(読み書き)

解析レイヤのサブレイヤおよびテーブル(ネットワーク解析のクラス)の距離的なフィールドで使用される距離の単位を取得または設定できます。この単位は、timeAttribute プロパティ値として指定されたネットワーク コスト属性の単位と同じである必要はありません。設定可能な値の一覧を次に示します。

  • センチメートル
  • デシメートル
  • フィート
  • インチ
  • キロメートル
  • メートル
  • マイル
  • ミリメートル
  • 海里マイル
  • ヤード

String
excessTransitTimeImportance
(読み書き)

超過移動時間の短縮の重要度を取得または設定できます。超過移動時間とは、訪問先ペア間を直接移動するのに必要な時間に対する超過時間です。この超過時間は、訪問先ペアへの立ち寄りの途中で、休憩を取ったり他の訪問先や拠点に移動することで発生します。設定可能な値の一覧を次に示します。

  • High全体の移動コストの増大を無視して、訪問先ペア間で超過移動時間が短いソリューションを検索します。訪問先ペア間で人を輸送し、乗車時間を短くしたい場合、この設定を使用すると便利です。これはタクシー サービスの特徴です。
  • Medium超過移動時間を短縮することと、全体のソリューション コストを削減することのバランスを取ります。
  • Low超過移動時間を無視して、全体のソリューション コストを最小にするソリューションを検索します。この設定は一般に宅配サービスで使用されます。宅配業者は人ではなく荷物を輸送するので、乗車時間について心配する必要はありません。宅配業者は [低] を使用することで、訪問先ペアに適切な順序でサービスを提供し、全体のソリューション コストを最小にすることができます。
String
outputPathShape
(読み書き)

解析で出力されるルート フィーチャの形状タイプを取得または設定できます。設定可能な値の一覧を次に示します。

  • TRUE_LINES_WITH_MEASURES(計測値を含む正確なライン)出力ルートはネットワーク ソースの正確な形状を保持します。リニア リファレンスのためのルートのメジャー値が出力に含まれます。メジャー値は、最初のストップから増加し、指定された位置に到着するまでの累積インピーダンスを記録します。
  • TRUE_LINES_WITHOUT_MEASURES(計測値を含まない正確なライン)出力ルートはネットワーク ソースの正確な形状を保持します。
  • STRAIGHT_LINES(直線)出力ルート形状はルート順序ごとに訪問先と拠点への立ち寄りを結ぶ直線になります。
  • NO_LINES(ラインなし)出力ルートに形状は生成されません。ルート案内を生成することもできません。
String
restrictions
(読み書き)

解析時に適用される規制属性のリストを取得または設定できます。空のリスト([])は、解析で使用される規制属性がないことを表します。

String
solverName
(読み取り専用)

解析プロパティ オブジェクトを取得するために使用されている Network Analyst レイヤが参照している解析の名前を返します。このプロパティは、VehicleRoutingProblemSolverProperties オブジェクトからアクセスされたときに必ず文字列「Vehicle Routing Problem Solver」を返します。

String
timeAttribute
(読み書き)

ネットワークのエレメントに沿って通過時間を定義するのに使用する時間を基準としたネットワーク コスト属性を取得または設定できます。このコスト属性は、解析によってソリューションが検出されると同時に最小化されます。

String
timeFieldUnits
(読み書き)

解析レイヤのサブレイヤおよびテーブル(ネットワーク解析のクラス)の一時的なフィールドで使用される時間の単位を取得または設定できます。この単位は、timeAttribute プロパティ値として指定されたネットワーク コスト属性の単位と同じである必要はありません。設定可能な値の一覧を次に示します。

  • 時間

String
timeWindowViolationImportance
(読み書き)

違反を招くことなく、タイム ウィンドウの条件を満たす重要度を取得または設定できます。タイム ウィンドウ違反は、タイム ウィンドウが閉じてから訪問先、拠点、または休憩にルートが到着した場合に発生します。この超過時間は、タイム ウィンドウの終了からルートの到着時間までの時間です。設定可能な値の一覧を次に示します。

  • High全体の移動時間の増大を無視して、タイム ウィンドウ違反を最小にするソリューションを検索します。全体のソリューション コストを最小にするよりも訪問先に時間どおりに到着することが重要である場合はこのオプションを選択します。訪問先で顧客と打ち合わせをする予定があり、遅刻して先方に迷惑をかけたくないという場合に使用します(別のオプションとして、超過がまったく許されないハード タイム ウィンドウを使用することもできます)。配車ルートの他の制約が指定されている場合、タイム ウィンドウの期間内に立ち寄ることができない訪問先が出てくると考えられます。この場合は、このオプションを使用しても違反が発生することがあります。
  • Mediumタイム ウィンドウの条件を満たすと同時に全体のソリューション コストがより小さくなるルートを求めます。
  • Lowタイム ウィンドウを無視して、全体の移動時間を最小にするソリューションを検索します。タイム ウィンドウの条件を満たすことが全体のソリューション コストを削減することより重要でない場合はこのオプションを選択します。未処理のサービス依頼が増えている場合は、この設定を使用すると便利です。保有車両の到着が遅れて顧客に迷惑をかけることになっても、1 日にサービスを提供する訪問先の数を増やして手持ちの注文をさばくために、このオプションを選択することができます。
String
useHierarchy
(読み書き)

解析を実行しているときの階層属性の使用を制御します。設定可能な値の一覧を次に示します。

  • USE_HIERARCHY(階層を使用) 階層属性を解析に使用します。階層を使用すると、解析は下位ランクのエッジよりも上位ランクのエッジを優先します。階層解析は、より高速で、運転者が遠回りであっても一般道路の代わりに高速道路を利用する状況をシミュレートするのに使用できます。このオプションは、Network Analyst レイヤが参照しているネットワーク データセットに階層属性がある場合のみ適用されます。値を True に設定することでも、このオプションを指定できます。
  • NO_HIERARCHY(階層を使用しない)階層属性を解析に使用しません。階層を使用しないことで、ネットワーク データセットの正確なルートが検索されます。値を False に設定することでも、このオプションを指定できます。
String
uTurns
(読み書き)

ストップ間のネットワーク移動中に発生する可能性のあるジャンクションでの U ターンを、解析でどのように処理するかを指定するポリシーを取得または設定できます。設定可能な値の一覧を次に示します。

  • ALLOW_UTURNS(U ターンを許可)任意の数の接続されたエッジを持つジャンクションで U ターンを許可します。
  • NO_UTURNS(U ターンを規制)ジャンクションの結合にかかわらず、すべてのジャンクションで U ターンを禁止します。ただし、この設定が選択されている場合でも、ネットワーク ロケーションでは U ターンが許可されます。同様に、個々のネットワーク ロケーションの CurbApproach プロパティで U ターンを禁止するように設定できます。
  • ALLOW_DEAD_ENDS_ONLY(行き止まりのみ許可)1 つの隣接エッジを持つジャンクション(行き止まり)を除くすべてのジャンクションでの U ターンを禁止します。
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY2 つの隣接するエッジが接するジャンクションでの U ターンを禁止します。ただし、交差点(3 つ以上の隣接エッジを持つジャンクション)および行き止まり(1 つの隣接エッジを持つジャンクション)では U ターンを許可します。ネットワークには、道路セグメントの中間に無関係のジャンクションが存在する場合があります。このオプションは、これらの場所で車両が U ターンすることを防ぎます。
String

コードのサンプル

VehicleRoutingProblemSolverProperties example

The script shows how to update the Distance Attribute, Default Date, U-Turns at Junctions, and Output Shape Type properties for an existing vehicle routing problem layer in the ArcMap table of contents. It assumes that a vehicle routing problem layer called Store Delivery Routes has been created in a new map document based on the tutorial network dataset of the San Francisco region.

#Get the vehicle routing problem layer object from a layer named
#"Store Delivery Routes" in the table of contents
vrpLayer = arcpy.mapping.Layer("Store Delivery Routes")

#Get the solver properties object from the vehicle routing problem layer
solverProps = arcpy.na.GetSolverProperties(vrpLayer)

#Update the properties for the vehicle routing problem layer using the 
#solver properties object
solverProps.distanceAttribute = "Meters"
#Set the default date to be Monday
solverProps.defaultDate = datetime.date(1900,1,1)
solverProps.uTurns = "NO_UTURNS"
solverProps.outputPathShape = "STRAIGHT_LINES"

関連トピック

4/26/2014