Обновление параметра атрибута слоя анализа (Network Analyst)

Сводка

Обновляет значение параметра сетевого атрибута для слоя сетевого анализа. Инструмент следует использовать для обновления значения параметра атрибута слоя сетевого анализа перед расчетом с помощью инструмента Расчет. Это гарантирует, что в операции расчета будет использоваться указанное значение параметра атрибута для выдачи соответствующих результатов.

Прежние версии:

Это устаревший инструмент. Вместо обновления значений атрибутивных параметров слоя сетевого анализа по-отдельности во время анализа, можно заранее задать значения атрибутивных параметров, настроив режимы перемещения по источникам сетевых данных. Во время анализа просто выберите соответствующий режим перемещения.

Использование

  • Параметризованные сетевые атрибуты используются для моделирования некоторого динамического аспекта значения атрибута. Например, туннель с ограничением высоты 12 футов может быть смоделирован с использованием параметра. В этом случае высоту транспорта в футах нужно указать как значение параметра. Ограничение будет считаться истинным, если высота транспорта превышает 12 футов. Аналогично у моста может быть параметр, указывающий ограничение по весу.

  • Этот инструмент следует использовать только со слоями сетевого анализа с заданными параметрами сетевых атрибутов.

  • Этот инструмент можно использовать, чтобы неоднократно изменять значения существующего параметра перед расчетом слоя сетевого анализа.

Синтаксис

arcpy.na.UpdateAnalysisLayerAttributeParameter(in_network_analysis_layer, parameterized_attribute, attribute_parameter_name, {attribute_parameter_value})
ParameterОбъяснениеТип данных
in_network_analysis_layer

Слой сетевого анализа, для которого будет обновлено значение параметра.

Network Analyst Layer
parameterized_attribute

Сетевой атрибут, параметр которого будет обновлен.

String
attribute_parameter_name

Параметр сетевого атрибута, который будет обновлен. С помощью этого инструмента нельзя обновить параметры типа Объект.

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 могут привести к предпочтительному выбору ограниченных элементов. Чем меньше число, тем больше ограниченных элементов выбирается. Отрицательные числа запрещают использование ограниченных элементов.

Подсказка:

Если значение параметра содержит массив, отделите элементы массива с помощью локализованного символа разделителя. Например, в США вы бы скорее всего использовали запятую для разделения элементов. Поэтому представление массива из трех чисел может выглядеть следующим образом: "5,10,15".

String

Производные выходные данные

NameОбъяснениеТип данных
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)))

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да