ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Расчет

  • Сводка
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензиях

Сводка

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

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

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

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

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

Синтаксис

arcpy.na.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 —Расчет не будет выполнен при наличии недопустимых положений. Их можно исправить и повторно запустить анализ.
Boolean
terminate_on_solve_error
(Дополнительный)

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

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

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

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

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

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

Задайте дополнительные опции, которые смогут повлиять на выполнение расчета, если будут найдены решения для задач сетевого анализа.

Для этого параметра должно быть задано значение в формате JavaScript Object Notation (JSON). К примеру, допустимое значение имеет следующий вид: {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. Замещающее имя всегда заключено в двойные кавычки. Эти значения могут быть числовыми, булевыми или текстовыми.

Значение по умолчанию является пустым, что означает отсутствие замещения каких-либо настроек механизма расчета.

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

String

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

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

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

Слой Network Analyst
solve_succeeded

Логическое значение, обозначающее успешность решения.

Логическое

Пример кода

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

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 occurred on line %i" % tb.tb_lineno
    print str(e)

Параметры среды

  • Текущая рабочая область

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

  • Basic: Требуется Network Analyst
  • Standard: Требуется Network Analyst
  • Advanced: Требуется Network Analyst

Связанные разделы

  • Алгоритмы, используемые дополнительным модулем ArcGIS Network Analyst extension
  • Устранение проблем сетевого анализа
  • Обзор группы инструментов Анализ
  • Обработка в фоновом и приоритетном режимах

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация