Краткая информация
Предоставляет доступ к свойствам из слоя задачи выбора маршрута транспорта Network Analyst. Функция GetSolverProperties используется для получения объекта VehicleRoutingProblemSolverProperties из слоя задачи выбора маршрута транспорта Network Analyst.
Обсуждение
Объект VehicleRoutingProblemSolverProperties предоставляет доступ для чтения и записи ко всем свойствам слоя задачи выбора маршрута транспорта Network Analyst. Этот объект можно использовать для изменения свойств анализа слоя задачи выбора маршрута транспорта, а соответствующий слой можно повторно рассчитать для получения необходимых результатов. Новый слой задачи выбора маршрута транспорта можно создать с помощью инструмента геообработки . Получение объекта VehicleRoutingProblemSolverProperties из нового слоя задачи выбора маршрута транспорта позволяет повторно использовать существующий слой для последующего анализа, а не создавать новый слой для каждого анализа, что может замедлять работу.
После изменения свойств объекта VehicleRoutingProblemSolverProperties, соответствующий слой можно немедленно использовать с другими функциями и инструментами геообработки. Обновлять слой для внесения изменения не требуется.
Свойства
Свойство | Описание | Тип данных |
attributeParameters (чтение и запись) | Дает возможность получать или задавать параметризированные атрибуты для использования их в анализе. Это свойство возвращает словарь Python. Ключом в словаре является кортеж двух значений – имени атрибута и имени параметра. Значение каждого элемента в словаре является значением параметра. Параметризованные сетевые атрибуты используются для моделирования некоторого динамического аспекта значения атрибута. Например, туннель с ограничением высоты 12 футов может быть смоделирован с использованием параметра. В этом случае высоту транспорта в футах нужно указать как значение параметра. Если транспортное средство выше 12 футов (3,7 м), то это ограничение будет оценено как True, ограничивающее, таким образом, проезд по туннелю. Подобным образом у моста может быть параметр, указывающий ограничение по весу. Попытка изменить непосредственно свойство attributeParameters не приведет к обновлению значений. Вместо этого следует всегда использовать для установки значений этого свойства новый объект словаря. Различие между этими подходами проиллюстрировано следующими двумя блоками кода. Не стоит изменять свойство attributeParameters на месте; этот метод кодировки не будет работать.
Измените свойство attributeParameters, используя новый объект словаря.
| Dictionary |
defaultDate (чтение и запись) | Дает возможность получать или задавать дату, принимаемую для тех полей временных значений, в которых указано только время. Если поле времени для какого-либо объекта заказов, например, поле TimeWindowStart1, имеет значение времени без даты, принимается дата по умолчанию из свойства defaultDate. Например, если для параметра TimeWindowStart1 задано 9:00 утра, а defaultDate установлено на datetime.date(2012, 3, 6), то все значения времени будут иметь вид 9:00 a.m., March 6, 2012. Дата по умолчанию не влияет на значения в поле времени, для которых указана дата. Также в качестве даты по умолчанию можно указать день недели, при помощи следующих условных дат:
Например, если в качестве неявной даты для полей времени должен выступать день недели – вторник, следует указать для этого свойства значение 1/2/1900. | DateTime |
distanceAttribute (чтение и запись) | Дает возможность получать или задавать атрибут стоимости расстояния, используемый для определения длин элементов сети. | String |
distanceFieldUnits (чтение и запись) | Дает возможность получать или задавать единицы расстояния, используемые в полях расстояния подслоев и таблиц слоя анализа (классов сетевого анализа). Эти единицы не обязательно должны совпадать с единицами сетевого атрибута стоимости, указанного в свойстве timeAttribute.
| String |
excessTransitTimeImportance (чтение и запись) | Дает возможность получать или задавать степень важности уменьшения избыточного времени в пути. Избыточное время в пути – это затрачиваемое сверх необходимого время для перемещения от одного заказа к другому. Лишнее время может возникать по причине перерывов или возвращения в гараж между вызовами. Этот параметр имеет значение только при использовании Пары заказов.
| String |
ignoreInvalidLocations (чтение и запись) | Указывает, будут ли игнорироваться неверные входные местоположения. Обычно местоположения недействительны, если они не могут быть обнаружены в сети. Когда недопустимые местоположения игнорируются, решатель пропустит их и попытается выполнить анализ, используя оставшиеся местоположения.
| String |
outputPathShape (чтение и запись) | Дает возможность получать или задавать тип формы для объектов маршрута, получаемых в результате расчета.
| String |
restrictions (чтение и запись) | Дает возможность получать или задавать список атрибутов ограничения, применяемых в ходе данного анализа. Пустой список, [], означает, что в ходе анализа не применяются никакие атрибуты ограничения. | String |
solverName (только чтение) | Возвращает название механизма расчета, на который ссылается слой Network Analyst, использующийся для получения объекта свойств механизма расчета. Это свойство всегда возвращает строковое значение Vehicle Routing Problem Solver при обращении к нему из объекта VehicleRoutingProblemSolverProperties. | String |
streetDirectionsProperties (чтение и запись) | Обеспечивает доступ на чтение и запись StreetDirectionsProperties, позволяя настраивать выходные данные слоя выбора маршрута транспорта. | Object |
timeAttribute (чтение и запись) | Дает возможность получать или задавать атрибут стоимости на основе времени, используемый для определения времени пути по элементам сети. При решении задачи этот атрибут стоимости сводится к минимуму. | String |
timeFieldUnits (чтение и запись) | Дает возможность получать или задавать единицы измерения времени, используемые во временных полях подслоев и таблиц слоя анализа (классов сетевого анализа). Эти единицы не обязательно должны совпадать с единицами сетевого атрибута стоимости, указанного в свойстве timeAttribute.
| String |
timeWindowViolationImportance (чтение и запись) | Дает возможность получать или задавать степень значимости временных окон в анализе. Нарушение временного окна происходит в случае прибытия транспортного средства по вызову, в гараж или на остановку после своего временного окна. Нарушение – это интервал времени между моментом окончания временного окна и моментом прибытия. Список возможных значений следующий:
| String |
timeZoneUsageForTimeFields (чтение и запись) |
Устанавливает часовой пояс полей даты-времени во входных данных, в том числе полей, которые используются для временных окон.
| String |
spatialClustering (чтение и запись) | Указывает, будет ли использоваться пространственная кластеризация.
| Boolean |
useHierarchy (чтение и запись) | Отвечает за использование атрибута иерархии при проведении анализа. Список возможных значений следующий:
| String |
uTurns (чтение и запись) | Предоставляет возможность получать или устанавливать политику, которая указывает, как решатель управляет разворотами на перекрестках, которые могут возникать в ходе прохода по сети между остановками. Список возможных значений следующий:
| String |
Обзор метода
Метод | Описание |
applyTravelMode (travel_mode) | Обновляет свойства анализа слоя network analyst на основе объекта режима передвижения. После этого обновленный слой network analyst может быть рассчитан для завершения анализа. |
Методы
applyTravelMode (travel_mode)
Параметр | Описание | Тип данных |
travel_mode | Переменная, ссылающаяся на объект режима передвижения, который был получен на основе слоя сетевых данных. Список объектов режима передвижения можно получить, вызвав функцию arcpy.na.GetTravelModes. VRP выполняет расчет только с временным импедансом, поэтому будут разрешены только режимы перемещения на основе временного импеданса. | Object |
При создании слоя network analyst он получит значения по умолчанию для всех своих свойств анализа. Отдельные свойства анализа можно обновлять с помощью объекта свойств механизма расчета, полученного из слоя network analyst. Режим перемещения сохраняет предопределенный набор настроек анализа, который помогает выполнять определенные виды анализа – например, режим передвижения пешком сохраняет настройки анализа, необходимые для выполнения по-временного анализа передвижения пешим ходом.
Используя метод applyTravelMode, за один раз могут применяться сразу все настройки анализа, заданные для режима передвижения. После того, как свойства анализа будут обновлены, слой network analyst может быть рассчитан для завершения анализа.
Если при обновлении свойств механизма расчета, например – когда режим передвижения ссылается на свойства, которые не существуют в текущем наборе сетевых данных, или же ссылается на свойства, которые уже не применяются к набору сетевых данных, использовавшемуся для создания слоя network analyst, соответствующего объекту свойств механизма расчета, исключительных ситуаций не возникает. Этот метод будет с успехом работать, но вы получите ошибки при попытке расчёта такого слоя network analyst.
Если параметр travel_mode не привязан к объекту режима передвижения или строке, возникает исключительная ситуация TypeError. Если параметр travel_mode привязан к строке, но строка не может быть внутренне конвертирована в строковое представление объекта режима передвижения, возникает исключительная ситуация ValueError.
Пример кода
Этот скрипт показывает, как находить маршруты для группы грузовых автомобилей, используя режим передвижения Время в пути грузового транспорта.
#Get the VRP layer object from a layer named "VRP" in the map
doc = arcpy.mp.ArcGISProject('current')
map_obj = doc.listMaps()[0]
vrp_layer = map_obj.listLayers('VRP')[0]
#Get the Trucking Time travel mode from the network dataset
desc = arcpy.Describe(vrp_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(vrp_layer)
solver_properties.applyTravelMode(trucking_mode)