到達圏の生成(GenerateServiceAreas) (ServiceAreas)
サマリ
この ArcGIS Online サービスは、施設の周囲にネットワーク到達圏を生成します。ネットワーク到達圏とは、1 つ以上の施設から特定の距離または移動時間の範囲内にあるアクセス可能なすべての道路が含まれた領域です。たとえば、ある施設の 10 分間の到達圏には、その施設から 10 分以内に到達できるすべての道路が含まれます。
一般的に、到達圏はアクセシビリティの視覚化と評価に使用されます。たとえば、食料品店の周囲に 3 分間の走行時間ポリゴンを作成すると、その食料品店に 3 分以内に到着できる、その食料品店で買い物する可能性の高い住民を判断できます。
図
使用法
-
[Break Units] パラメータに時間の単位を設定した場合は、運転時間エリアが作成されます。同様に、[Break Units] に距離の単位を設定した場合は、走行距離エリアが作成されます。最大で 300 分または 300 マイル(482.80 キロメートル)の到達圏を生成できます。詳細なポリゴンを生成する場合、到達圏の最大サイズは、15 分と15 マイル(24.14 キロメートル)に制限されます。
-
ツールを正しく実行するには、施設を少なくとも 1 つ指定する必要があります。施設は最大 1,000 件まで読み込めます。
-
最大で 250 のポイント バリアを追加できます。ライン バリアまたはポリゴン バリアは必要なだけ追加できますが、ライン バリアが交差する道路フィーチャは 500 以下にする必要があり、ポリゴン バリアが交差するフィーチャは 2,000 以下にする必要があります。
-
結果を短時間で生成できるように、解析時に道路階層を使用することもできます。ただし、ソリューションの精度はやや劣ります。
-
[Use Hierarchy] パラメータがオン(True)であるかどうかにかかわらず、最大ブレーク値が 240 分または 240 マイル(386.24 キロメートル)を超えている場合は、常に階層が使用されます。出力される到達圏が重なり合わず、ジェネラライズされない場合は、この制限値は 15 分と 15 マイル(24.14 キロメートル)に下がります。
-
入力したポイントと通行可能な最も近い道路の距離が 12.42 マイル(20 キロメートル)を超える場合、そのポイントは解析から除外されます。
構文
パラメータ | 説明 | データ タイプ |
Facilities |
到達圏を作成する対象施設。施設は最大 1,000 件まで読み込めます。 施設フィーチャ セットには、属性テーブルが関連付けられています。次にそれぞれの属性テーブルのフィールドについて説明します。 ObjectID: システムで管理される ID フィールド。 Name: 施設の名前です。名前を指定しない場合は、解析の実行時に名前が自動的に生成されます。 [Polygons for Multiple Facilities] パラメータが [Overlapping] または [Not Overlapping] に設定されている場合は、入力施設のすべてのフィールドが出力ポリゴンに含まれます。入力施設の [ObjectID] フィールドが、出力ポリゴンの [FacilityOID] フィールドに転送されます。 | Feature Set |
Break_Values |
各施設について作成する到達圏ポリゴンのサイズと数を指定します。単位は [Break Units] の値によって決まります。 ポリゴンのブレークを複数設定して、各施設について同心状の到達圏を生成することもできます。たとえば、各施設について 2 マイル、3 マイル、および 5 マイルの到達圏を生成する場合は、「2 3 5」のように各値を半角スペースで区切って入力し、[Break Units] を [Miles] に設定します。指定するブレーク値の数に制限はありません。 ブレーク値の最大サイズは、300 分または300 マイル(482.80 キロメートル)を超えることはできません。詳細なポリゴンを生成する場合、到達圏の最大サイズは、15 分と15 マイル(24.14 キロメートル)に制限されます。 | String |
Break_Units |
[Break Values] パラメータの単位。 このパラメータで選択した単位により、到達圏を作成する際に走行距離と運転時間のどちらを測定するかが決まります。運転時間を測定する場合は、時間の単位を選択します。走行距離を測定する場合は、距離の単位を選択します。結果にレポートされる運転時間または走行距離の合計の単位も、この選択によって決まります。選択できる単位は次のとおりです。
| String |
Analysis_Region (オプション) |
解析を実行する地域を指定します。このパラメータに値を指定しない場合、入力ポイントの位置に基づいて地域名が自動的に計算されます。ツールの実行速度を上げるため、地域名を設定することをお勧めします。地域を指定するには、次のいずれかの値を使用します。
| String |
Travel_Direction |
到達圏ポリゴンを生成する際の移動方向を、施設に向かう方向または施設から離れる方向のいずれかに指定します。
道路の両側でインピーダンスが異なる場合や、一方通行の規制(一方通行の道路など)がある場合は、移動方向によってポリゴンの形状が違ってくることがあります。方向は、到達圏解析の目的に応じて選択する必要があります。たとえば宅配ピザの到達圏であれば、施設から離れる方向に作成され、病院の到達圏であれば、施設に向かう方向に作成されます。 | String |
Time_of_Day |
施設からの出発時間または施設への到着時間。この値の解釈は、移動方向が施設への到着である場合と施設からの出発である場合で異なります。
[Time Zone for Time of Day] パラメータを使用して、この日時が UTC を参照するか、施設の場所のタイム ゾーンを参照するかを指定できます。 同じ解析を [Time of Day] の値を変えて繰り返し実行します。これにより、時間の経過に伴う施設の到着時間の変化を確認できます。たとえば、消防署から 5 分以内に到達できる到達圏は、早朝には大きくなり、混雑する朝の時間帯は縮小し、朝の遅い時間帯には拡大するなど、1 日を通して変化します。 | Date |
Use_Hierarchy |
施設とインシデント間の最適なルートを検索する際に、階層を使用するかどうかを指定します。
[階層を使用] パラメータがオン(True)であるかどうかにかかわらず、最大ブレーク値が 240 分または 240 マイル(386.24 キロメートル)を超えている場合は、常に階層が使用されます。 | Boolean |
UTurn_at_Junctions |
到達圏を生成する際に、ジャンクションでの U ターンを規制または許可する場合は、このパラメータを使用します。パラメータの値を理解するために、ここでは次のような用語を使用します。ジャンクションは道路セグメントが終了するポイントを表し、一般的には 1 つ以上の別のセグメントに接続されます。疑似ジャンクションは 2 つの道路が相互に接続されるポイントです。交差点は 3 つ以上の道路が接続する場所を表し、行き止まりは道路セグメントが他の道路に接続せずに終了している場所を表します。これらの情報を基に、パラメータには次の値を指定できます。
| String |
Polygons_for_Multiple_Facilities |
複数の施設が存在する解析で、どのように到達圏ポリゴンを生成するかを選択します。
[Overlapping] または [Not Overlapping] を使用する場合は、入力施設のすべてのフィールドが出力ポリゴンに含まれます。ただし、入力された [ObjectID] フィールドの値は出力ポリゴンの [FacilityOID] フィールドに転送されます。ブレーク値によりマージするときに [FacilityOID] フィールドは NULL になり、入力フィールドは出力に含まれません。 | String |
Polygon_Overlap_Type |
同心状の到達圏ポリゴンをディスク状に作成するか、またはリング状に作成するかを指定します。このオプションは複数のブレーク値が施設に対して指定されているときにのみ適用できます。
| String |
Detailed_Polygons (オプション) |
詳細なポリゴンまたは単純化されたポリゴンのどちらを作成するか、オプションを指定します。
施設がある市街地の道路網が格子状であれば、単純化されたポリゴンと詳細なポリゴンの違いはあまりありません。一方、施設が山間部の道路や地方の道路を含む地域にある場合は、単純化された到達圏よりも詳細な到達圏を使用した方が、結果の精度は大きく向上します。 詳細ポリゴンの単純化は、[Break Values] パラメータに指定した最大値が 15 分または 15 マイル(24.14 キロメートル)以下の場合にのみサポートされます。 | Boolean |
Polygon_Trim_Distance |
到達圏ポリゴンが切詰められる距離の範囲を指定します。道路網の密度が低い場所で到達圏を検索する際に、道路フィーチャのない広いエリアを到達圏に含めたくない場合に有効です。 デフォルト値は 100 メートルです。このパラメータに値を設定せずにおくか、「0」を設定すると、到達圏ポリゴンが切詰められないようにすることができます。このパラメータ値は、階層の使用時には無視されます。 | Linear unit |
Polygon_Simplification_Tolerance |
ポリゴン ジオメトリをどの程度単純化するかを指定します。 単純化では、ポリゴンの基本的な形状を定義する重要な頂点が保持され、それ以外の頂点は削除されます。ここで指定する単純化の距離は、単純化されたポリゴン境界と元のポリゴン境界の間で許容されるずれを表す最大オフセットです。ポリゴンを単純化すると、頂点の数が少なくなり、描画時間が短縮される傾向にあります。 | Linear unit |
Point_Barriers |
一時的な規制として機能する 1 つ以上のポイント、または対象の道路を通行するために必要とされる追加の時間や距離を表す 1 つ以上のポイントを指定します。たとえば、ポイント バリアを使用して、道路沿いの倒木や、踏切で生じる遅延時間を表すことができます。 このツールでは、バリアとして追加できるポイントの数は 250 に制限されています。 ポイント バリアを指定する場合は、属性を使用して、各ポイント バリアのプロパティ(ポイント バリアの名前やバリアの種類など)を設定できます。ポイント バリアには、次の属性を指定できます。 Name: バリアの名前。 BarrierType: ポイント バリアの通過を完全に禁止するか、通過時に時間または距離を追加するかを指定します。この属性の値は、次のいずれかの整数として指定されます(括弧で囲まれた名前ではなく、数値コードを使用します)。
Additional_Time: バリアを通過するときに追加される移動時間の値を指定します。このフィールドは、[Break Units] の値が時間ベースの場合に限り、追加コスト バリアに対してのみ適用されます。このフィールドの値は 0 以上である必要があり、その単位は [Break Units] パラメータで指定された単位と同じです。 Additional_Distance: バリアを通過するときに追加される距離の値を指定します。このフィールドは、[Break Units] の値が距離ベースの場合に限り、追加コスト バリアに対してのみ適用されます。このフィールドの値は 0 以上である必要があり、その単位は [Break Units] パラメータで指定された単位と同じです。 | Feature Set |
Line_Barriers (オプション) |
道路と交差しているラインの場所を移動できないようにする 1 つ以上のラインを指定します。たとえば、複数の道路区間にわたって通行禁止となるパレードやデモを表すときに通過不可ライン バリアを使用します。また、ライン バリアを使用すれば、道路網の特定の区間を迂回して利用できる経路をすばやく見つけることができます。 このツールでは、[Line Barriers] パラメータを使用して規制できる道路の数に制限があります。ライン バリアとして指定できるラインの数に制限はありませんが、すべてのラインと交差する道路の総数が 500 を超えることはできません。 ライン バリアを指定する場合は、次の属性を使用して、各ライン バリアの名前プロパティを設定できます。 Name: バリアの名前。 | Feature Set |
Polygon_Barriers |
通過を完全に禁止するポリゴン、またはそのポリゴンと交差する道路を移動するときに時間または距離が係数に基づいて乗算されるポリゴンを指定します。 このサービスでは、[Polygon Barriers] パラメータを使用して規制できる道路の数に制限があります。ポリゴン バリアとして指定できるポリゴンの数に制限はありませんが、すべてのポリゴンと交差する道路の総数が 2,000 を超えることはできません。 ポリゴン バリアを指定する場合は、属性を使用して、各ポリゴン バリアのプロパティ(ポリゴン バリアの名前やバリアの種類など)を設定できます。ポリゴン バリアには、次の属性を指定できます。 Name: バリアの名前。 BarrierType: バリアの通過を完全に禁止するか、バリアを通過する際の時間または距離を係数に基づいて計算するかを指定します。このフィールド値は、次のいずれかの整数として指定されます(括弧で囲まれた名前ではなく、数値コードを使用します)。
ScaledTimeFactor: これは、バリアが交差している道路の移動時間に乗算する係数です。このフィールドは、[Break Units] の値が時間ベースの場合に限り、コスト係数指定バリアに対してのみ適用されます。このフィールドには 0 より大きい値を指定する必要があり、その単位は [Break Units] パラメータで指定された単位と同じです。 ScaledDistanceFactor: これは、バリアが交差している道路の距離に乗算する係数です。この属性は、[Break Units] の値が距離ベースの場合に限り、コスト係数指定バリアに対してのみ適用されます。この属性には 0 より大きい値を指定する必要があります。 | Feature Set |
Restrictions |
到達圏を解析する場合に、ツールがどの交通規制を優先する必要があるかを指定します。 規制は、運転上の優先事項や要件を表します。ほとんどの場合は、規制により道路は通行禁止になります。たとえば、[Avoid Toll Roads] の規制を使用すると、ルートに有料道路が含まれるのは、インシデントまたは施設を訪問するために有料道路の使用が不可欠な場合のみになります。[Height Restriction] は、車両の高さより低い車高規制の場所を迂回できるようにします。車両に腐食性物質を積載している場合は、[Any Hazmat Prohibited] の規制を使用して、腐食性物質の運搬が法律で禁止されている道路の通行を回避します。 詳細なポリゴンを生成するときに、禁止された道路は到達圏ポリゴンに含まれていないので、穴状の通行不可能な領域を持つポリゴンが生成される可能性があります。ただし、一般的な到達圏または階層を使用した到達圏を生成するときに、規制された道路が通行可能な道路によって完全に囲まれている場合、規制された道路は単純化された到達圏ポリゴンに含まれます。 以下に、利用可能な規制のリストと簡単な説明を示します。
注意: 一部の規制では、目的の用途に関する追加の値を指定する必要があります。この値は、規制の名前、および規制に対応させることを意図している特定のパラメータに関連付ける必要があります。[Attribute Parameter Values] パラメータの [AttributeName] 列の下に規制の名前が表示されている場合、その規制を識別できます。通行可能な道路を検索するときに、規制が正しく使用されるように、規制に対応する [Attribute Parameter Values] パラメータ内で [ParameterValue] フィールドを指定する必要があります。
注意: 一部の規制は、特定の国でのみサポートされます。それらの規制の利用可否は、次のリスト内で地域ごとに記述されています。領域内で規制の利用可否が制限されている場合、ネットワーク解析サービスのデータ提供範囲に関する Web ページの国リストのセクションにあるテーブルを参照して、規制が特定の国で利用できるかどうかを確認できます。国の Logistics Attribute 列に Yes という値が指定されている場合、領域内で選択可能である規制は、その国でサポートされています。解析を行う範囲の国で利用できない規制の名前を指定した場合、無効な規制はサービスによって無視されます。また、[Restriction Usage] パラメータの値が 0 ~ 1 の範囲内にある規制も、サービスによって無視されます([Attribute Parameter Value] パラメータを参照)。[Restriction Usage] パラメータの値が 0 より大きいすべての規制は禁止されます。 ツールは、次の規制をサポートしています。
| String |
Attribute_Parameter_Values (オプション) |
いくつかの規制に必要な追加の値を指定します。たとえば、[Weight Restriction] に対する車両の重量などです。この属性パラメータを使用して、規制を使用する道路上の移動が、規制によって禁止されるか、回避されるか、優先されるかを指定することもできます。規制が道路を回避または優先するためのものである場合は、このパラメータを使用して道路が回避または優先される度合いも指定できます。たとえば、有料道路を決して使用しないこと、できるだけ避けること、または可能な限り優先することを選択できます。 フィーチャクラスから [Attribute Parameter Values] パラメータを指定する場合は、フィーチャクラスのフィールド名が、次に説明するフィールドと一致する必要があります。 AttributeName: 規制の名前のリスト。 ParameterName: 規制に関連付けられたパラメータの名前のリスト。規制は、その使用目的に基づいて、1 つまたは複数の ParameterName フィールド値を持つことができます。 ParameterValue: 規制を評価するときにツールによって使用される ParameterName の値。 [Attribute Parameter Values] は、[Restrictions] パラメータに依存します。[ParameterValue] フィールドは、規制の名前が [Restrictions] パラメータの値として指定されている場合に限り適用できます。 [Attribute Parameter Values] では、[AttributeName] で指定した各規制の [ParameterName] フィールドに [Restriction Usage] という値があります。この値は、規制に関連付けられた道路での移動を禁止、回避、または優先するかどうか、および道路を回避または優先する場合のレベルを指定します。[ParameterName] フィールドの [Restriction Usage] の値には、次のいずれかの文字列、またはそれぞれの括弧に示した数値を割り当てることができます。
ほとんどの場合、車両の特徴(車両の高さなど)に依存する規制であれば、[Restriction Usage] にデフォルト値(PROHIBITED)を使用できます。ただし、[Restriction Usage] の値がルートの優先度に依存している場合もあります。たとえば、[Avoid Toll Roads] の規制では、[Restriction Usage] パラメータのデフォルト値は [AVOID_MEDIUM] になります。つまり、この規制を使用すると、可能な場合は有料道路を回避するルートが検索されます。また、[AVOID_MEDIUM] は、最適なルートを検索する際に有料道路を回避することの重要度も表しています(中程度の優先度)。[AVOID_LOW] を選択すると、有料道路を回避する重要度が下がります。AVOID_HIGH を選択すると重要度が上がり、有料道路を回避するためにより長い距離のルートも生成可能になります。[PROHIBITED] を選択すると有料道路の通行は完全に禁止され、ルートでは有料道路のいずれの部分も通行できなくなります。有料道路を回避または禁止する(つまり、料金の支払いを避ける)ことが目的となる場合もありますが、運転手によっては、通行料を払うよりも渋滞を避けることに価値があると考えて、有料道路の使用を優先する場合もあります。後者の場合は、[Restriction Usage] として [PREFER_LOW]、[PREFER_MEDIUM]、または [PREFER_HIGH] を選択できます。優先度が高いほど、規制に関連付けられている道路を通行するために遠回りするようになります。 | Record Set |
Time_Zone_for_Time_of_Day (オプション) |
[Time of Day] パラメータのタイム ゾーンを指定します。
[Time Zone for Time of Day] の設定に関係なく、[Time of Day] に NULL 以外の値が設定されており、マージされたポリゴンまたは重複しないポリゴンを作成するように [Polygons for Multiple Facilities] が設定されている場合は、すべての施設が同じタイム ゾーンに存在する必要があります。 | String |
Service_Areas (オプション) |
このパラメータは無視してください。内部的な目的のみで使用されます。 | Feature Class |
コードのサンプル
次の Python スクリプトは、GenerateServiceAreas(到達圏の生成)ツールをスクリプトで使用する方法を示しています。
import arcpy
import time
import sys
username = "<your user name>"
password = "<your password>"
sa_service = "http://logistics.arcgis.com/arcgis/services;World/ServiceAreas;{0};{1}".format(username, password)
#Add the geoprocessing service as a toolbox. Use an alias when importing
arcpy.ImportToolbox(sa_service, "agol")
#Set the variables to call the tool
facilities = r"C:/data/Inputs.gdb/Stores"
output_service_areas = "C:/data/Results.gdb/StoreServiceAreas"
#Call the tool
result = arcpy.agol.GenerateServiceAreas(facilities, "5 10 15", "Minutes")
#Check the status of the result object every 0.5 seconds
#until it has a value of 4(succeeded) or greater
while result.status < 4:
time.sleep(0.5)
#print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
print "An error occured when running the tool"
print result.getMessages(2)
sys.exit(2)
elif result_severity == 1:
print "Warnings were returned when running the tool"
print result.getMessages(1)
#Get the output routes and save to a local geodatabase
result.getOutput(0).save(output_service_areas)