Выходные данные инструмента Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem)
Инструмент геообработки Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem) создает следующую таблицу и классы пространственных объектов в качестве выходных данных: Остановки (Stops), Неназначенные остановки (UnassignedStops), Маршруты (Routes), Путевой лист (Directions). В следующих подразделах приведено описание выходных таблиц и классов пространственных объектов и соответствующих им полей атрибутов.
Класс пространственных объектов Маршруты (Routes)
Линейный класс пространственных объектов Маршруты (Routes) представляет водителей, транспортные средства и маршруты транспортных средств для задачи выбора маршрута. По умолчанию, именем данного выходного класса пространственных объектов является Routes, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходных маршрутов (Output Routes Name) (output_routes_name для Python) перед расчетом.
ArcGIS присваивает классу пространственных объектов Маршруты (Routes) ту же систему координат, которую использует лежащий ниже набор сетевых данных. Он может управляться путем ввода значения среды геообработки Выходная система координат (Output Coordinate System).
Имена полей класса пространственных объектов Маршруты (Routes) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Name | Название маршрута. |
Shape | Поле геометрии, показывающее форму маршрута. Используйте параметр Заполнить линии маршрута (Populate Route Lines) (populate_route_lines для Python), чтобы определить необходимость заполнения данного поля. Класс пространственных объектов Маршруты (Routes) всегда создается и заполняется данным во время выполнения инструмента Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem). При этом параметр Заполнить линии маршрута (Populate Route Lines) (populate_route_lines для Python) позволяет вам выбирать необходимость создания и записи значений поля Форма (Shape) для линейных объектов. Если вы решите не заполнять значения поля Форма (Shape), то это увеличит скорость расчета и снизит объем обмена данными между сервером и клиентом; при этом пользователям зачастую требуется отобразить маршруты на карте, что требует заполнения поля Форма (Shape). |
ViolatedConstraints | Это поле содержит обзор нарушенных ограничений, и его значение устанавливается после операции расчета. Если маршрут вызывает нарушение ограничения, полю может быть назначено сочетание одного или нескольких нарушений, перечисленных ниже. Более подробно: Кодированные значения, представляющие текстовое описание, приведены в списке ниже, в скобках. Обратите внимание, что кодированные значения являются частью геометрической последовательности, которая увеличивается путем удвоения последнего значения. Это позволяет кодировать различные комбинации нарушений. Например, комбинация Превышение емкостей (Capacities exceeded) (2) и Жесткая зона маршрута (Hard route zone) (128) кодируются, как 130 (2 +128).
|
OrderCount | Число заказов, назначенных маршруту. |
TotalCost | Общие затраты на эксплуатацию маршрута, которые являются суммой значений следующих полей:
|
RegularTimeCost | Стоимость обычного рабочего времени, за исключением неоплачиваемых перерывов. |
OvertimeCost | Стоимость сверхурочной работы, за исключением неоплачиваемых перерывов. |
DistanceCost | Компонент стоимости расстояния, получаемый умножением значений полей TotalDistance и CostPerUnitDistance. Это поле имеет нулевое значение, если атрибут расстояния не указан до выполнения расчета. |
TotalTime | Общая длительность маршрута. Она включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Значение TotalTime является суммой значений следующих полей:
Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
TotalOrderServiceTime | Общее время обслуживания, потраченное на всех заказах по маршруту. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
TotalBreakServiceTime | Общее время обслуживания, потраченное на всех перерывах по маршруту. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
TotalTravelTime | Общее время в пути для маршрута. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
TotalDistance | Общее расстояние пути для маршрута. Единица измерения для значения данного поля указывается параметром Единицы поля расстояния (Distance Field Units) (distance_units для Python). Это поле имеет нулевое значение, если атрибут расстояния не указан до выполнения расчета. |
StartTime | Время начала маршрута. Маршрут может начинаться до начала временного окна его начальной станции; в этом случае на начальной станции будет затрачено время ожидания. При использовании данных трафика, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположена начальная станция. |
EndTime | Время окончания маршрута. Маршрут заканчивается по завершении обслуживания на конечной станции. При использовании данных трафика, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположена конечная станция. |
TotalWaitTime | Общее время ожидания на всех точках заказов, станциях и перерывах по маршруту. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
TotalViolationTime | Общее время нарушения на всех заказах и перерывах по маршруту. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
RenewalCount | Для маршрута с обновлениями это аналогично количеству остановок на станциях, для целей обновления транспортного средства, например его разгрузки или разгрузки. |
TotalRenewalServiceTime | Для маршрута с обновлениями общее время обслуживания, потраченное при всех посещениях для обновления загрузки по маршруту. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
Класс пространственных объектов Путевой лист (Directions)
Путевой лист (Directions) представляет собой линейный класс пространственных объектов, заполненный инструкциями для последовательных поворотов, которые помогают водителям следовать назначенным маршрутам. По умолчанию, именем данного выходного класса пространственных объектов является Directions, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходного путевого листа (Output Directions Name) (output_directions_name для Python) перед вычислением. Кроме того, инструмент Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem) всегда создает класс пространственных объектов Путевой лист (Directions); однако вы можете использовать параметр Заполнить путевой лист (Populate Directions) (populate_directions для Python) для выбора необходимости заполнения класса пространственных объектов значениями во время расчета. По умолчанию они не заполняются. Если путевой лист вам не нужен, то вы можете значительно сократить время расчета и объем данных, передаваемых от серверов к клиентам.
ArcGIS присваивает классу пространственных объектов Путевой лист (Directions) ту же систему координат, которую использует лежащий ниже набор сетевых данных. Это может управляться путем ввода значения среды геообработки Выходная система координат (Output Coordinate System).
Имена полей класса пространственных объектов Путевой лист (Directions) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Shape | Поле геометрии указывает форму линий. |
RouteName | Название маршрута, к которому применяется действие перемещения. |
ArriveTime | Время дня для начала заданного действия перемещения. Если маршрут выполняется за несколько дней, то отображается дата и время дня. |
Type | Данное поле предназначено для продвинутых пользователей, которые хотят настроить текст направления движения. Большинство пользователей могут обеспечить соблюдение требований путем игнорирования данного поля и использования поля Текст (Text). Тип относится к постоянной одного из двух списков: esriDirectionsManueverType или esriDirectionsStringType. (См. описание поля SubItemType для того, чтобы узнать к каким спискам относится значение Тип (Type).) Вы можете просмотреть список постоянных значений путем поиска в SDK по вашему выбору для имени списка. |
SubItemType | Данное поле предназначено для продвинутых пользователей, которые хотят настроить текст направления движения. Большинство пользователей могут обеспечить соблюдение требований путем игнорирования данного поля и использования поля Текст (Text). SubItemType работает в сочетании с Тип (Type) для создания направлений перемещения, указанных в поле Текст (Text). Поле SubItemType показывает, относится ли поле Тип (Type) к постоянному значению в списке esriDirectionsManueverType или esriDirectionsStringType.
|
Text | Текстовое описание направления движения. |
ElapsedTime | Время, прошедшее с начала текущего направления движения до начала следующего или до тех пор, пока маршрут не закончится на последнем направлении. Некоторые направления движения включают дополнительные записи для времени обслуживания, нарушения времени и т. д. В таких случаях истекшее время реплицируется для каждой записи. При необходимости суммирования общего истекшего времени выберите записи со значением параметра Тип (Type), равным 1, и выполните суммирование таких записей. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
DriveDistance | Расстояние, с которого началось текущее направление движения до начала следующего или до места, где маршрут закончится на последнем направлении движения. Данное значение равно нулю для направлений движения, которые происходят том же положении, где начинается другое. |
Таблица Остановки (Stops)
Таблица Остановки (Stops) предоставляет информацию об остановках, сделанных на станциях, на заказах и в перерывах. Информация, включает в себя маршруты, совершающие остановки, время прибытия и отправления, а также последовательность остановок.
По умолчанию именем данной выходной таблицы является Stops, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходных остановок (Output Stops Name) (output_stops_name для Python) перед вычислением.
Имена полей таблицы Остановки (Stops) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Name | Имя остановки. Оно является внешним ключом для имени станции, заказа или перерыва в наборах входных объектов и наборе записей. Входной объект или набор записей указывается полем StopType. |
PickupQuantities | Количество груза или число людей, которое необходимо забрать с остановки. При доставке к остановке множества размеров, каждое количество отделяется пробелом. Единицы измерения для данного поля не хранятся. Вы должны интерпретировать единицы измерения в соответствии со способом, при помощи которого вы вводили значения в поле Количества (Quantities) входных маршрутов, а также поля PickupQuantities и DeliveryQuantities входных заказов. (Все эти поля должны быть введены с использованием аналогичных единиц измерения и количества размеров.) |
DeliveryQuantities | Количество груза или число людей, которое необходимо доставить на остановку. При доставке к остановке множества размеров, каждое количество отделяется пробелом. Единицы измерения для данного поля не хранятся. Вы должны интерпретировать единицы измерения в соответствии со способом, при помощи которого вы вводили значения в поле Количества (Quantities) входных маршрутов, а также поля PickupQuantities и DeliveryQuantities входных заказов. (Все эти поля должны быть введены с использованием аналогичных единиц измерения и количества размеров.) |
StopType | Указывает, представляет ли остановка станцию, заказ или перерыв. В поле хранится кодированное значение, которое может быть интерпретировано следующим образом:
|
RouteName | Имя маршрута, на котором выполняется остановка. |
Sequence | Относительная последовательность, в которой назначенные маршруты посещают остановку. Сортировка по полям RouteName и Sequence создает упорядоченный список остановок для каждого маршрута. |
FromPreviousTravelTime | Истекшее время в пути от предыдущей остановки маршрута до текущей остановки. Единица измерения для значения данного поля указывается параметром Единицы поля времени (Time Field Units) (time_units для Python). |
FromPreviousDistance | Расстояние по маршруту от предыдущей остановки до текущей остановки маршрута. Единица измерения для значения данного поля указывается параметром Единицы поля расстояния (Distance Field Units) (distance_units для Python). |
ArriveCurbApproach | Указывает на сторону транспортного средства, с которой должен находиться бордюр при прибытии на остановку. |
DepartCurbApproach | Указывает на сторону транспортного средства, с которой должен находиться бордюр при отправлении с остановки. |
ArriveTime | Время дня, в которое маршрут прибывает на остановку. Когда набор сетевых данных настроен с использованием часовых поясов, значение времени дня соответствует часовому поясу, в котором расположена остановка; в противном случае оно соответствует часовому поясу, который настроен на компьютере для выполнения анализа. |
DepartTime | Время дня, когда производится отправление маршрута от остановки. Когда набор сетевых данных настроен с использованием часовых поясов, значение времени дня соответствует часовому поясу, в котором расположена остановка; в противном случае оно соответствует часовому поясу, который настроен на компьютере для выполнения анализа. |
ArriveTimeUTC | Время дня, в которое маршрут прибывает на остановку. Данное значение указываются в формате времени по Гринвичу (UTC). Данное поле является нулевым, если часовые пояса не настроены для набора сетевых данных. |
DepartTimeUTC | Время дня, когда производится отправление маршрута от остановки. Данное значение указываются в формате времени по Гринвичу (UTC). Данное поле является нулевым, если часовые пояса не настроены для набора сетевых данных. |
WaitTime | Время ожидания или задержки на остановке. Например, значение времени ожидания будет добавлено, если по маршруту предусмотрено ожидание открытия (начала) временного окна. |
ViolationTime | Величина времени между окончанием временного окна остановки и прибытием транспортного средства по маршруту. |
Отображение остановок
Очевидно, что таблица Остановки (Stops) не является классом пространственных объектов, это означает, что вы не можете просто добавить таблицу на карту для просмотра мест остановок. Вместо этого вам необходимо предпринять дополнительные шаги для отображения остановок на карте. (Руководство по выполнению данной операции приведено ниже.) Данная схема может показаться неоправданно сложной, если вам необходимо отобразить остановки маршрута на карте; однако, помните, что данный инструмент предназначен для создания веб-сервисов VRP. Поэтому выходные данные разработаны таким образом, чтобы максимально сократить работу сервера и передачу данных. Тем не менее, выходные данные не слишком разреженные; они все еще предоставляют вам необходимую информацию для отображения остановок в виде точечных объектов.
Например, для просмотра места остановок в точках заказов, привяжите таблицу Остановки (Stops) к исходному набору объектов Заказы (Orders), который использовался как входной. Вы можете выбрать и присоединить эти наборы данных при помощи полей StopType и Name таблицы Остановки (Stops) и поля Name набора объектов Заказы (Orders). Вы можете использовать аналогичный подход для просмотра остановок на станциях.
Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem) создает несколько входных наборов объектов, включая наборы объектов Заказы (Orders) и Станции (Depots). По мере вычисления с помощью данного инструмента, эти наборы виртуальных объектов удаляются из ArcMap. Однако вы можете вернуть их. Чтобы сделать это, выполните следующие шаги:
- Откройте окно Результаты (Results) из меню Геообработка (Geoprocessing).
- В окне Результаты (Results) перейдите к результатам операции, из которой вам необходим набор объектов.
- Раскройте соответствующий результат Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem).
- Раскройте Входные данные (Inputs).
- Щелкните правой кнопкой мыши на наборе объектов, который вы хотите просмотреть, и выберите Добавить к карте (Add to Display). Набор объектов появится на карте и в таблице содержания.
- Дополнительно, нажмите кнопку По источникам (List By Source) в окне Таблица содержания (Table Of Contents) для просмотра места хранения данных.
В отличие от заказов и станций, перерывы не связаны с набором входных объектов. Поэтому вам необходимо использовать другой метод для их отображения. Вы можете создать путевой лист в анализе, выбрать линии, которые представляют объекты, и использовать инструмент Вершины объекта в точки (Feature Vertices To Points) для преобразования их в точки.
Таблица UnassignedStops
В таблице Неназначенные остановки (UnassignedStops) приведен перечень заказов, которые не могут быть посещены маршрутами. В ней также указано, почему невозможно посетить остановку, что позволяет вам внести необходимые изменения для устранения проблемы.
По умолчанию, именем данной выходной таблицы является UnassignedStops, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходных неназначенных остановок (Output Unassigned Stops Name) (output_unassigned_stops_name) перед вычислением.
Имена полей таблицы Остановки (Stops) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
StopType | Указывает, что именно представляет остановка - станцию, заказ или перерыв. В поле хранится кодированное значение, которое может быть интерпретировано следующим образом:
|
Name | Имя остановки. Оно является внешним ключом для имени станции, заказа или перерыва в наборах входных объектов и наборе записей. Входной объект или набор записей указывается полем StopType. |
ViolatedConstraints | Это поле содержит сводку по нарушенным ограничениям, и значение ему присваивается после операции расчета. Если эта постоянная нарушена, то возможно полю было назначено сочетание одного или нескольких нарушений, перечисленных ниже. Более подробно: Кодированные значения, представляющие текстовое описание, приведены в списке ниже, в скобках. Обратите внимание, что кодированные значения являются частью геометрической последовательности, которая увеличивается путем удвоения последнего значения. Это позволяет кодировать различные комбинации нарушений. Например, комбинация Превышение емкостей (Capacities exceeded) (2) и Жесткая зона маршрута (Hard route zone) (128) кодируются, как 130 (2 +128).
|
Status | Данное поле ограничивается с помощью значений, указанных ниже (их кодированные значения указаны в скобках).
|