ロケーションの追加(Add Locations) (Network Analyst)

サマリ

ネットワーク解析レイヤにネットワーク解析オブジェクトを追加します。これらのオブジェクトは、ストップやバリアなどの特定のサブレイヤに追加されます。オブジェクトは、フィーチャまたはレコードとして入力されます。

使用法

構文

AddLocations_na (in_network_analysis_layer, sub_layer, in_table, field_mappings, search_tolerance, {sort_field}, {search_criteria}, {match_type}, {append}, {snap_to_position_along_network}, {snap_offset}, {exclude_restricted_elements}, {search_query})
パラメータ説明データ タイプ
in_network_analysis_layer

ネットワーク解析オブジェクトが追加されるネットワーク解析レイヤ。

Network Analyst Layer
sub_layer

ネットワーク解析オブジェクトを追加するネットワーク解析レイヤのサブレイヤ。

String
in_table

新しいネットワーク解析オブジェクトのソースとなるフィーチャクラスまたはテーブル。

Table View
field_mappings

Sets the values for the properties of the network analysis objects. Properties can be set to a constant or mapped to a field from the input feature class or table.

パラメータ値はプロパティ名、フィールド名、デフォルト値の 3 つの値をセミコロンで区切ったリストとして指定します。プロパティのフィールド名またはデフォルト値のいずれかを指定する必要があります。たとえば、パラメータ値「Name Address #; Attr_Minutes # 2」では、入力フィーチャを追加する際に Name プロパティが Address フィールドから割り当てられ、Attr_Minutes プロパティが定数値 2 を保持するよう指定しています。

特定のプロパティがフィールドに割り当てられていない、デフォルト値を持っている、またはパラメータ値に含まれていない場合、デフォルトの割り当てが採用されます。すべてのプロパティに対してデフォルトの割り当てを使用したい場合、パラメータ値に「#」を使用します。

If both the Field and the Default Value are not specified for a property, the resulting network analysis objects will have null values for that property.

読み込むデータに、解析に使用するネットワーク データセットに基づくネットワーク ロケーションまたはネットワーク ロケーション範囲属性がある場合、入力フィーチャのネットワーク ロケーション フィールドをネットワーク ロケーション プロパティに割り当てます。ストップやインシデントなどのポイント ロケーションには、SourceID、SourceOID、PosAlong、SideOfEdge プロパティを割り当てます。また、ポリゴン バリアなどのラインまたはポリゴン ロケーションには、Locations プロパティを割り当てます。ネットワーク ロケーション フィールドを使用したネットワーク解析オブジェクトの追加は、ジオメトリによる読み込みよりはるかに高速です。フィールド マッピングのネットワーク ロケーション フィールドを指定することは、ツール ダイアログの [ジオメトリの代わりにネットワーク ロケーション フィールドを使用する] パラメータを使用するのと同様です。

注意注意:

すべてのネットワーク ロケーション プロパティにフィールド マッピングを指定する場合、残りのネットワーク ロケーション プロパティのフィールド マッピングを指定して、ツール実行エラーを防ぐ必要があります。

Network Analyst Field Map
search_tolerance

The search tolerance for locating the input features on the network. Features that are outside the search tolerance are left unlocated. The parameter includes a value and units for the tolerance.

ライン バリアまたはポリゴン バリアのサブレイヤにロケーションを追加する際には、パラメータは使用されません。この場合、「#」をパラメータ値として使用します。

Linear Unit
sort_field
(オプション)

ネットワーク解析オブジェクトをネットワーク解析レイヤに追加する際に、ネットワーク解析オブジェクトをソートする基準となるフィールド。デフォルトは入力フィーチャクラスまたはテーブルの ObjectID フィールドです。

Field
search_criteria
[[Source, SnapType],...]
(オプション)

Specifies which sources in the network dataset will be searched when finding locations and what portions of geometry (also known as snap types) will be used.

パラメータ値は、ネストされたリストとともにリストとして指定されます。ネストしたリストは各ネットワーク ソースの名前とスナップ タイプを示す 2 つの値で構成されます。スナップ タイプは「SHAPE」、「MIDDLE」、「END」、「NONE」キーワードを使用して指定されます。たとえば、ロケーション検索時には、パラメータ値「[["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]]」は、Streets_ND_Junctions ソースでなく Streets ソースの形状に基づいた検索が可能であることを示します。

1 つのネットワーク ソースに複数のスナップ タイプを指定するには、アンダースコアで区切ったスナップ タイプ キーワードの組み合わせを使用します。たとえば、MIDDLE_END はロケーションがネットワーク ソースの中間または端点にスナップされることを示します。

When adding line or polygon network locations, only the Shape snap type is used even if other snap types are specified.

Value Table
match_type
(オプション)
  • MATCH_TO_CLOSEST(最寄りと照合)検索条件に指定されたスナップ タイプを保持するすべてのソースの中から最寄りのネットワーク ソースを新しいネットワーク ロケーションと照合します。これがデフォルトです。
  • PRIORITY(優先度)検索条件に指定されたスナップ タイプを保持する最初のネットワーク ソースを新しいネットワーク ロケーションと照合します。ロケーションが検索許容値内で検出される場合、ソースは優先度順に検索しているストップの中から検索されます。

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Boolean
append
(オプション)

Specifies whether or not to append new network analysis objects to existing objects.

  • APPEND(追加)選択されたサブレイヤ内の既存の複数のオブジェクトに新しいネットワーク解析オブジェクトを追加します。
  • CLEAR(削除)既存のネットワーク解析オブジェクトを削除し、新しいオブジェクトに置き換えます。
Boolean
snap_to_position_along_network
(オプション)

Specifies that you want to snap the network locations along the network dataset or at some specified offset from the network dataset.

  • NO_SNAP(スナップしない) ネットワーク ロケーションのジオメトリは入力フィーチャのジオメトリに基づきます。これはネットワーク ロケーションがエッジのどちら側にあるかを把握している必要があるカーブ アプローチを使用する場合に役立ちます。
  • SNAP(スナップする) ポイント フィーチャがある場合、ポイントはネットワークにスナップされ、カーブ アプローチを使用することはできません。これは車両がどのようにストップに近づくかが重要でない場合に役立ちます。入力フィーチャがラインまたはポリゴンの場合、このパラメータ値を使用します。

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Boolean
snap_offset
(オプション)

When snapping a point to the network, you can apply an offset distance. An offset distance of zero means the point will be coincident with the network feature (typically a line). To offset the point from the network feature, enter an offset distance. The offset is in relation to the original point location. That is, if the original point was on the left side, its new location will be offset to the left. If it was originally on the right side, its new location will be offset to the right.

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Long
exclude_restricted_elements
(オプション)
  • EXCLUDE(含めない)ネットワーク ロケーションがネットワークの通過可能な部分にのみ配置されるように指定します。これにより、規制またはバリアが原因で到達できないエレメントにネットワーク ロケーションが配置されなくなります。このオプションを使用してネットワーク ロケーションを追加する前に、期待している結果を得るためにすべての規制バリアを入力ネットワーク解析レイヤにすでに追加していることを確認してください。このパラメータはバリア オブジェクトの追加時には適用できません。この場合、「#」をパラメータ値として使用します。
  • INCLUDE(含める)ネットワーク ロケーションがネットワークのすべてのエレメントに配置されるように指定します。このオプションで追加されるネットワーク ロケーションは、規制が適用されたエレメント上に位置している場合、解析プロセスにおいて到達不能になる可能性があります。
Boolean
search_query
[[Source, Expression],...]
(オプション)

Specifies a query to restrict the search to a subset of the features within a source feature class. This is useful if you don't want to find features that may be unsuited for a network location. For example, if you are loading centroids of polygons and don't want to locate on local roads, you can define a query that searches for major roads only.

パラメータ値は、ネストされたリストとともにリストとして指定されます。ネストしたリストはすべてのネットワーク ソースの名前と SQL 式を示す 2 つの値で構成されます。SQL 式の構文はネットワーク ソース フィーチャクラスのタイプによって少し異なります。たとえば、クエリ対象がファイル ジオデータベース、ArcSDE ジオデータベース、シェープファイル、または SDC に格納されたソース フィーチャクラスである場合は、フィールド名を二重引用符で囲みます(「"CFCC"」)。クエリ対象がパーソナル ジオデータベースの場合は、フィールドを角括弧で囲みます(「[CFCC]」)。

特定のソースに対してクエリを定義したくない場合、SQL 式に値として「"#"」を入力するか、またはパラメータ値からソース名と SQL 式を除外します。すべてのネットワーク ソースに対してクエリを定義したくない場合、パラメータ値として「"#"」を入力します。

たとえば、パラメータ値「[["Streets","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]]」では、Streets ソース フィーチャクラスに対する SQL 式を定義し、Streets_ND_Junctions ソース フィーチャクラスには SQL 式を定義しません。フィールド名 CFCC を囲むために使用される二重引用符は、Python インタープリタで構文解析エラーが発生しないようバック スラッシュ文字でエスケープされます。

Value Table

コードのサンプル

AddLocations(ロケーションの追加)の例 1(Python ウィンドウ)

必須パラメータのみを使用してツールを実行します。

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.AddLocations_na("Route","Stops","Analysis/Hospital","","")
AddLocations(ロケーションの追加)の例 2(Python ウィンドウ)

すべてのパラメータを使用してツールを実行します。

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.AddLocations_na("Route","Stops","Analysis/Hospital",
                      "Name Name #;Attr_Minutes VisitTime 0;CurbApproach # 0",
                      "2 Miles","FID",
                      [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]],
                      "MATCH_TO_CLOSEST","CLEAR","SNAP","10 Feet","EXCLUDE",
                      [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]])


AddLocations(ロケーションの追加)の例 3(ワークフロー)

次のスタンドアロン Python スクリプトは、AddLocations(ロケーションの追加)ツールを使用して起点と終点を OD コスト マトリックス レイヤに読み込む方法を示しています。

# Name: AddLocations_Workflow.py
# Description: The scenario shows how to calculate a travel time matrix between 
#              store features. Use the Add Locations tool to load origins and 
#              destinations into an OD Cost Matrix layer.Since the origins and 
#              destinations are same in this case, the origins are first loaded 
#              from the store features using their geometry and the destinations
#              are loaded from the origins using network location fields to 
#              speed up the load times. 
# 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 = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayer = "StoreTravelTimeMatrix"
    impedanceAttribute = "TravelTime"
    inFeatures = "Analysis/Stores"
    searchTolerance = "500 Meters"
    searchQuery = [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]]
    originsLayer = outNALayer + "/" + "Origins"
    fieldMappings = "Name Name #; SourceID SourceID #;SourceOID SourceOID #;" \
                    + "PosAlong PosAlong #;SideOfEdge SideOfEdge #"
    outLayer = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new OD cost matrix analysis layer. For this scenario, the default 
    #value for all the remaining parameters statisfies the analysis requirements
    arcpy.MakeODCostMatrixLayer_na(inNetworkDataset, outNALayer, 
                                   impedanceAttribute)
    
    #Load store features as origins using the geometry of store features.
    #Ensure that the stores are not located on freeways by using a search query.
    #The OD cost matrix layer created previously is referred using its name. 
    arcpy.AddLocations_na(outNALayer,"Origins",inFeatures,"",searchTolerance,
                          search_query = searchQuery)
    
    #Load origins as destinations using the network locations fields from 
    #origins. This is much faster than loading destinations from the store 
    #features using their geometry as their network locations have already been
    #calculated while loading them origins.
    arcpy.AddLocations_na(outNALayer,"Destinations",originsLayer,fieldMappings,
                          "")
    
    #Solve the od cost matrix layer. Halt the execution if there is an 
    #invalid location 
    arcpy.Solve_na(outNALayer,"HALT")
    
    #Save the solved na layer as a layer file on disk with relative paths
    arcpy.SaveToLayerFile_management(outNALayer,outLayer,"RELATIVE")
    
    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)
    

環境

関連項目


7/10/2012