applyTravelMode
Краткая информация
Предоставляет доступ к свойствам слоя сетевого анализа ближайшего пункта обслуживания. Функция GetSolverProperties используется для получения объекта ClosestFacilitySolverProperties из слоя сетевого анализа ближайшего объекта.
Обсуждение
Объект ClosestFacilitySolverProperties предоставляет доступ на чтение и запись ко всем объектам слоя сетевого анализа поиска ближайшего объекта. Этот объект можно использовать для изменения нужных свойств слоя ближайшего пункта обслуживания, а соответствующий слой можно повторно рассчитать для получения необходимых результатов. Новый слой ближайшего пункта обслуживания можно создать с помощью инструмента геообработки Создать слой анализа ближайшего пункта обслуживания. Получение объекта ClosestFacilitySolverProperties из нового слоя ближайшего пункта обслуживания позволяет повторно использовать существующий слой для последующего анализа, а не создавать новый слой для каждого анализа, что может замедлять работу.
После изменения свойств объекта ClosestFacilitySolverProperties соответствующий слой можно немедленно использовать с другими функциями и инструментами геообработки. Обновлять слой для внесения изменения не требуется.
Синтаксис
applyTravelMode()
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
accumulators (Чтение / Запись) |
Дает возможность получать или задавать список сетевых атрибутов стоимости, сумма которых подсчитывается в ходе данного анализа. Пустой список, |
String |
|
attributeParameters (Чтение / Запись) |
Дает возможность получать или задавать параметризированные атрибуты для использования их в анализе. Это свойство возвращает словарь Python. Ключом в словаре является кортеж двух значений – имени атрибута и имени параметра. Значение каждого элемента в словаре является значением параметра. Параметризованные сетевые атрибуты используются для моделирования некоторого динамического аспекта значения атрибута. Например, туннель с ограничением высоты 12 футов может быть смоделирован с использованием параметра. В этом случае высоту транспорта в футах нужно указать как значение параметра. Если транспортное средство выше 12 футов (3,7 м), то это ограничение будет оценено как Попытка изменить непосредственно свойство Не стоит изменять свойство
Измените свойство
Если слой сетевого анализа не имеет параметризованных атрибутов, это свойство вернет значение |
Dictionary |
|
defaultCutoff (Чтение / Запись) |
Дает возможность получать или задавать значение импеданса по умолчанию, при котором механизм расчета прекратит поиск пунктов обслуживания для данного инцидента. Значение |
Double |
|
defaultTargetFacilityCount (Чтение / Запись) |
Дает возможность получать или задавать количество ближайших пунктов обслуживания, которые следует искать для одного инцидента. |
Integer |
|
ignoreInvalidLocations (Чтение / Запись) |
Указывает, будут ли игнорироваться неверные входные местоположения. Обычно местоположения недействительны, если они не могут быть обнаружены в сети. Когда недопустимые местоположения игнорируются, решатель пропустит их и попытается выполнить анализ, используя оставшиеся местоположения.
|
String |
|
impedance (Чтение / Запись) |
Дает возможность получать или задавать сетевой атрибут стоимости, используемый в качестве импеданса. При определении ближайшего пункта обслуживания и наилучшего пути к нему используется наименьшее значение этого атрибута стоимости. |
String |
|
outputPathShape (Чтение / Запись) |
Дает возможность получать или задавать тип формы для объектов маршрута, получаемых в результате расчета. Список возможных значений следующий:
|
String |
|
restrictions (Чтение / Запись) |
Дает возможность получать или задавать список атрибутов ограничения, применяемых в ходе данного анализа. Пустой список, |
String |
|
solverName (Только для чтения) |
Возвращает название механизма расчета, на который ссылается слой Network Analyst, использующийся для получения объекта свойств механизма расчета. Это свойство всегда возвращает строковое значение Механизма расчета ближайшего пункта обслуживания, если доступ к нему осуществляется из объекта |
String |
|
streetDirectionsProperties (Чтение / Запись) |
Обеспечивает доступ на чтение и запись к |
Object |
|
timeOfDay (Чтение / Запись) |
Дает возможность получать или задавать время и дату начала или конца маршрута. Интерпретация этого значения зависит от того, какое значение имеет свойство Вместо конкретной даты может быть задан день недели, при помощи следующих условных дат.
К примеру, если маршрут должен начинаться или оканчиваться в 8:00 утра в понедельник, следует указать значение Параметр |
DateTime |
|
timeOfDayUsage (Чтение / Запись) |
Указывает, что представляет собой свойство
|
String |
|
timeZoneUsage (Чтение / Запись) |
Указывает часовой пояс параметра
Вне зависимости от настроек
|
String |
|
travelDirection (Чтение / Запись) |
Дает возможность получать или задавать направление движения между пунктами обслуживания и инцидентами в ходе анализа. Список возможных значений следующий:
|
String |
|
travelMode (Только для чтения) |
Доступ к режиму движения устанавливается для слоя сетевого анализа как объект |
Object |
|
useHierarchy (Чтение / Запись) |
Отвечает за использование атрибута иерархии при проведении анализа. Список возможных значений следующий:
|
String |
|
uTurns (Чтение / Запись) |
Предоставляет возможность получать или устанавливать политику, которая указывает, как решатель управляет разворотами на перекрестках, которые могут возникать в ходе прохода по сети между остановками. Список возможных значений следующий:
|
String |
Методы
applyTravelMode(travel_mode)
Обновляет свойства анализа слоя network analyst на основе объекта режима передвижения. После этого обновленный слой network analyst может быть рассчитан для завершения анализа.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
travel_mode |
Переменная, ссылающаяся на объект режима передвижения, который был получен на основе слоя сетевых данных. Список объектов режима передвижения можно получить, вызвав функцию |
Object |
Пример кода
Скрипт показывает, как обновить свойства алгоритма Closest Facility через полный рабочий процесс. Основано на упражнениях по сетевым наборам данных для Сан-Франциско.
# Name: ClosestFacilitySolverProperties_Workflow.py
# Description: For some emergency planning a distribution center is seeing how
# long it will take to get to the nearest hospital at different
# times of the day.
# Requirements: Network Analyst extension
# Import system modules
import arcpy
from arcpy import env
import os
import datetime
try:
# Set environment settings
output_dir = r"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/SanFrancisco.gdb"
network = os.path.join(input_gdb, "Transportation", "Streets_ND")
layer_name = "ClosestHospital"
travel_mode = "Driving Time"
direction = "TO_FACILITIES"
cutoffs = 4
in_facilities = os.path.join(input_gdb, "Analysis/Hospitals")
in_incident = os.path.join(input_gdb, "Analysis/DistributionCenter")
nine_in_the_morning = os.path.join(output_dir, "Output.gdb", "nine_in_the_morning")
mid_day = os.path.join(output_dir, "Output.gdb", "mid_day")
# Create a new Closest Facilities layer. The warehouse is concerned with an
# accident during their workday and wants to know how long it will take to
# get to the closest hospital.
result_object = arcpy.na.MakeClosestFacilityAnalysisLayer(network,
layer_name, travel_mode,
direction,
number_of_facilities_to_find = 1,
time_of_day = "1/4/1900 09:00 am")
# Get the layer object form 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.
sub_layer_names = arcpy.na.GetNAClassNames(layer_object)
# Store the layer names that we will use later
facilities_layer_name = sub_layer_names["Facilities"]
incidents_layer_name = sub_layer_names["Incidents"]
routes_layer_name = sub_layer_names["CFRoutes"]
# Load the hospital locations as facilities.
arcpy.na.AddLocations(layer_object, facilities_layer_name, in_facilities,
"", "")
# Load the distribution center location as incidents
arcpy.na.AddLocations(layer_object, incidents_layer_name, in_incident,
"", "")
# Solve the closest facilities layer
arcpy.na.Solve(layer_object)
# Save the resulting route sublayer
arcpy.management.CopyFeatures(routes_layer_name, nine_in_the_morning)
# Get the solver properties object from the closest facility layer
solverProps = arcpy.na.GetSolverProperties(layer_object)
# Update the breaks to 1, 4, and 10 minutes
solverProps.timeOfDay = "1/4/1900 12:00 pm"
# Solve the closest facility layer
arcpy.na.Solve(layer_object)
# Save the resulting route sublayer
arcpy.management.CopyFeatures(routes_layer_name, mid_day)
except Exception as e:
# If an error occurred, print line number and error message
import traceback
import sys
tb = sys.exc_info()[2]
print("An error occurred on line %i" % tb.tb_lineno)
print(str(e))
В этом скрипте показано, как использовать режим передвижения TruckingTime для существующего слоя.
#Get the closest facility layer object from a layer named "Closest Facility" in
#the map
doc = arcpy.mp.ArcGISProject('current')
map_obj = doc.listMaps()[0]
cf_layer = map_obj.listLayers('Closest Facility')[0]
#Get the Trucking Time travel mode from the network dataset
desc = arcpy.Describe(cf_layer)
travel_modes = arcpy.na.GetTravelModes(desc.network.catalogPath)
trucking_mode = travel_modes["Trucking Time"]
#Apply the travel mode to the analysis layer
solver_properties = arcpy.na.GetSolverProperties(cf_layer)
solver_properties.applyTravelMode(trucking_mode)