概要
一連の入力位置から最適な場所を選択します。
このツールへの入力には、施設 (商品やサービスを提供) および需要地点 (商品やサービスを消費) があります。目的は、需要地点に最も効率よく商品やサービスを提供する施設を検索することです。このために、異なる施設に需要地点が割り当てられる複数の方法が解析されます。ソリューションは、施設に最大の需要を割り当て、全体の移動時間と距離を最小化するシナリオです。出力には、ソリューション施設、割り当てられた施設に関連付けられた需要地点、需要地点と施設を接続するラインが含まれます。
ロケーション-アロケーション ツールは、特定の解析タイプを処理するよう設定できます。次のようなケースがあります。
ある小売店が、エリア内の小売市場の 10 パーセントを獲得するために開発すべき可能性のある店舗場所を知りたい場合があります。
消防局が、応答時間 4 分以内にコミュニティの 90 パーセントに到着するために、どこに消防署を配置すべきかを判断したい場合があります。
警察署が、過去に夜間の犯罪が発生した場所に事前に人員を配置させたい場合があります。
豪雨の後、災害対策局が、患者の仕分け施設を設営し、患者受け入れを制限して、被災者に対応するための最適な場所を見つけたい場合があります。
図
使用法
ツール ダイアログ ボックスの各種オプション パラメーターは、管理しやすいよう次の 7 つのカテゴリに分類されています。
- 高度な解析
- バリア
- カスタム移動モード
- ロケーション-アロケーション解析設定
- ネットワーク データセット
- ネットワーク ロケーション
- 出力
- サービスのケーパビリティ
構文
arcpy.na.SolveLocationAllocation(Facilities, Demand_Points, Measurement_Units, Network_Dataset, Output_Geodatabase, Output_Allocation_Lines_Name, Output_Facilities_Name, Output_Demand_Points_Name, Output_Route_Edges_Name, {Problem_Type}, {Number_of_Facilities_to_Find}, {Default_Measurement_Cutoff}, {Default_Capacity}, {Target_Market_Share}, {Measurement_Transformation_Model}, {Measurement_Transformation_Factor}, {Travel_Direction}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_Policy}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Time_Attribute}, {Time_Attribute_Units}, {Distance_Attribute}, {Distance_Attribute_Units}, {Use_Hierarchy_in_Analysis}, {Restrictions}, {Attribute_Parameter_Values}, {Accumulate_Attributes}, {Maximum_Snap_Tolerance}, {Feature_Locator_WHERE_Clause}, {Allocation_Line_Shape}, {Allocation_Line_Simplification_Tolerance}, {Maximum_Features_Affected_by_Point_Barriers}, {Maximum_Features_Affected_by_Line_Barriers}, {Maximum_Features_Affected_by_Polygon_Barriers}, {Maximum_Facilities}, {Maximum_Facilities_to_Find}, {Maximum_Demand_Points}, {Force_Hierarchy_Beyond_Distance}, {Save_Output_Network_Analysis_Layer}, {Travel_Mode}, {Overrides})
パラメーター | 説明 | データ タイプ |
Facilities | 1 つまたは複数の施設を指定します。ここで指定する複数の施設から最適な場所がツールによって選択されます。 競合の解析で、競合店がある中で最適な場所を見つけようとする場合は、競合店の施設もここで指定します。 施設を指定する場合は、属性を使用して、各施設のプロパティ (施設の名前やタイプなど) を設定できます。施設には、次のフィールドを指定できます。 OBJECTID - システムで管理される ID フィールド。 SHAPE - 施設の地理的位置を示すジオメトリ フィールド。 Name - 施設の名前。施設がソリューションの一部である場合、名前は出力アロケーション ラインの名前に含まれます。 FacilityType - 施設が候補施設、必須施設、競合施設のいずれであるかを指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
Weight - 施設に対する相対的なウェイトの割り当て。これは、1 つの施設のもう 1 つの施設と比較した場合の魅力、利用価値、または傾向を格付けするのに使用されます。 たとえば、ある施設に対して値を 2.0 に設定すると、2 対 1 の割合で、もう 1 つの施設ではなくその施設で買い物をすることを好む顧客を獲得できます。施設のウェイトに影響する可能性のある要因には、面積、周辺地域、建物の築年数などがあります。Weight 値 (1 を除く) は、[市場シェアの最大化] 解析タイプと [目標市場シェア] 解析タイプのみで考慮されます。他の解析タイプでは無視されます。 Capacity - Capacity は [カバー容量の最大化] 解析タイプに固有のフィールドで、他の解析タイプでは無視されます。 Capacity は、施設が供給可能な加重需要の量を指定します。施設の容量を超える需要は、施設のデフォルトの計測カットオフの範囲内であっても、その施設には割り当てられません。 Capacity フィールドに割り当てられた値は、施設の [デフォルトの容量] パラメーター (Python では Default_Capacity) よりも優先されます。 CurbApproach - 車両が施設に到着する方向または施設から出発する方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
CurbApproach プロパティは、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、施設が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから施設に到着するかです。つまり、結局のところ車両の右側または左側になります。たとえば、施設に到着するときに、車両とインシデントの間に交通レーンがないほうがいい場合は、米国では [車両の右側] (1) を選択し、英国では [車両の左側] (2) を選択します。 | Feature Set |
Demand_Points | 1 つまたは複数の需要地点を指定します。ここで指定する需要地点に対して提供されるサービスに基づいて、最適な施設がツールによって選択されます。 需要地点を指定する場合は、属性を使用して、各施設のプロパティ (需要地点の名前やウェイトなど) を設定できます。需要地点には、次のフィールドを指定できます。 OBJECTID - システムで管理される ID フィールド。 SHAPE - 施設の地理的位置を示すジオメトリ フィールド。 Name - 需要地点の名前。需要地点がソリューションの一部である場合、名前は出力アロケーション ラインの名前に含まれます。 GroupName - 需要地点が属しているグループの名前。このプロパティは、[カバー容量の最大化]、[目標市場シェア]、および [市場シェアの最大化] の解析タイプでは無視されます。 複数の需要地点が 1 つのグループ名を共有している場合、解析はそのグループに属するすべての需要地点を同じ施設に割り当てます。距離カットオフなどの制約により、グループ内の需要地点のいずれかが同じ施設に到達できない場合、いずれの需要地点も割り当てられません。 Weight - 需要地点の相対加重。ウェイトの値が 2.0 であれば、その需要地点は値が 1.0 の需要地点よりも 2 倍重要であることを示します。需要地点が世帯を示す場合、ウェイトは各世帯の人数を示します。 Cutoff_Time - 需要地点は、ここに示される移動時間を越える施設には割り当てられません。このフィールド値は、[Default Measurement Cutoff] パラメーターの値よりも優先されます。 この属性値の単位は、[計測単位] パラメーターで指定されます。計測単位が時間ベースである場合に限り、この属性値が解析時に参照されます。デフォルト値の NULL は、優先されるカットオフがないことを意味します。 Cutoff_Distance - 需要地点は、ここに示される移動距離を越える施設には割り当てられません。このフィールド値は、[Default Measurement Cutoff] パラメーターの値よりも優先されます。 この属性値の単位は、[計測単位] パラメーターで指定されます。計測単位が距離ベースである場合に限り、この属性値が解析時に参照されます。デフォルト値の NULL は、優先されるカットオフがないことを意味します。 CurbApproach - 車両が施設に到着する方向または施設から出発する方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
CurbApproach プロパティは、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、需要地点が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから需要地点に到着するかです。つまり、結局のところ車両の右側または左側になります。たとえば、需要地点に到着するときに、車両と需要地点の間に交通レーンがないほうがいい場合は、米国では [車両の右側] (1) を選択し、英国では [車両の左側] (2) を選択します。 | Feature Set |
Measurement_Units | 需要地点と施設間の移動時間または移動距離の計測に使用する単位を指定します。どこが加重需要が最大で、移動が最小であるかによって、最善の施設がツールによって選択されます。 出力アロケーション ラインでは、このパラメーターに指定する単位を含め、複数の単位で移動距離または移動時間が出力されます。選択できる単位は次のとおりです。
このツールでは、選択した計測単位が時間ベースか距離ベースかに応じて、[時間属性] パラメーターに指定したネットワーク コスト属性を使用するか、[距離属性] パラメーターに指定したネットワーク コスト属性を使用するかが選択されます。 対応する時間または距離のコスト属性の単位と [計測単位] の値が異なる場合は、ツールによって必要な単位変換が実行されます。 | String |
Network_Dataset | 解析が実行されるネットワーク データセット。ほとんどの場合、ネットワーク データセットは道路ネットワークを表しますが、他の種類の交通ネットワークを表すこともあります。ネットワーク データセットには、少なくとも 1 つの時間ベースのコスト属性と 1 つの距離ベースのコスト属性が必要です。 | Network Dataset Layer |
Output_Geodatabase | 出力ワークスペースです。このワークスペースはすでに存在している必要があります。デフォルトの出力ワークスペースは、in_memory です。 | Workspace |
Output_Allocation_Lines_Name | 需要地点を割り当てられた施設に接続するラインを含む出力フィーチャクラスの名前。 「ロケーション-アロケーションの解析 (Solve Location-Allocation) の出力」では、この出力フィーチャクラスのスキーマが説明されています。 | String |
Output_Facilities_Name | 施設を含む出力フィーチャクラスの名前。 「ロケーション-アロケーションの解析 (Solve Location-Allocation) の出力」では、この出力フィーチャクラスのスキーマが説明されています。 | String |
Output_Demand_Points_Name | 需要地点を含む出力フィーチャクラスの名前。 「ロケーション-アロケーションの解析 (Solve Location-Allocation) の出力」では、この出力フィーチャクラスのスキーマが説明されています。 | String |
Output_Route_Edges_Name | ルート エッジ含む出力フィーチャクラスの名前。ルート エッジは、需要地点とそれらが割り当てられている施設間の最短パスに沿った個々の道路フィーチャを表します。 この出力は、施設への移動時に交通量が最も多い道路セグメントを判定するのによく使用されます。この情報は、広告の配置や、避難時の交通量の負荷をサポートする道路の拡張などに使用できます。 出力ルート エッジ フィーチャクラスを指定するには、[アロケーション ライン形状] パラメーターを正確なライン形状に設定する必要があります。 「ロケーション-アロケーションの解析 (Solve Location-Allocation) の出力」では、この出力フィーチャクラスのスキーマが説明されています。 | String |
Problem_Type (オプション) | ロケーション-アロケーション解析の目的を指定します。デフォルトの目的は、インピーダンスの最小化です。
| String |
Number_of_Facilities_to_Find (オプション) | 解析時に検出する施設の数を指定します。デフォルト値は 1 です。 FacilityType フィールド値が 1 (必須) である施設が常に最初に選択されます。残りの検出する必要のある施設は、FacilityType フィールド値が 2 である候補施設から選択されます。 解析前に FacilityType 値が 3 ([選択済み]) に設定されている施設は、解析時には候補施設として処理されます。 検出する施設の数が必要な施設の数より少ない場合、エラーが発生します。 目的の達成に必要な施設の最小数が決定されるため、[施設数の最小化] 解析タイプと [目標市場シェア] 解析タイプでは [検出する施設数] は無効です。 | Long |
Default_Measurement_Cutoff (オプション) | 需要地点と需要地点が割り当てられる施設間で許容される最大移動時間または移動距離を指定します。需要地点が施設のカットオフの範囲外にある場合、その施設には割り当てられません。 デフォルト値は、指定なしです。これは、カットオフ制限が適用されないことを表します。 このパラメーターの単位は、[Measurement Units] パラメーターで指定される単位と同じです。 移動時間または移動距離のカットオフは、道路に沿った最短距離の経路で計測されます。 このプロパティは、店舗に訪れるために顧客が移動することをいとわない最大距離や、消防署がコミュニティのすべての人に到達するのにかかっても許容される最長時間などをモデリングするのに使用することもできます。 需要地点には Cutoff_Time フィールドと Cutoff_Distance フィールドがあり、これが設定されていると、[インピーダンス カットオフ] パラメーターが上書きされます。たとえば、施設に到達するために移動してもいとわない距離が農村部の住民の場合は最大 10 マイルであるのに対し、都市部の住民の場合は最大 2 マイルであるとします。[計測単位] が [マイル] に設定されている場合、デフォルトの計測カットオフを 10 に設定し、都市部の需要地点の Cutoff_Distance フィールド値を 2 に設定することで、この動作をモデリングできます。 | Double |
Default_Capacity (オプション) | このプロパティは、[カバー容量の最大化] 解析タイプのみで使用されます。解析ですべての施設に割り当てられるデフォルトの容量です。施設の Capacity フィールドに指定した値は、施設のデフォルトの容量よりも優先されます。 デフォルト値は 1 です。 | Double |
Target_Market_Share (オプション) | このパラメーターは、[目標市場シェア] 解析タイプのみで使用されます。これは、選択した必須施設で獲得したい総需要ウェイトに占める割合です。解析では、ここで指定される目標市場シェアを獲得するのに必要な最小数の施設が選択されます。 デフォルト値は 10 パーセントです。 | Double |
Measurement_Transformation_Model (オプション) | これは、施設と需要地点の間のネットワーク コストを変換するための式を設定します。[インピーダンス パラメーター] とともに使用されるこのプロパティは、施設と需要地点の間のネットワーク インピーダンスが、解析でどの施設が選択されるかに影響する度合いを指定します。 次に、変換のオプションについて説明します。「d」は需要地点、「f」は施設です。インピーダンスとは、2 地点間の最短移動距離または移動時間を表します。したがって、インピーダンスdf は需要地点 d と施設 f の間の最短パス (時間または距離) であり、コストdf は施設と需要地点の間の変換された移動時間または移動距離です。ラムダ (λ) は、インピーダンス パラメーターを示します。[Measurement Units] の設定により、移動時間と移動距離のどちらが解析されるかが指定されます。
| String |
Measurement_Transformation_Factor (オプション) | [計測変換モデル] パラメーターで指定された計算式へのパラメーター値を提供します。パラメーター値はインピーダンス変換がリニアのタイプである場合、無視されます。乗数または指数関数のインピーダンス変換の場合、値は 0 以外である必要があります。 デフォルト値は 1 です。 | Double |
Travel_Direction (オプション) | 移動時間または移動距離を施設から需要地点への方向で計測するか、需要地点から施設への方向で計測するかを指定します。デフォルト値は、施設から需要地点への方向での計測です。
移動時間または移動距離は、移動の方向によって異なる場合があります。地点 A から B の方向へ移動する場合、反対方向に移動する場合に比べて、一方通行やターン規制などにより、交通量が少なくなったり、経路が短くなったりする場合があるためです。たとえば、地点 A から B の方向に移動するのに 10 分しかかからない場合でも、反対方向に移動すると 15 分かかるということもあります。このように計測値が異なることにより、カットオフのために需要地点が特定の施設に割り当てられるかどうかが影響を受けたり、需要が分配される解析タイプで獲得される需要量が影響を受ける可能性があります。 消防署の場合、消防署から緊急事態の場所まで移動する時間が重視されるため、通常は施設から需要地点への方向で計測されます。小売店の場合、買物客が店舗に到達するまでの時間が重視されるため、通常は需要地点から施設への方向で計測されます。 [移動方向] は、指定された開始時間の意味も決定します。詳細については、[時刻] パラメーターをご参照ください。 | String |
Time_of_Day (オプション) | 移動を開始する時間を指定します。このプロパティは、[計測単位] が時間ベースでない場合、無視されます。デフォルトでは、時間も日付も指定なしです。[時刻] が指定されない場合、解析時には一般的な速度 (通常は道路標識の速度制限) が使用されます。 交通状況は常にリアルタイムで変化しているため、それに伴って施設と需要地点間の移動時間も変動します。したがって、複数回の解析において異なる時間や日付を指定すると、需要の施設への割り当てられ方や結果としてどの施設が選択されるかが異なる可能性があります。 時刻は常に開始時間を表します。ただし、移動は施設から開始される場合と需要地点から開始される場合があるため、[移動方向] パラメーターで選択する値によって異なります。 [時刻のタイムゾーン] パラメーターは、この日時が UTC を表すか、施設または需要地点が位置するタイム ゾーンを表すかを指定します。 | Date |
Time_Zone_for_Time_of_Day (オプション) | [時刻] パラメーターのタイム ゾーンを指定します。デフォルトでは、現地になっています。
[時刻のタイムゾーン] の設定に関係なく、施設および需要地点が複数のタイム ゾーンにある場合は、次の規則が適用されます。
| String |
UTurn_Policy (オプション) | ジャンクションでの U ターン ポリシー。U ターンを許可するということは、解析においてジャンクションで方向転換し、同じ道路を引き返すことができるということを意味します。ジャンクションが道路の交差と行き止まりを表すことを前提に、さまざまな車両が、一部のジャンクションでは方向転換でき、他のジャンクションでは方向転換できない、というように設定できます。これは、ジャンクションが交差と行き止まりのどちらを表すかによって変わります。これに対応するには、ジャンクションに接続するエッジや道路の数 (ジャンクションでのノードへの接続数) によって、暗黙的に U ターン ポリシーを指定します。以下では、このパラメーターで選択できる値と、ジャンクションので接続におけるそれぞれの意味について示します。
このパラメーターの値は、[移動モード](Python では Travel_Mode) をカスタム以外の値に設定した場合、オーバーライドされます。 | String |
Point_Barriers (オプション) | ポイント バリアを指定します。ポイント バリアは、通行不可と追加コストの 2 種類に分かれています。これらは、一時的にネットワーク上のポイントの通行を規制したり、ポイントにインピーダンスを追加したりします。ポイント バリアはフィーチャ セットで定義されます。ポイント フィーチャに指定した属性値によって、ポイント バリアが通行不可バリアなのか、追加コスト バリアなのかが決まります。属性テーブルの各フィールドとその説明を以下に示します。 ObjectID: システムで管理される ID フィールド。 Shape: ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 Name: バリアの名前。 BarrierType: バリアの通過を完全に規制するのか、バリアを通過する際のコストを追加するのかを指定します。次の 2 つのオプションがあります。
[規制] の場合は 0 の値、[追加コスト] の場合は 2 の値を使用します。 Additional_Time: バリアを通過するときに追加される移動時間の値を指定します。このフィールドは、追加コスト バリアにのみ適用され、計測単位が時間ベースである場合に限られます。このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。 Additional_Distance: バリアを通過するときに追加される距離の値を指定します。このフィールドは、追加コスト バリアにのみ適用され、計測単位が距離ベースである場合に限られます。このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。 | Feature Set |
Line_Barriers (オプション) | 一時的にラインの横断を規制するライン バリアを指定します。ライン バリアは、フィーチャ セットで定義されます。属性テーブルの各フィールドとその説明を以下に示します。 ObjectID: システムで管理される ID フィールド。 Shape: ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 Name: バリアの名前。 | Feature Set |
Polygon_Barriers (オプション) | ポリゴン バリアを指定します。ポリゴン バリアは、通行不可とコスト係数指定の 2 種類に分かれています。これらは、ポリゴン バリアに含まれるネットワークの一部に対して、一時的に通行を規制したり、インピーダンスを増減したりします。ポリゴン バリアはフィーチャ セットで定義されます。ポリゴン フィーチャに指定した属性値によって、ポリゴン バリアが通行不可バリアなのか、コスト係数指 バリアなのかが決まります。属性テーブルの各フィールドとその説明を以下に示します。 ObjectID: システムで管理される ID フィールド。 Shape: ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 Name: バリアの名前。 BarrierType: バリアの通過を完全に禁止するか、バリアを通過する際のコストを係数に基づいて計算するかを指定します。次の 2 つのオプションがあります。
[規制] の場合は 0 の値、[コスト係数指定] の場合は 1 の値を使用します。 ScaledTimeFactor: これは、バリアが交差している道路の移動時間に乗算する係数です。このフィールドは、コスト係数指定バリアにのみ適用され、計測単位が時間ベースである場合に限られます。このフィールドには 0 より大きい値を指定する必要があります。 ScaledDistanceFactor: これは、バリアが交差している道路の距離に乗算する係数です。この属性は、コスト係数指定バリアにのみ適用され、計測単位が距離ベースである場合に限られます。この属性には 0 より大きい値を指定する必要があります。 | Feature Set |
Time_Attribute (オプション) | [使用する単位] の値が時間単位である場合に使用するネットワーク コスト属性を定義します。 [使用する単位] の値がここに定義されているコスト属性の単位と異なる場合は、ツールによって必要な時間単位の変換がなされます。つまり、デフォルトのカットオフの時間単位とネットワーク コスト属性が同じである必要はありません。 このパラメーターの値は、[移動モード](Python では Travel_Mode) を [カスタム] 以外の値に設定した場合、オーバーライドされます。 | String |
Time_Attribute_Units (オプション) | 時間属性の単位。時間属性の単位を明示的に設定できますが、何も指定しないか、"#" を指定して、解析によって単位が決定されるようにすることをお勧めします。 このパラメーターの値は、Travel_Mode を CUSTOM 以外の値に設定した場合、オーバーライドされます。 | String |
Distance_Attribute (オプション) | [使用する単位] の値が距離単位である場合に使用するネットワーク コスト属性を定義します。 [使用する単位] の値がここに定義されているコスト属性の単位と異なる場合は、ツールによって必要な距離単位の変換がなされます。つまり、計測単位とネットワーク コスト属性の距離単位が同じである必要はありません。 このパラメーターの値は、[移動モード](Python では Travel_Mode) を [カスタム] 以外の値に設定した場合、オーバーライドされます。 | String |
Distance_Attribute_Units (オプション) | 距離属性の単位。距離属性の単位を明示的に設定できますが、何も指定しないか、"#" を指定して、解析によって単位が決定されるようにすることをお勧めします。 このパラメーターの値は、Travel_Mode が CUSTOM 以外の値に設定されているとオーバーライドされます。 | String |
Use_Hierarchy_in_Analysis (オプション) | ポイント間の最短ルートを検索するときに階層を使用するかどうかを指定します。
解析を実行するネットワーク データセットに使用する階層属性が定義されていない場合、パラメーターは使用されません。この場合、「#」をパラメーター値として使用します。 Force_Hierarchy_Beyond_Distance パラメーターを使用すると、Use_Hierarchy_in_Analysis が False に設定されていても、解析での階層の使用を強制することができます。 このパラメーターは、Travel_Mode を CUSTOM に設定しなければ、無視されます。カスタム歩行モードをモデリングする場合、階層が動力付き車両用に設計されているため、階層をオフにすることをお勧めします。 | Boolean |
Restrictions [restriction,...] (オプション) | 解析時にどのネットワーク規制属性を考慮するかを指定します。 このパラメーターの値は、[移動モード](Python では Travel_Mode) をカスタム以外の値に設定した場合、オーバーライドされます。 | String |
Attribute_Parameter_Values (オプション) | パラメーターを持つネットワーク属性のパラメーター値を指定します。レコード セットには、パラメーターを一意に特定するために一緒に使用される 2 つの列と、パラメーター値を指定する別の列が含まれています。 このパラメーターの値は、[移動モード](Python では Travel_Mode) をカスタム以外の値に設定した場合、オーバーライドされます。 属性パラメーター値 レコード セットには、属性が関連付けられています。属性テーブルの各フィールドとその説明を以下に示します。 ObjectID: システムで管理される ID フィールド。 AttributeName: テーブル行で設定される属性パラメーターを持つネットワーク属性の名前。 ParameterName: テーブル行で設定される値を持つ属性パラメーターの名前。(オブジェクト タイプ パラメーターは、このツールを使用して更新できません。) ParameterValue: 属性パラメーターに設定する値。値が指定されない場合、属性パラメーターは NULL に設定されます。 | Record Set |
Accumulate_Attributes [attribute,...] (オプション) | 解析中に累積されるコスト属性のリスト。これらの累積属性は、参考情報としてのみ使用されます。解析では、[時間属性](Python では Time_Attribute) パラメーターまたは [距離属性](Python では Distance_Attribute) パラメーターで指定されているコスト属性のみを使用して最短経路を計算します。 累積されるコスト属性ごとに、解析で出力されたルートに Total_[属性] フィールドが追加されます。 | String |
Maximum_Snap_Tolerance (オプション) | 最大スナップ許容値とは、Network Analyst がネットワーク上でポイントの配置や再配置を行う場合に検索できる最大距離のことです。検索によって適切なエッジまたはジャンクションを見つけ、そのうちで最も近い場所にポイントをスナップします。最大スナップ許容値内で適切な場所が見つからなかった場合、そのオブジェクトには未配置のマークが付けられます。 | Linear Unit |
Feature_Locator_WHERE_Clause (オプション) | 施設と需要地点を配置できるネットワーク エレメントを制限するソース フィーチャ サブセットの選択に使用する SQL 式。このパラメーターの構文は、ソース フィーチャクラス名 (後に半角スペースが入ります) と SQL 構文の 2 つの部分で構成されます。2 つ以上のソース フィーチャクラスを含む SQL 式を記述するには、それらをセミコロンで区切ります。 通行が規制されている高速道路に施設を配置しないようにするために、たとえば、次のように SQL 式を記述してそれらのソース フィーチャを除外します。「Streets" "FUNC_CLASS not in('1', '2')」。 読み込み時に、バリアはフィーチャのロケーター WHERE 句を無視します。 | String |
Allocation_Line_Shape (オプション) | ツールによって出力されるライン フィーチャのタイプを指定します。このパラメーターには、次のいずれかの値を指定できます。
[アロケーション ライン形状] パラメーターにどのような値を選択しても、最短ルートは常に、需要地点と施設の間の直線距離を使用するのではなく、移動時間または移動距離を最小限にすることで決定されます。すなわち、このパラメーターは出力ラインの形状のみを変更するものであり、計測方法を変更するものではありません。 [アロケーション ライン形状] (Python では [Allocation_Line_Shape]) パラメーターが [メジャー値を含まない正確なライン形状] または [メジャー値を含む正確なライン形状] に設定されている場合、[アロケーション ラインの単純化許容値] (Python では [Allocation_Line_Simplification_Tolerance]) パラメーターに適切な値を指定して、ルート形状の一般化をさらに制御できます。 | String |
Allocation_Line_Simplification_Tolerance (オプション) | アロケーション ライン ジオメトリをどの程度単純化するかを指定します。 [アロケーション ライン形状] パラメーター (Python では Allocation_Line_Shape) が正確なライン形状の出力に設定されていない場合、このパラメーターは無視されます。 単純化によって、ルートの基本的な形状を定義する重要ポイント (交差点でのターンなど) は維持され、その他のポイントは削除されます。ここで指定する単純化の距離は、単純化されたラインの元のラインからの逸脱として認められる、最大許容オフセットです。ラインの単純化では、ルート ジオメトリを構成する頂点の数が削減されます。これにより、ツールの実行時間が短縮され、ライン描画にかかる時間が短縮されます。 このパラメーターの値は、[移動モード](Python では Travel_Mode) をカスタム以外の値に設定した場合、オーバーライドされます。 | Linear Unit |
Maximum_Features_Affected_by_Point_Barriers (オプション) | ポイント バリアが影響を与えることのできるフィーチャの数を制限します。 このパラメーターは、解析時に発生する処理量の管理に役立ちます。たとえば、作成中の無料版のサービスに対してはこのパラメーターに小さい値を割り当て、有料サブスクリプション版のサービスには大きい値を割り当てるというようにできます。 NULL 値は、制限がないことを示します。 | Long |
Maximum_Features_Affected_by_Line_Barriers (オプション) | ライン バリアが影響を与えることのできるフィーチャの数を制限します。 このパラメーターは、解析時に発生する処理量の管理に役立ちます。たとえば、作成中の無料版のサービスに対してはこのパラメーターに小さい値を割り当て、有料サブスクリプション版のサービスには大きい値を割り当てるというようにできます。 NULL 値は、制限がないことを示します。 | Long |
Maximum_Features_Affected_by_Polygon_Barriers (オプション) | ポリゴン バリアが影響を与えることのできるフィーチャの数を制限します。 このパラメーターは、解析時に発生する処理量の管理に役立ちます。たとえば、作成中の無料版のサービスに対してはこのパラメーターに小さい値を割り当て、有料サブスクリプション版のサービスには大きい値を割り当てるというようにできます。 NULL 値は、制限がないことを示します。 | Long |
Maximum_Facilities (オプション) | ロケーション-アロケーション解析に追加できる施設の数を制限します。このパラメーターは、[施設] パラメーターと関連しています。 このパラメーターは、解析時に発生する処理量の管理に役立ちます。たとえば、作成中の無料版のサービスに対してはこのパラメーターに小さい値を割り当て、有料サブスクリプション版のサービスには大きい値を割り当てるというようにできます。 NULL 値は、制限がないことを示します。 | Long |
Maximum_Facilities_to_Find (オプション) | ロケーション-アロケーション解析に追加できる施設の数を制限します。このパラメーターは [検出する施設の数] (Python では Number_of_Facilities_to_Find) パラメーターと関連しています。 このパラメーターは、解析時に発生する処理量の管理に役立ちます。たとえば、作成中の無料版のサービスに対してはこのパラメーターに小さい値を割り当て、有料サブスクリプション版のサービスには大きい値を割り当てるというようにできます。 NULL 値は、制限がないことを示します。 | Long |
Maximum_Demand_Points (オプション) | ロケーション-アロケーション解析に追加できる需要地点の数を制限します。このパラメーターは、[需要地点] (Python では Demand_Points) パラメーターと関連しています。 このパラメーターは、解析時に発生する処理量の管理に役立ちます。たとえば、作成中の無料版のサービスに対してはこのパラメーターに小さい値を割り当て、有料サブスクリプション版のサービスには大きい値を割り当てるというようにできます。 NULL 値は、制限がないことを示します。 | Long |
Force_Hierarchy_Beyond_Distance (オプション) | 階層が有効化されていない場合であっても、施設と需要地点間の最短パスの検出時に階層の適用を開始する最低値となる距離を指定します。このパラメーターの単位は、[距離属性の単位] (Python では Distance_Attribute_Units) パラメーターに指定されている単位と同じです。 広範囲で施設と需要地点間の最短ルートを検索する場合は、ネットワークの階層を使用して解析するほうが、階層を使用せずに解析する場合よりも処理を大幅に削減できる傾向があります。このパラメーターは、解析時に発生する処理量を管理することに役立ちます。 NULL 値は、階層を一切適用せずに、[解析に階層を使用] (Python では Use_Hierarchy_in_Analysis) パラメーターの値を常に適用することを示します。入力ネットワーク データセットが階層をサポートしていない場合にこのパラメーターの値を指定すると、エラーが発生します。その場合は、NULL 値を使用してください。 このパラメーターは、ネットワーク データセットに階層属性が含まれていない限り無効です。 | Double |
Save_Output_Network_Analysis_Layer (オプション) |
いずれの場合も、結果が格納されたフィーチャクラスが返されます。ただし、サーバー管理者は、このツールのセットアップと結果を ArcGIS Desktop 環境の Network Analyst コントロールでデバッグできるように、ネットワーク解析レイヤーの出力を選択することもあります。これによって、デバッグ処理が非常に簡単になります。 ArcGIS Desktop では、ネットワーク解析レイヤーのデフォルトの出力場所は、scratch フォルダーになります。scratch フォルダーの場所は、arcpy.env.scratchFolder ジオプロセシング環境の値を評価することで確認できます。出力されたネットワーク解析レイヤーは、「_ags_gpna」に英数字の GUID を付け加えた名前の LYR ファイルとして保存されます。 | Boolean |
Travel_Mode (オプション) | 解析する交通モードを選択します。CUSTOM は、常に選択肢に含まれています。その他の移動モード名を表示するには、それらが、Network_Dataset パラメーターで指定したネットワーク データセットに存在している必要があります (arcpy.na.GetTravelModes 関数はネットワーク データセットで構成された移動モード オブジェクトの辞書を提供し、name プロパティは移動モード オブジェクトの名前を返します)。 移動モードは、ネットワーク データセットで定義され、車、トラック、歩行などの移動モードをモデリングする一連のパラメーターをオーバーライドする値を提供します。ここで移動モードを選択することによって、以下のパラメーターの値を指定する必要がなくなります。これらのパラメーターは、ネットワーク データセットで指定した値でオーバーライドされます。
| String |
Overrides (オプション) | ネットワーク解析問題の解決法を見つける場合に、解析の動作に影響を与えることができる追加設定を指定します。 JSON (JavaScript Object Notation) で、このパラメーターの値を指定する必要があります。たとえば、有効な値は {"overrideSetting1" : "value1", "overrideSetting2" : "value2"} という形式です。オーバーライド設定名は、必ず二重引用符で囲みます。値は、数値、ブール型、または文字列のいずれかにすることができます。 このパラメーターのデフォルト値は、値なしであり、解析の設定を上書きしません。 オーバーライドは、設定を適用する前後で得られた結果を慎重に分析した後にのみ使用する必要のある高度な設定です。解析ごとにサポートされているオーバーライド設定の一覧およびそれらの許容される値については、Esri テクニカル サポートにお問い合わせください。 | String |
派生した出力
名前 | 説明 | データ タイプ |
Solve_Succeeded | サービスが最適な施設を正常に選択できたかどうかを確認します。 | ブール型 |
Output_Allocation_Lines | 需要地点とそれらが割り当てられている施設を接続するライン。 | フィーチャ クラス |
Output_Facilities | 選択された施設、必須施設、競合施設、および選択されなかった候補施設にアクセスします。 | フィーチャ クラス |
Output_Demand_Points | 解析に含まれた需要地点。 | フィーチャ クラス |
Output_Route_Edges | 需要地点とそれらが割り当てられている施設間の最短ルートに沿った個々の道路セグメントを表します。 | フィーチャ クラス |
Output_LocationAllocation_Analysis_Layer | 出力ロケーション-アロケーション解析レイヤー。 | ファイル |
Output_Route_Analysis_Layer | 出力ルート解析レイヤー。 | ファイル |
コードのサンプル
SolveLocationAllocation (ロケーション-アロケーションの解析) の例 1 (Python ウィンドウ)
必須パラメーターを使用して SolveLocationAllocation ツールを実行します。
facilities = arcpy.FeatureSet()
facilities.load("Stores")
demandPoints = arcpy.FeatureSet()
demandPoints.load("TractCentroids")
arcpy.na.SolveLocationAllocation(facilities, demandPoints, "Minutes",
"Streets_ND", "in_memory", "Lines",
"OutFacilities", "OutDemandPoints",
"RouteEdges", Number_of_Facilities_to_Find=2)
SolveLocationAllocation (ロケーション-アロケーションの解析) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン Python スクリプトは、スタンドアロン スクリプトで SolveLocationAllocation を使用する方法を示しています。
# Name: SolveLocationAllocation_Workflow.py
# Description: Find the two stores that are most convenient to your customers.
# The results show which stores were selected and which store is
# most convenient to each customer location.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\SanFrancisco.gdb'
env.overwriteOutput = True
#Set local variables
inNetworkDataset = r'Transportation\Streets_ND'
inFacilities = r'Analysis\Stores'
inDemandPoints = r'Analysis\TractCentroids'
outGeodatabase = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\Output.gdb'
outLines = "Lines"
outFacilities = "Facilities"
outDemandPoints = "DemandPoints"
outRouteEdges = "RouteEdges"
measurement_units = "Minutes"
# Run SolveLocationAllocation. Find the best two stores, but don't consider
# stores beyond a 10 minute travel time for a given customer.
arcpy.na.SolveLocationAllocation(inFacilities, inDemandPoints,
measurement_units, inNetworkDataset,
outGeodatabase, outLines, outFacilities,
outDemandPoints, outRouteEdges,
Number_of_Facilities_to_Find=2,
Default_Measurement_Cutoff=10.0)
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occured on line %i" % tb.tb_lineno
print str(e)
環境
ライセンス情報
- Basic: 次のものが必要 Network Analyst
- Standard: 次のものが必要 Network Analyst
- Advanced: 次のものが必要 Network Analyst