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

ПодсказкаПодсказка:

Если значение параметра содержит массив, разделяйте элементы массива локализованным символом-разделителем. Например, в США чаще всего для разделения элементов применяется запятая. Поэтому представление массива из трех чисел может выглядеть следующим образом: "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: Да
9/11/2013