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

サマリー

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

使用法

  • パラメーター化されたネットワーク属性は、リアルタイムに変化する属性値をモデリングするために使用されます。たとえば、12 フィートの車高規制があるトンネルをパラメーターを使用してモデリングできます。この場合、車両の高さ (フィート) をパラメーター値として指定する必要があります。この規制は車両の高さが 12 フィートを超える場合に true に評価されます。同様に、橋は重量規制を指定するパラメーターを保持することができます。

  • このツールは、定義されたパラメーターが設定されたネットワーク属性を持つネットワーク解析レイヤーのみに使用される必要があります。

  • このツールは、ネットワーク解析レイヤーで解析を実行する前に、繰り返し既存のパラメーターの値を変更するのに使用できます。

パラメーター

ラベル説明データ タイプ
入力ネットワーク解析レイヤー

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

Network Analyst Layer
属性

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

String
パラメーター

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

String
(オプション)

属性パラメーターに設定される値。文字列、数値、日付、またはブール値 (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

派生した出力

ラベル説明データ タイプ
更新された入力ネットワーク解析レイヤー

更新されたネットワーク解析レイヤー。

Network Analyst レイヤー

arcpy.management.UpdateAnalysisLayerAttributeParameter(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

派生した出力

名前説明データ タイプ
output_layer

更新されたネットワーク解析レイヤー。

Network Analyst レイヤー

コードのサンプル

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

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

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

次のスタンドアロン Python スクリプトは、UpdateAnalysisLayerAttributeParameter ツールを使用して、車両に対する高さ制限が低い高架またはトンネルを避け、有料道路を回避し、指定されたトラックのルートを優先する、トラックの最適ルートを検索する方法を示しています。

# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py
# Description: Use the network dataset's length and height restriction attribute
#               parameters to find a route suitable for transporting a large
#               wind turbine blade. The results are saved to a layer file.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env
import os

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set local variables
    input_gdb = "C:/Data/SanDiego.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "WindTurbineRoute"
    impedance = "Meters"
    restrictions = ["Driving a Truck", "Height Restriction", "Oneway",
            "Length Restriction", "National STAA and Locally Preferred Routes"]
    seaport = os.path.join(input_gdb, "Analysis", "Port")
    wind_farm = os.path.join(input_gdb, "Analysis", "WindFarm")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Make a new route layer. Use restriction attributes relevant to trucking
    #oversize loads
    result_object = arcpy.na.MakeRouteLayer(network, layer_name, impedance,
                                        restriction_attribute_name=restrictions)

    #Get the layer object from the result object. The route layer can
    #now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    #Set the vehicle height and length attribute parameters to the dimensions of
    #the wind turbine transport truck. If these dimensions exceed the limits
    #associated with a street feature, that street will be restricted, and the
    #resulting route will avoid it.
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Height Restriction", "Vehicle Height (feet)", 13.25)
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Length Restriction", "Vehicle Length (feet)", 80)

    #Load the origin and destination points as Stops in the Route
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    stops_layer_name = sublayer_names["Stops"]
    arcpy.na.AddLocations(layer_object, stops_layer_name, seaport, "", "")
    arcpy.na.AddLocations(layer_object, stops_layer_name, wind_farm, "", "",
                            append="APPEND")

    #Solve the route layer
    arcpy.na.Solve(layer_object)

    #Save the solved route layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

    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)))