ロケーションの追加(Add Locations) (Network Analyst)
サマリ
ネットワーク解析レイヤにネットワーク解析オブジェクトを追加します。これらのオブジェクトは、ストップやバリアなどの特定のサブレイヤに追加されます。オブジェクトは、フィーチャまたはレコードとして入力されます。
使用法
-
このツールを実行して、ネットワーク解析オブジェクトを同じサブレイヤに繰り返し追加できます。たとえば、ルート レイヤのストップを 2 つのフィーチャクラスから取得する場合、APPEND オプションを使用してツールを 2 回実行します。
-
新しいオブジェクトを読み込む前に既存のネットワーク解析オブジェクトを削除したい場合、CLEAR オプションを使用します。
-
ネットワーク データセットのネットワーク ソースとして使用されるフィーチャクラスが有効な最新の空間インデックスを保持している場合、このツールは非常に高速に実行されます。
構文
パラメータ | 説明 | データ タイプ |
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 (オプション) |
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.
| 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.
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 (オプション) |
| 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 |
コードのサンプル
必須パラメータのみを使用してツールを実行します。
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.AddLocations_na("Route","Stops","Analysis/Hospital","","")
すべてのパラメータを使用してツールを実行します。
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",""]])
次のスタンドアロン 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)