解析レイヤの属性パラメータの更新(Update Analysis Layer Attribute Parameter) (Network Analyst)

ライセンス レベル:BasicStandardAdvanced

サマリ

ネットワーク解析レイヤのネットワーク属性パラメータ値を更新します。このツールは、[解析の実行(Solve)] ツールで解析を実行する前に、ネットワーク解析レイヤの属性パラメータの値を更新するために使用する必要があります。これにより、解析操作において指定した属性パラメータの値が確実に使用され、適切な結果を得ることができます。

使用法

構文

UpdateAnalysisLayerAttributeParameter_na (in_network_analysis_layer, parameterized_attribute, attribute_parameter_name, {attribute_parameter_value})
パラメータ説明データ タイプ
in_network_analysis_layer

属性パラメータが更新されるネットワーク解析レイヤ。

Network Analyst Layer
parameterized_attribute

属性パラメータが更新されるネットワーク属性。

String
attribute_parameter_name

更新されるネットワーク属性のパラメータ。このツールでは、Object タイプのパラメータは更新できません。

String
attribute_parameter_value
(オプション)

属性パラメータに設定される値。文字列、数値、日付、またはブール値(True、False)のいずれかになります。値が指定されていない場合、属性パラメータ値は NULL に設定されます。

属性パラメータに規制使用タイプがある場合、文字列キーワードまたは数値で値を指定できます。この文字列キーワードまたは数値により、規制属性が、それに関連付けられたネットワーク エレメントを禁止するのか、回避するのか、優先するのかが決まります。さらに、HIGH、MEDIUM、または LOW キーワードを選択することによって、ネットワーク エレメントを回避または優先する度合いを定義できます。以下のキーワードがサポートされています。

  • PROHIBITED
  • AVOID_HIGH
  • AVOID_MEDIUM
  • AVOID_LOW
  • PREFER_LOW
  • PREFER_MEDIUM
  • PREFER_HIGH

数値が 1 より大きい場合は、規制されたエレメントが回避されます。数値が大きいほど、多くのエレメントが回避されます。数値が 0 ~ 1 の場合は、規制されたエレメントが優先されます。数値が小さいほど、多くの規制されたエレメントが優先されます。数値がマイナスの場合は、規制されたエレメントが禁止されます。

ヒントヒント:

パラメータ値に複数の値を指定する場合は、設定されている区切り文字を使用して、各値を区切ってください。たとえばアメリカ合衆国では、項目の区切り文字としてカンマをよく使用します。3 つの数字を「5,10,15」のように表します。

String

コードのサンプル

UpdateAnalysisLayerAttributeParameter(解析レイヤの属性パラメータの更新)の例 1(Python ウィンドウ)

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

import arcpy
arcpy.na.UpdateAnalysisLayerAttributeParameter("Route", "Height Restriction",
                                               "Vehicle Height (feet)", 12.0)
UpdateAnalysisLayerAttributeParameter(解析レイヤの属性パラメータの更新)の例 2(ワークフロー)

次のスタンドアロン Python スクリプトは、解析レイヤの属性パラメータの更新(Update Analysis Layer Attribute Parameter)ツールを使用して、車両に対する高さ制限が低い高架またはトンネルを避け、有料道路を回避し、指定されたトラックのルートを優先する、トラックの最適ルートを検索する方法を示しています。

# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py
# Description: Find the best route for trucks that avoids low clearance 
#              overpasses or tunnels, avoids toll roads and prefers desginated
#              truck routes. The results are saved to a layer file.
# 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/SanDiego.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayerName = "BestTruckRoute"
    impedanceAttribute = "TravelTime"
    accumulateAttribute = ['Meters']
    tollRoadRestriction = "Avoid Toll Roads"
    preferTruckRouteRestriction = "National STAA Preferred Route"
    parameterName = "Restriction Usage"
    inStops = "Analysis/Customers"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Make a new route layer. Along with the total travel time, we also want to
    #find out the total distance. So we accumulate "Meters" attribute. We will
    #create the route layer with defaultrestrictions and add the additional 
    #restrictions that we want the routes to honor.
    outNALayer = arcpy.na.MakeRouteLayer(inNetworkDataset, outNALayerName,
                                         impedanceAttribute, "", "", "",
                                         accumulateAttribute,"NO_UTURNS")
    #Get the layer object from the result object. The route layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the route layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    stopsLayerName = subLayerNames["Stops"]
    
    #Modify the restriction attributes for the route layer. We don't want to use
    #Driving an Automobile restriction and wan't to use Driving a Truck,
    #Avoid Toll Roads and National STAA Preferred Route restrictions.
    solverProperties = arcpy.na.GetSolverProperties(outNALayer)
    defaultRestrictions = solverProperties.restrictions
    defaultRestrictions.remove("Driving an Automobile")
    defaultRestrictions += ["Driving a Truck", tollRoadRestriction,
                            preferTruckRouteRestriction]
    solverProperties.restrictions = defaultRestrictions
    
    #Load the Delivery locations as stops using default field mappings
    arcpy.na.AddLocations(outNALayer, stopsLayerName, inStops, "", "")
    
    #As we wish avoid toll roads as much as possible and highly prefer the 
    #designated turck routes, we set the appropriate parameter values for the 
    #Restriction Usage parameter for these two restriction attributes.
    arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer, tollRoadRestriction,
                                                   parameterName, "AVOID_HIGH")
    arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer,
                                                   preferTruckRouteRestriction,
                                                   parameterName, "PREFER_HIGH")
    
    #Solve the route layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved route layer as a layer file on disk using relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"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)

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: ○
ArcGIS for Desktop Standard: ○
ArcGIS for Desktop Advanced: ○
5/10/2014