ServiceAreaSolverProperties (arcpy.na)

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

Предоставляет доступ к свойствам слоя сетевого анализа областей обслуживания. Функция GetSolverProperties используется для получения объекта ServiceAreaSolverProperties из слоя сетевого анализа областей обслуживания.

Обсуждение

Объект ServiceAreaSolverProperties предоставляет доступ для чтения и записи ко всем свойствам слоя сетевого анализа областей обслуживания. Этот объект можно использовать для изменения нужных свойств анализа слоя ServiceAreaSolverProperties, а соответствующий слой можно повторно рассчитать для получения необходимых результатов. Новый слой областей обслуживания можно создать с помощью инструмента геообработки Создать слой области обслуживания (Make Service Area Layer). Получение объекта ServiceAreaSolverProperties из нового слоя областей обслуживания позволяет повторно использовать существующий слой для последующего анализа, а не создавать новый слой для каждого анализа, что может замедлять работу.

После изменения свойства объекта ServiceAreaSolverProperties соответствующий слой можно использовать с другими функциями и инструментами геообработки. Обновлять слой для внесения изменения не требуется.

Свойства

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

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

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

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

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

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

#Don't attempt to modify the attributeParameters property in place.
#This coding method won't work.

solverProps.attributeParameters[('HeightRestriction', 'RestrictionUsage')] = "PROHIBITED"
#Modify the attributeParameters property using a new dictionary object.
#This coding method works. 

params = solverProps.attributeParameters
params[('HeightRestriction', 'RestrictionUsage')] = "PROHIBITED"
solverProps.attributeParameters = params
Если слой сетевого анализа не имеет параметризованных атрибутов, это свойство вернет значение None (Нет).

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

Дает возможность получать или задавать значения импеданса, определяющие экстент области обслуживания для расчета. Для создания концентрических областей можно использовать несколько полигональных границ. Например, чтобы определить области обслуживания для одного пункта обслуживания со временами 2, 3 и 5 минут, следует указать значение [2, 3, 5].

Double
excludeSources
(чтение и запись)

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

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

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

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

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

  • LINES_SOURCE_FIELDS Добавляет к линиям областей обслуживания поля SourceID, SourceOID, FromPosition и ToPosition для хранения сведений об исходных пространственных элементах, используемых в анализе. Это помогает объединять результаты линий области обслуживания с исходными данными. Для выбора этого варианта также служит значение True.
  • NO_LINES_SOURCE_FIELDSНе добавляет к линиям областей обслуживания поля SourceID, SourceOID, FromPosition и ToPosition. Для выбора этого варианта также служит значение False.
String
lineOverlap
(чтение и запись)

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

  • OVERLAP Включать отдельные линейные объекты для каждого пункта обслуживания, если пункты обслуживания имеют совпадающие области обслуживания. Для выбора этого варианта также служит значение True.
  • NON_OVERLAP Включать каждую линию области обслуживания один раз и связывать её с ближайшим пунктом обслуживания (имеющим наименьший импеданс). Для выбора этого варианта также служит значение False.
String
lineType
(чтение и запись)

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

  • NO_LINESНе создавать линии.
  • TRUE_LINESЛинии создаются без измерений.
  • TRUE_LINES_WITH_MEASURESЛинии создаются с размерами. Значения размеров генерируются на основе значений импеданса для каждой границы; при этом промежуточные значения интерполируются. Не используйте этот параметр, если вам необходимо ускорить расчеты.
String
polygonMerge
(чтение и запись)

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

  • NO_MERGEСоздает отдельные полигоны для каждого пункта обслуживания. Полигоны могут накладываться друг на друга.
  • NO_OVERLAPСоздает отдельные полигоны, ближайшие к каждому пункту обслуживания. Полигоны могут не накладываются друг на друга.
  • MERGE Объединяет полигоны нескольких пунктов обслуживания с общими граничными значениями.
String
polygonNesting
(чтение и запись)

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

  • RINGSНе включает область с меньшим граничным значением. Создает полигоны между соседними граничными значениями. Этот параметр можно использовать для поиска областей между граничными значениями. Для выбора этого варианта также служит значение True.
  • DISKS Создавать сплошные полигоны от пункта до границы. Например, при создании 5- и 10-минутных областей обслуживания 10-минутная область будет включать 5-минутную. Этот параметр можно использовать для определения всей области между пунктом обслуживания и граничным значением. Для выбора этого варианта также служит значение False.
String
polygonType
(чтение и запись)

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

  • SIMPLE_POLYSСоздание генерализированных полигонов, которые генерируются быстрее и достаточно точны, если не учитывать особые требования.
  • DETAILED_POLYSСоздание детализированных полигонов, которые точно моделируют линии областей обслуживания и могут содержать островки недоступных областей. Этот вариант требует гораздо больше времени на вычисление, чем генерализованные полигоны.
  • NO_POLYSВыключает создание полигонов в случаях, когда желательно использовать линейное отображение областей обслуживания.
String
restrictions
(чтение и запись)

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

String
solverName
(только чтение)

Возвращает имя механизма расчета, на который ссылается слой сетевого анализа, использованный для получения данного объекта свойств механизма расчета. Это свойство всегда возвращает строковое значение Service Area Solver (Механизм расчета области обслуживания), если доступ к нему осуществляется из объекта ServiceAreaSolverProperties.

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

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

  • SPLITДелить каждую линию между двумя границами на две линии – по одной для каждой области. Это удобно, если вы хотите разграничить линии разных полигонов; иначе, для повышения быстродействия, используйте опцию NO_SPLIT.
  • NO_SPLITЛинии не делятся на границах областей обслуживания.
String
timeOfDay
(чтение и запись)

Дает возможность получать или задавать время отправления или прибытия в пункты обслуживания. Интерпретация этого значения зависит от того, какое направление движения задано – от пункта обслуживания или к нему. Оно представляет собой время отправления, когда свойство travelDirection имеет значение TRAVEL_FROM, и время прибытия, когда свойство travelDirection имеет значение TRAVEL_TO. Значение None (Нет) указывает на то, что дата и время не применяются.

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

  • Сегодня – 30.12.1899
  • Воскресенье – 31.12.1899
  • Понедельник – 01.01.1900
  • Вторник – 02.01.1900
  • Среда – 03.01.1900
  • Четверг – 04.01.1900
  • Пятница – 05.01.1900
  • Суббота – 06.01.1900

К примеру, если отправление из пункта обслуживания должно происходить в 8:00 утра в пятницу, следует указать значение datetime.datetime(1900, 1, 5, 8,0,0).

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

DateTime
timeZoneUsage
(чтение и запись)

Указывает часовой пояс или пояса параметра timeOfDay.

  • GEO_LOCALЗначение параметра timeOfDay относится к часовому поясу или поясам, в которых находятся пункты обслуживания. Поэтому времена начала и окончания областей обслуживания разнесены по часовым поясам.При установке timeOfDay на 9:00 a.m. и выборе GEO_LOCAL, механизм расчета построит области обслуживания для 9:00 a.m. Восточного времени для всех пунктов обслуживания в часовом поясе Восточное время, 9:00 a.m. Центрального времени для пунктов обслуживания в часовом поясе Центральное время, 9:00 a.m. Горного времени для пунктов обслуживания в часовом поясе Горное время и т.д. для пунктов обслуживания в различных часовых поясах. Во всех случаях временем будет девять часов утра местного времени, но реальное время будет разным.Если магазины в торговой сети, охватывающей всю территорию США, открываются в 9:00 a.m. местного времени, это значение параметра можно использовать, чтобы найти торговые территории в час открытия сразу для всех магазинов. Сначала открываются магазины в часовом поясе Восточное время, и для них строится полигон, час спустя открываются магазины в часовом поясе Центральное время и т.д.
  • UTCЗначения параметра timeOfDay указываются во Всемирном координированном времени (UTC). Поэтому время отправления или прибытия для всех пунктов обслуживания одинаково, независимо от часового пояса или поясов, в которых они находятся.Если timeOfDay задано 2:00 дня., и выбрана опция UTC, механизм расчета построит области обслуживания для 9:00 утра. Восточного стандартного времени для всех пунктов обслуживания в часовом поясе Восточное время, 8:00 a.m. Центрального стандартного времени для пунктов обслуживания в часовом поясе Центральное время, 7:00 a.m. Горного стандартного времени для пунктов обслуживания в часовом поясе Горное время и т.д. для пунктов обслуживания в разных часовых зонах.
    ПримечаниеПримечание:

    Вышеописанный сценарий предполагает стандартное время. В период действия летнего времени Восточное, Центральное и Горное время увеличится на час (до 10:00, 9:00 и 8:00 a.m., соответственно).

    Одним из примеров, когда предпочтительно использовать опцию UTC, является визуализация охвата службой спасения территории, находящейся в двух часовых поясах. Автомобили спасательных служб загружаются как пункты обслуживания. timeOfDay установлено на UTC. (Чтобы правильно использовать эту опцию, нужно правильно определить текущие время и дату в UTC.) После задания прочих свойств механизм расчета решает задачу анализа. Несмотря на то, что автомобили разделены границей часовых поясов, решение показывает области обслуживания с учетом текущих условий дорожного движения. Этот же процесс можно использовать для любого другого момента времени, а не только для текущего.

Вне зависимости от значения параметра timeZoneUsage все пункты обслуживания должны быть в одном часовом поясе, когда timeOfDay имеет ненулевое значение, а параметром polygonMerge задано создание объединенных или неперекрывающихся полигонов.

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

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

  • TRAVEL_FROMОбласть обслуживания создается в направлении от пункта обслуживания.
  • TRAVEL_TOОбласть обслуживания создается в направлении к пункту обслуживания.
String
trimDistance
(чтение и запись)

Дает возможность получать или задавать расстояние, в пределах которого происходит сокращение полигонов областей обслуживания. Значение свойства включает числовое значение и единицы измерения расстояния, разделенные пробелом; например, чтобы указать расстояние сокращения в 100 метров, введите "100 Meters".

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

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

  • TRIM_POLYSОбрезка полигонов до области в пределах заданного расстояния от границ. Это может быть необходимо для предотвращения охвата областей, не содержащих пространственных объектов. Для выбора этого варианта также служит значение True.
  • NO_TRIM_POLYSНе обрезать полигоны. Для выбора этого варианта также служит значение False.
String
useHierarchy
(чтение и запись)

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

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

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

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

Пример кода

Пример ServiceAreaSolverProperties (окно Python)

Скрипт демонстрирует, как обновить слой сетевого анализа областей обслуживания для использования иерархии и установить в качестве граничных значений 5, 10 и 15 минут. Предполагается, что слой областей обслуживания Store Trade Areas был создан в новом документе карты на основе учебного набора сетевых данных на территорию города Сан-Франциско.

#Get the service area layer object from a layer named "Store Trade Areas" in
#the table of contents
saLayer = arcpy.mapping.Layer("Store Trade Areas")

#Get the solver properties object from the service area layer
solverProps = arcpy.na.GetSolverProperties(saLayer)

#Update the properties for the service area layer using the solver properties
#object
solverProps.defaultBreaks = [5, 10, 15]
solverProps.useHierarchy = "USE_HIERARCHY"

Связанные темы

5/10/2014