TravelMode

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

Предоставляет доступ к свойствам режима передвижения (чтение и запись).

Обсуждение

Объект TravelMode предоставляет доступ для чтения и записи к свойствам режима передвижения. Режимы передвижения могут быть созданы в наборе сетевых данных или настроены в сетевом сервисе портала и моделируют режим транспортировки (время в пути легкового автомобиля, длина пути пешехода, время в пути грузового транспорта для транспортных средств высотой от 13 футов и весом от 80000 фунтов и т.д.) После создания режима его можно использовать в качестве входных данных для задач сетевого анализа для управления поведением.

Чтобы использовать в сетевом анализе режим передвижения, можно создать объект TravelMode и изменить при необходимости его свойства.

Функцию GetTravelModes можно применять для доступа к существующим объектам TravelMode сетевого источника данных. Можно использовать один из следующих объектов TravelMode в качестве шаблона при создании нового объекта TravelMode.

Внимание:

Хотя существует возможность изменения объектов TravelMode, получаемых из функции GetTravelModes, это не рекомендуется. Изменения этих объектов TravelMode нельзя сохранять в источник сетевых данных, и вы можете столкнуться с проблемами именования, если используете в анализе измененный объект TravelMode. Рекомендуется всегда создавать новый режим передвижения на основе существующего и изменять свойства этого нового режима передвижения.

Синтаксис

TravelMode ({template_travel_mode})
ПараметрОписаниеТип данных
template_travel_mode

Существующий объект TravelMode для использования в качестве шаблона для создаваемого объекта. Будет создан новый объект TravelMode с такими же свойствами, как и объект шаблона, но его свойство name будет изменено, и к имени будут добавлены треугольные скобки, поскольку новый режим движения является копией. Например, если шаблон режима передвижения был назван Driving Time, новый будет называться <Driving Time>.

Если шаблон не был задан либо используется значение None, будет создан пустой объект TravelMode, а значения всех свойств перед использованием режима передвижения в сетевом анализе должны быть явно заданы.

Object

Свойства

СвойствоОписаниеТип данных
attributeParameters
(чтение и запись)

Выводит список параметров с атрибутами, которые используются в режиме передвижения. Это свойство ‑ словарь. Ключом в словаре является кортеж двух значений – имени атрибута и имени параметра. Значение каждого элемента в словаре является значением параметра. Пустой словарь означает, что режим передвижения использует текущие параметры набора сетевых данных, заданные в качестве параметров по умолчанию.

Параметризованные сетевые атрибуты используются для моделирования некоторого динамического аспекта значения атрибута. Например, туннель с ограничением высоты 12 футов может быть смоделирован с использованием параметра. В качестве значения параметра атрибутов можно указать высоту транспортного средства в футах. Если транспортное средство выше 12 футов (3,7 м), то это ограничение будет оценено как True, тем самым ограничивая его проезд через туннель. Подобным образом у моста может быть параметр, указывающий ограничение по весу.

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

attr_params = travel_mode.attributeParameters
attr_params[('Height Restriction', 'Vehicle Height (feet)')] = 12
travel_mode.attributeParameters = attr_params

Более подробно о параметрах атрибутов

Dictionary
description
(чтение и запись)

Краткое описание режима передвижения.

String
distanceAttributeName
(чтение и запись)

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

Даже в режимах передвижения, которые моделируют время в пути на автомобиле и пешком, для distanceAttributeName будет задан атрибут стоимости, основанный на расстоянии, например, Meters.

String
impedance
(чтение и запись)

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

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

Более подробно о редактировании атрибутов стоимости

String
name
(чтение и запись)

Уникальное имя режима передвижения.

String
restrictions
(чтение и запись)

Список атрибутов ограничений, используемых при расчете задач сетевого анализа с этим режимом передвижения. Пустой список, [], указывает на то, что для этого режима передвижения не используются никакие атрибуты ограничений.

Ограничения позволят предотвратить перемещение по дорогам с определенными характеристиками.

Более подробно об атрибутах ограничений

String
simplificationTolerance
(чтение и запись)

Показывает, генерализирует ли (обобщает ли) режим передвижения геометрию результатов анализа и насколько. Используется синтаксис "<value> <units>", например, "10 Meters". Значение None означает, что геометрия упрощаться не будет.

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

String
timeAttributeName
(чтение и запись)

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

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

String
type
(чтение и запись)

Обозначает категорию поездки или средство передвижения для данного режим передвижения. Список возможных значений следующий:

  • AUTOMOBILEРежим передвижения используется для обозначения передвижения на автомобиле.
  • TRUCKРежим передвижения используется для обозначения передвижения на грузовом автомобиле.
  • WALKРежим передвижения используется для обозначения передвижения пешком.
  • OTHERРежим передвижения используется для обозначения другой категории передвижения или транспортного средства, не описанного выше.
String
useHierarchy
(чтение и запись)

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

  • USE_HIERARCHYИспользует для анализа атрибут иерархии. Применение иерархии приводит при расчете к предпочтению ребер высшего порядка по сравнению с ребрами низшего порядка. Расчеты с иерархией выполняются быстрее, и они могут использоваться для моделирования предпочтений водителя, который скорее выберет для проезда автостраду, нежели местную дорогу – даже если это приведет к увеличению длины пути. Эта опция применяется только в том случае, если в наборе сетевых данных, на который ссылается слой сетевых данных, имеется атрибут иерархии. Для задания этой опции также может использоваться значение True.
  • NO_HIERARCHYДля анализа атрибут иерархии не используется. Расчет без применения иерархии дает точный маршрут для набора сетевых данных. Для задания этой опции также может использоваться значение False.

Более подробно о иерархии

String
uTurns
(чтение и запись)

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

  • ALLOW_UTURNSРазвороты разрешены в соединениях с любым количеством смежных ребер.
  • NO_UTURNSРазвороты запрещены на всех перекрестках, вне зависимости от их валентности (от количества подсоединенных ребер). Обратите внимание, что развороты разрешены в сетевых местоположениях, даже если выбрана эта настройка; однако вы также можете настроить свойство CurbApproach отдельных сетевых местоположений, чтобы запретить развороты и там.
  • ALLOW_DEAD_ENDS_ONLYРазвороты запрещены во всех соединениях, кроме тех, у которых имеется только одно смежное ребро (тупик).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYРазвороты запрещены в соединениях с ровно двумя смежными ребрами, но разрешены на перекрестках (в соединениях с тремя смежными ребрами или более) и в тупиках (соединениях с ровно одним смежным ребром). Часто сети имеют избыточные соединения в середине сегмента дороги. Эта опция позволяет запретить развороты транспортных средств в таких местах.
String

Пример кода

Пример 1 TravelMode

В этом примере показана печать свойств из объекта TravelMode.

import arcpy

network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.nax.GetTravelModes(network)

# Print the impedance attribute and restrictions used for each travel mode
for travel_mode_name in travel_modes:
    travel_mode = travel_modes[travel_mode_name]
    print(travel_mode_name)
    print("Impedance:", travel_mode.impedance)
    print("Restrictions:", ", ".join(travel_mode.restrictions))
    print("")
Пример 2 TravelMode

В примере показано, как нужно обновлять свойства TravelMode и использовать обновленный режим передвижения при осуществлении анализа.

import arcpy

network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.nax.GetTravelModes(network)
# Construct a new TravelMode object from the existing Driving Time travel mode
new_travel_mode = arcpy.nax.TravelMode(travel_modes["Driving Time"])
# Update the useHierarchy property to turn hierarchy off, and update the name
new_travel_mode.name = "Driving Time without Hierarchy"
new_travel_mode.useHierarchy = "NO_HIERARCHY"
# Use the new travel mode object when constructing an OD cost matrix analysis
od_object = arcpy.nax.OriginDestinationCostMatrix(network)
od_object.travelMode = new_travel_mode