概要
ネットワーク上の入力フィーチャを検索し、これらのネットワーク ロケーションを説明するフィールドを入力フィーチャに追加します。このツールは、フィーチャをネットワーク解析の入力としてすばやく読み込むために、ネットワーク ロケーション情報をフィーチャ属性として格納するのに使用されます。
使用法
このツールは [ロケーションの追加 (Add Locations)] ツールへの入力となるロケーション フィールドを計算するために使用します。ネットワーク解析レイヤーの入力として複数回使用されるフィーチャに使用します。一度ロケーションが計算されると、フィーチャをネットワーク ロケーションとしてすばやく読み込むために [ロケーションの追加 (Add Locations)] ツールの [ジオメトリの代わりにネットワーク ロケーション フィールドを使用する] パラメーターを使用することができます。
このツールではさまざまな検索オプションを使用して、ネットワーク解析レイヤーで未配置のネットワーク ロケーションの再計算にも使用することができます。たとえば、最初に 500 メートルの検索許容値でルート ネットワーク解析レイヤー上にストップが追加され、いくつかのストップが未配置である場合、たとえば [属性検索 (Select Layer By Attribute)] ツールを使用して未配置のストップを選択し、検索許容値を広げた形で [入力フィーチャ] にストップのサブレイヤーを指定して、このツールを再実行します。
ネットワーク データセットのネットワーク ソースとして使用されるフィーチャクラスが有効かつ最新の空間インデックスを保持している場合、このツールは非常に高速に実行されます。
構文
CalculateLocations(in_point_features, in_network_dataset, {search_tolerance}, {search_criteria}, {match_type}, {source_ID_field}, {source_OID_field}, {position_field}, {side_field}, {snap_X_field}, {snap_Y_field}, {distance_field}, {snap_Z_field}, {location_field}, {exclude_restricted_elements}, {search_query}, {travel_mode})
パラメーター | 説明 | データ タイプ |
in_point_features | ネットワーク ロケーションを計算する対象となる入力フィーチャ。 ラインおよびポリゴン フィーチャは、ネットワーク ロケーション情報が BLOB フィールド ([ローケーション] 範囲フィールド パラメーターで指定される) に保存されているため、ジオデータベース フィーチャクラスのみでサポートされています。 | Table View |
in_network_dataset | ロケーションを計算するために使用するネットワーク データセット。 入力フィーチャに、ネットワーク解析レイヤーのサブレイヤーを指定した場合、ネットワーク解析レイヤーが参照するネットワーク データセットのパラメーターが設定されます。 | Network Dataset Layer |
search_tolerance (オプション) | 入力フィーチャをネットワークに配置するために使用される検索許容値。検索許容値の外側にあるフィーチャは配置されません。パラメーターには許容値の値と単位が含まれます。 デフォルトは 5,000 メートルです。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Linear Unit |
search_criteria [[Source, SnapType],...] (オプション) | ロケーション検索時に検索するネットワーク データセットのソース、および使用するジオメトリの部分 (スナップ タイプとも呼ばれます) です。 パラメーター値は、ネストされたリストとともにリストとして指定されます。ネストしたリストは各ネットワーク ソースの名前とスナップ タイプを示す 2 つの値で構成されます。スナップ タイプは SHAPE、MIDDLE、END、NONE キーワードを使用して指定されます。
1 つのネットワーク ソースに複数のスナップ タイプを指定するには、アンダースコアで区切ったスナップ タイプ キーワードの組み合わせを使用します。たとえば、MIDDLE_END はロケーションがネットワーク ソースの中間または端点にスナップされることを示します。 ジオデータベースのネットワーク データセットでは、ネットワーク ソース (["Streets : Local Streets","SHAPE"]) の各サブタイプにスナップ タイプを指定することができます。 ラインまたはポリゴン フィーチャのロケーションを計算する際、他のスナップタイプが指定されていても SHAPE スナップタイプのみが使用されます。 このリストに入っていないネットワーク ソースでは、デフォルト スナップ タイプが使用されます。すべてのネットワーク ソースをリストに入れ、ネットワーク ソースごとにスナップ タイプを明示的に設定することが最も安全な方法です。 システム ジャンクションのデフォルト値は SHAPE で、システム ジャンクションを除くすべてのネットワーク ソースのデフォルト値は NONE です。 | Value Table |
match_type (オプション) |
ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Boolean |
source_ID_field (オプション) | 計算されたネットワーク ロケーションのソース ID を新規作成または更新するフィールド名。SourceID という名前のフィールドがデフォルトで作成または更新されます。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Field |
source_OID_field (オプション) | 計算されたネットワーク ロケーションのソース OID を新規作成または更新するフィールド名。SourceOID という名前のフィールドがデフォルトで作成または更新されます。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Field |
position_field (オプション) | 計算されたネットワーク ロケーションのパーセンテージによって作成または更新されるフィールド名。PosAlong という名前のフィールドがデフォルトで作成または更新されます。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Field |
side_field (オプション) | ポイント フィーチャが計算されたネットワーク ロケーションのエッジのどちら側に位置しているかを新規作成または更新するフィールド名。SideOfEdge という名前のフィールドがデフォルトで作成または更新されます。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Field |
snap_X_field (オプション) | 計算されたネットワーク ロケーションの X 座標を新規作成または更新するフィールド名。SnapX という名前のフィールドがデフォルトで作成または更新されます。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Field |
snap_Y_field (オプション) | 計算されたネットワーク ロケーションの Y 座標を新規作成または更新するフィールド名。SnapY という名前のフィールドがデフォルトで作成または更新されます。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Field |
distance_field (オプション) | 計算されたネットワーク ロケーションからのポイント フィーチャの距離を作成または更新するフィールドの名前。Distance という名前のフィールドがデフォルトで作成または更新されます。 出力フィールドはメートルです。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 | Field |
snap_Z_field (オプション) | 計算されたネットワーク ロケーションの Z 座標を新規作成または更新するフィールド名。SnapZ という名前のフィールドがデフォルトで作成または更新されます。 ラインまたはポリゴン フィーチャのロケーションを計算する際には、パラメーターは使用しません。 ポイント フィーチャのロケーションを計算する際、パラメーターは入力データセットがネットワーク ソースの Z 座標値に基づいた接続性をサポートするときにのみ使用されます。その他の場合はすべて「"#"」をパラメーター値として使用します。 | Field |
location_field (オプション) | ラインまたはポリゴン フィーチャの計算されたネットワーク ロケーションにおけるロケーション範囲を新規作成または更新するフィールド名。Locations という名前のフィールドがデフォルトで作成または更新されます。 パラメーターは、ラインまたはポリゴン フィーチャのロケーションを計算するときのみ使用されます。入力ポイント フィーチャには、「"#"」をパラメーター値として使用します。 | Field |
exclude_restricted_elements (オプション) | 入力を検索するときにネットワークの規制部分を除外するかどうかを指定します。ポイントは、指定した移動モードで制限されているエレメントに配置されません。移動モードが指定されていない場合、ネットワークのデフォルト移動モードの制限が使用されます。
| Boolean |
search_query [[Source, Expression],...] (オプション) | 検索をソース フィーチャクラス内のフィーチャのサブセットに制限するクエリを定義します。この機能は、ネットワーク ロケーションとして適切でないフィーチャを検索したくない場合に有用です。たとえば、ポリゴンの重心を読み込む場合に、生活道路に配置したくない場合は、一般道路のみを検索するクエリを定義できます。 パラメーター値は、ネストされたリストとともにリストとして指定されます。ネストしたリストはすべてのネットワーク ソースの名前と SQL 式を示す 2 つの値で構成されます。SQL 式の構文はネットワーク ソース フィーチャクラスのタイプによって少し異なります。たとえば、クエリ対象がファイル ジオデータベース、エンタープライズ ジオデータベース、シェープファイル、または SDC に格納されたソース フィーチャクラスの場合は、次のようにフィールド名を二重引用符で囲みます: "CFCC"。クエリ対象がパーソナル ジオデータベースの場合は、次のようにフィールドを角括弧で囲みます: [CFCC]。 特定のソースに対してクエリを定義したくない場合、SQL 式に値として「"#"」を入力するか、またはパラメーター値からソース名と SQL 式を除外します。すべてのネットワーク ソースに対してクエリを定義したくない場合、パラメーター値として「"#"」を入力します。 たとえば、パラメーター値「[["Streets","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]]」では、Streets ソース フィーチャクラスに対する SQL 式を定義し、Streets_ND_Junctions ソース フィーチャクラスには SQL 式を定義しません。フィールド名 CFCC を囲むために使用される二重引用符は、Python インタープリターで構文解析エラーが発生しないようバックスラッシュ文字でエスケープされます。 デフォルトでは、クエリは使用されません。 | Value Table |
travel_mode (オプション) | 解析で使用する移動モードの名前。 移動モードを選択した場合、位置フィールドの計算時に、規制やインピーダンス属性などの移動モード設定が考慮されます。たとえば、入力ポイントの 1 つに最も近いネットワーク エッジがトラックで禁止されていて、移動モードがトラック輸送に設定されている場合、[ロケーション フィールドの計算 (Calculate Locations)] は、トラックで禁止されていない次に近いネットワーク エッジ上のポイントを検索します。 利用可能な移動モードは、in_network_dataset パラメーター値によって異なります。 入力フィーチャに、ネットワーク解析レイヤーのサブレイヤーを指定した場合、移動モード パラメーターは、ネットワーク解析レイヤーの移動モードに設定する必要があります。 | String |
派生した出力
名前 | 説明 | データ タイプ |
out_point_feature_class | 更新された入力フィーチャ。 | テーブル ビュー |
コードのサンプル
必須パラメーターのみを使用して、ポイント フィーチャのロケーション フィールドを計算します。
stores = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Analysis/Stores"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(stores, network, "5000 Meters",
[["Streets", "SHAPE"],
["Streets_ND_Junctions", "NONE"]])
道路フィーチャ上のポイント フィーチャのロケーション フィールドを、他のネットワーク ソースを除外して計算します。
warehouses = "C:/Data/Paris.gdb/Analysis/Warehouses"
network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.CalculateLocations(warehouses, network, "5000 Meters",
[["Metro_Lines", "NONE"], ["Streets", "SHAPE"],
["Transfer_Stations", "NONE"], ["Metro_Entrances", "NONE"],
["Metro_Stations", "NONE"], ["ParisMultimodal_ND_Junctions", "NONE"]],
"MATCH_TO_CLOSEST", "SID", "SOID", "PA", "SOE", "SnapX", "SnapY",
"Distance")
ポリゴン フィーチャのロケーション フィールドを計算します。
parks = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Basemap/Parks"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(parks, network, "", [["Streets", "SHAPE"],
["Streets_ND_Junctions", "NONE"]],
location_field="Locations")
次の Python スクリプトは、スタンドアロン スクリプトで CalculateLocations ツールを使用する方法を示しています。
# Name: CalculateLocations_ex04.py
# Description: Calculate network locations for fire stations. Make sure that the
# fire stations are not located on the freeways.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
try:
#Set environment settings
env.workspace = "C:/Data/SanFrancisco.gdb"
#Set local variables
in_features = "Analysis/FireStations"
network = "Transportation/Streets_ND"
search_tolerance = "2000 Meters"
search_criteria = [["Streets", "SHAPE"], ["Streets_ND_Junctions", "NONE"]]
search_query = [["Streets", '"FREEWAY" = 0'], ["Streets_ND_Junctions", ""]]
#Calculate network locations and store them in defaut field names
arcpy.na.CalculateLocations(in_features, network, search_tolerance,
search_criteria, "MATCH_TO_CLOSEST",
exclude_restricted_elements="EXCLUDE",
search_query=search_query)
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 occurred on line %i" % tb.tb_lineno))
print((str(e)))
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい