ClosestFacilitySolverProperties (arcpy.na)

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

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

Обсуждение

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

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

Свойства

СвойствоОбъяснениеТип данных
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
defaultCutoff
(чтение и запись)

Дает возможность получать или задавать значение импеданса по умолчанию, при котором механизм расчета прекратит поиск пунктов обслуживания для данного инцидента. Значение None (Нет) указывает, что не следует применять никакого предельного значения.

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

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

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

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

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

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

  • TRUE_LINES_WITH_MEASURESПолученные маршруты будут иметь точную форму лежащих в основе источников сети. Более того, в состав результатов будут входить также измерения маршрута в системе линейных координат. Эти измерения отсчитываются от первой остановки и записывают накапливаемый импеданс для достижения данного положения.
  • TRUE_LINES_WITHOUT_MEASURESПолученные маршруты будут иметь точную форму лежащих в основе источников сети.
  • STRAIGHT_LINESФорма маршрута на выходе представляет собой одну прямую линию, соединяющую инцидент с пунктом обслуживания.
  • NO_LINESДля выходных маршрутов геометрия не создается.
String
restrictions
(чтение и запись)

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

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

Возвращает название механизма расчета, на который ссылается слой Network Analyst, использующийся для получения объекта свойств механизма расчета. Это свойство всегда возвращает строковое значение Closest Facility Solver (Механизм расчета ближайшего пункта обслуживания), если доступ к нему осуществляется из объекта ClosestFacilitySolverProperties.

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

Дает возможность получать или задавать время и дату начала или конца маршрута. Интерпретация этого значения зависит от того, какое значение имеет свойство timeOfDayUsageSTART_TIME (Начальное время) или END_TIME (Конечное время). Значение 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, 1, 8,0,0).

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

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

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

  • END_TIMEМаршруты прибывают в пункты обслуживания или инциденты в момент времени, заданный свойством timeOfDay. Этот вариант удобен, если более важно время прибытия; т. е. если необходимо знать, в какое время следует покинуть точку отправления для того, чтобы прибыть в точку назначения в заданное время.
  • START_TIMEМаршруты отправляются из пунктов обслуживания или инцидентов в момент времени, заданный свойством timeOfDay. Этот вариант удобен для поиска оптимального маршрута с заданным временем отправления.
  • NOT_USEDМаршруты не используют ни начальное, ни конечное время и дату. Этот вариант следует использовать, когда свойство timeOfDay имеет значение None.
String
timeZoneUsage
(чтение и запись)

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

  • GEO_LOCALЗначение параметра timeOfDay относится к часовому поясу, в котором находятся пункты обслуживания или инциденты. Если значением параметра timeOfDayUsage является Start_Time, а значением параметра travelDirection является TRAVEL_FROM, то это будет часовой пояс пунктов обслуживания. Если значением параметра timeOfDayUsage является Start_Time, а значением параметра travelDirection является TRAVEL_TO, то это будет часовой пояс инцидентов. Если значением параметра timeOfDayUsage является End_Time, а значением параметра travelDirection является TRAVEL_FROM, то это будет часовой пояс инцидентов. Если значением параметра timeOfDayUsage является End_Time, а значением параметра travelDirection является TRAVEL_TO, то это будет часовой пояс пунктов обслуживания.
  • UTCЗначения параметра timeOfDay указываются во Всемирном координированном времени (UTC). Используйте эту опцию, если хотите найти ближайшие пункты обслуживания для конкретного момента времени, например текущего, но не знаете, в каком часовом поясе будут находиться пункты обслуживания или инциденты.

Независимо от значения параметра timeZoneUsage, в случае, если ваши пункты обслуживания и инциденты находятся в нескольких часовых поясах, инструмент использует следующие правила:

  • Все инциденты должны быть в одном и том же часовом поясе

    • при указании начального времени и перемещении от места инцидента к пункту обслуживания;
    • при указании конечного времени и перемещении от пункта обслуживания к месту инцидента.

  • Все пункты обслуживания должны быть в одном и том же часовом поясе

    • при указании начального времени и перемещении от пункта обслуживания к месту инцидента;
    • при указании конечного времени и перемещении от места инцидента к пункту обслуживания.

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

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

  • TRAVEL_FROMНаправление движения от пункта обслуживания к инциденту.
  • TRAVEL_TOНаправление движения от инцидента к пункту обслуживания.
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

Пример кода

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

Скрипт, показывающий, как обновить слой сетевого анализа ближайшего пункта обслуживания для поиска трех пунктов без использования предельного значения. Считается, что слой ближайшего пункта обслуживания, названный Closest Hospitals, был создан в новом документе карты на основе учебного набора сетевых данных на территорию города Сан-Франциско.

#Get the closest facility layer object from a layer named "Closest Hospitals" in
#the table of contents
cfLayer = arcpy.mapping.Layer("Closest Hospitals")

#Get the closest facility solver properties object from the closest facility layer
solverProps = arcpy.na.GetSolverProperties(cfLayer)

#Update the properties for the closest facility layer using the closest facility
#solver properties object
solverProps.defaultCutoff = None
solverProps.defaultTargetFacilityCount = 3

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

5/10/2014