Расчет (Network Analyst)

Уровень лицензии:BasicStandardAdvanced

Резюме

Решает задачу слоя сетевого анализа на основе сетевых местоположений и свойств.

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

Синтаксис

Solve_na (in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error}, {simplification_tolerance})
ПараметрОбъяснениеТип данных
in_network_analysis_layer

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

Network Analyst Layer
ignore_invalids
(дополнительно)
  • SKIP (пропуск)Механизм расчета будет пропускать неразмещенные сетевые положения и рассчитывать слой анализа на основе только допустимых сетевых положений. Также расчет продолжится, если положения находятся на непроходимых элементах или содержат другие ошибки. Это полезно, если известно, что не все сетевые положения являются допустимыми, но следует выполнить расчет для тех, которые допустимы.
  • HALT (остановка)Расчет не будет выполнен при наличии недопустимых положений. Их можно исправить и повторно запустить анализ.

Для слоя сетевого анализа задачи выбора маршрута транспорта следует использовать значение параметра HALT (остановка), поскольку механизму решения этой задачи требуется, чтобы все сетевые положения были допустимыми.

Boolean
terminate_on_solve_error
(дополнительно)
  • TERMINATE (прекращение)При обнаружении ошибки механизмом расчета инструмент не удастся запустить. Это значение по умолчанию. При использовании этого параметра результирующий объект не создается, если запустить инструмент не удается из-за ошибки механизма расчета. Сообщения геообработки следует получать от объекта ArcPy.
  • CONTINUE (продолжение)При обнаружении ошибки механизмом расчета отказа инструмента не будет, и он сможет продолжать работу. Все сообщения об ошибках, возвращенные механизмом расчета, будут преобразованы в предупредительные сообщения. При использовании этого параметра результирующий объект всегда создается, а свойству maxSeverity результирующего объекта присваивается значение 1, если механизм расчета обнаруживает ошибку. Используйте метод getOutput результирующего объекта со значением индекса 1, чтобы определить, был ли расчет успешным.
Boolean
simplification_tolerance
(дополнительно)

Допуск, определяющий степень упрощения для выходной геометрии. Если указан допуск, его значение должно быть больше нуля. Можно выбрать предпочитаемые единицы измерения (по умолчанию — десятичные градусы).

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

Поскольку линию только с двумя вершинами нельзя еще больше упростить, этот параметр не влияет на время отрисовки для односегментного вывода, например для прямолинейных маршрутов, линий матрицы стоимости «Источник-Назначение» и линий местоположения-распределения.

Linear unit

Пример кода

Пример расчета 1 (окно Python)

Выполнение инструмента с использованием всех параметров.

import arcpy
arcpy.na.Solve("Route","HALT","TERMINATE", "10 Meters")
Пример расчета 2 (рабочий процесс)

В следующем автономным скрипте Python показано, как с помощью инструмента «Расчет» (Solve) можно выполнить анализ ближайшего пункта обслуживания и сохранить результаты в файл слоя.

# Name: Solve_Workflow.py
# Description: Solve a closest facility analysis to find the closest warehouse 
#              from the store locations and save the results to a layer file on 
#              disk.
# 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/Paris.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/ParisMultimodal_ND"
    outNALayerName = "ClosestWarehouse"
    impedanceAttribute = "Drivetime"
    accumulateAttributeName = ["Meters"]
    inFacilities = "Analysis/Warehouses"
    inIncidents = "Analysis/Stores"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Create a new closest facility analysis layer. Apart from finding the drive 
    #time to the closest warehouse, we also want to find the total distance. So
    #we will accumulate the "Meters" impedance attribute.
    outNALayer = arcpy.na.MakeClosestFacilityLayer(inNetworkDataset,outNALayerName,
                                                   impedanceAttribute,"TRAVEL_TO",
                                                   "",1, accumulateAttributeName,
                                                   "NO_UTURNS")
    
    #Get the layer object from the result object. The closest facility layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the closest facility layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    incidentsLayerName = subLayerNames["Incidents"]
    
    #Load the warehouses as Facilities using the default field mappings and 
    #search tolerance
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
    
    #Load the Stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, incidentsLayerName)
    fieldMappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(outNALayer, incidentsLayerName, inIncidents,
                          fieldMappings,"")
    
    #Solve the closest facility layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved closest facility layer as a layer file on disk with 
    #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: Требует Network Analyst
ArcGIS for Desktop Standard: Требует Network Analyst
ArcGIS for Desktop Advanced: Требует Network Analyst
9/11/2013