Расчет (Network Analyst)

Краткая информация

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

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

  • Если решить задачу не удается, в предупредительных сообщениях и сообщениях об ошибках содержатся полезные сведения о причинах неудачи.

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

  • Инструмент будет расходовать кредиты, если слой сетевого анализа ссылается на ArcGIS Online в качестве источника сетевых данных. Для получения подробной информации см. раздел Кредиты.

Параметры

ПодписьОписаниеТип данных
Входной слой сетевого анализа

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

Network Analyst Layer
Игнорировать некорректные положения
(Дополнительный)

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

  • Отмечено - неверные входные местоположения будут игнорироваться, используются только допустимые местоположения.
  • Не отмечено - все входные местоположения будут использоваться. Любое некорректное местоположение приведет к сбою механизма расчета.

Значение по умолчанию соответствует настройке Игнорировать неверные местоположения в течение времени расчета для заданного значения Входной слой сетевого анализа.

Boolean
Прервать при ошибке расчета
(Дополнительный)

Определяет, будет ли работа инструмента приостановлена и прекращена, если в ходе решения возникнет ошибка.

  • Отмечено – при обнаружении ошибки механизмом расчета работа инструмента будет приостановлена и прекращена. Это значение по умолчанию
  • Не отмечено – при обнаружении ошибки механизмом расчета отказа инструмента не будет, и он сможет продолжать работу. Все сообщения об ошибках, возвращенные механизмом расчета, будут преобразованы в предупреждения. Этот параметр следует использовать, если в приложении включена фоновая обработка.
Boolean
Допуск упрощения
(Дополнительный)

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

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

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

Linear Unit
Замещения
(Дополнительный)

Примечание:

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

String

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

ПодписьОписаниеТип данных
Слой Network Analyst

Решенный слой сетевого анализа.

Network Analyst Layer
Расчет прошел успешно

Булево значение, обозначающее успешность решения.

Boolean

arcpy.management.Solve(in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error}, {simplification_tolerance}, {overrides})
ИмяОписаниеТип данных
in_network_analysis_layer

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

Network Analyst Layer
ignore_invalids
(Дополнительный)

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

  • SKIPНеверные входные местоположения будут игнорироваться, используются только допустимые местоположения.
  • HALTВсе входные местоположения будут использоваться. Любое некорректное местоположение приведет к сбою механизма расчета.

Значение по умолчанию соответствует настройке ignoreInvalidLocations для заданного значения in_network_analysis_layer.

Boolean
terminate_on_solve_error
(Дополнительный)

Определяет, будет ли работа инструмента приостановлена и прекращена, если в ходе решения возникнет ошибка.

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

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

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

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

Linear Unit
overrides
(Дополнительный)

Примечание:

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

String

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

ИмяОписаниеТип данных
output_layer

Решенный слой сетевого анализа.

Network Analyst Layer
solve_succeeded

Булево значение, обозначающее успешность решения.

Boolean

Пример кода

Solve, пример 1 (окно Python)

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

arcpy.na.Solve("Route", "HALT", "TERMINATE", "10 Meters")
Solve, пример 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
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/Paris.gdb"
    network = os.path.join(input_gdb, "Transportation", "ParisMultimodal_ND")
    layer_name = "ClosestWarehouse"
    travel_mode = "Driving Time"
    facilities = os.path.join(input_gdb, "Analysis", "Warehouses")
    incidents = os.path.join(input_gdb, "Analysis", "Stores")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Create a new closest facility analysis layer.
    result_object = arcpy.na.MakeClosestFacilityAnalysisLayer(network,
                                            layer_name, travel_mode,
                                            "TO_FACILITIES",
                                            number_of_facilities_to_find=1)

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

    #Get the names of all the sublayers within the closest facility layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    #Stores the layer names that we will use later
    facilities_layer_name = sublayer_names["Facilities"]
    incidents_layer_name = sublayer_names["Incidents"]

    #Load the warehouses as Facilities using the default field mappings and
    #search tolerance
    arcpy.na.AddLocations(layer_object, facilities_layer_name,
                            facilities, "", "")

    #Load the stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                    incidents_layer_name)
    field_mappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(layer_object, incidents_layer_name, incidents,
                          field_mappings, "")

    #Solve the closest facility layer
    arcpy.na.Solve(layer_object)

    #Save the solved closest facility 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))