applyTravelMode
Краткая информация
Предоставляет доступ к свойствам слоя сетевого анализа областей обслуживания. Функция GetSolverProperties используется для получения объекта ServiceAreaSolverProperties из слоя сетевого анализа областей обслуживания.
Обсуждение
Объект ServiceAreaSolverProperties предоставляет доступ для чтения и записи ко всем свойствам слоя сетевого анализа областей обслуживания. Этот объект можно использовать для изменения нужных свойств анализа слоя ServiceAreaSolverProperties, а соответствующий слой можно повторно рассчитать для получения необходимых результатов. Новый слой областей обслуживания можно создать с помощью инструмента геообработки Создать слой анализа области обслуживания. Получение объекта ServiceAreaSolverProperties из нового слоя областей обслуживания позволяет повторно использовать существующий слой для последующего анализа, а не создавать слой для каждого анализа, что может замедлить процесс работы.
После изменения свойств объекта ServiceAreaSolverProperties, соответствующий слой можно немедленно использовать с другими функциями и инструментами геообработки. Обновлять слой для внесения изменения не требуется.
Синтаксис
applyTravelMode()
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
accumulators (Чтение / Запись) |
Дает возможность получать или задавать список сетевых атрибутов стоимости, сумма которых подсчитывается в ходе данного анализа. Пустой список, |
String |
|
attributeParameters (Чтение / Запись) |
Дает возможность получать или задавать параметризированные атрибуты для использования их в анализе. Это свойство возвращает словарь Python. Ключом в словаре является кортеж двух значений – имени атрибута и имени параметра. Значение каждого элемента в словаре является значением параметра. Параметризованные сетевые атрибуты используются для моделирования некоторого динамического аспекта значения атрибута. Например, туннель с ограничением высоты 12 футов может быть смоделирован с использованием параметра. В этом случае высоту транспорта в футах нужно указать как значение параметра. Если транспортное средство выше 12 футов (3,7 м), то это ограничение будет оценено как Попытка изменить непосредственно свойство Не стоит изменять свойство
Измените свойство
Если слой сетевого анализа не имеет параметризованных атрибутов, это свойство вернет значение |
Dictionary |
|
defaultBreaks (Чтение / Запись) |
Дает возможность получать или задавать значения импеданса, определяющие экстент области обслуживания для расчета. Для создания концентрических областей можно использовать несколько полигональных границ. Например, чтобы определить области обслуживания для одного пункта обслуживания со временами 2, 3 и 5 минут, следует указать значение [2, 3, 5]. |
Double |
|
excludeSources (Чтение / Запись) |
Дает возможность получать или задавать список сетевых источников, исключаемых в процессе создания полигонов. Геометрия используемых элементов от исключенных источников не включается в полигоны. Пустой список ([]) означает, что никакие сетевые источники не будут исключены. |
String |
|
ignoreInvalidLocations (Чтение / Запись) |
Указывает, будут ли игнорироваться неверные входные местоположения. Обычно местоположения недействительны, если они не могут быть обнаружены в сети. Когда недопустимые местоположения игнорируются, решатель пропустит их и попытается выполнить анализ, используя оставшиеся местоположения.
|
String |
|
impedance (Чтение / Запись) |
Дает возможность получать или задавать сетевой атрибут стоимости, используемый в качестве импеданса. Этот атрибут стоимости суммируется при определении области обслуживания. |
String |
|
includeNetworkSourceFields (Чтение / Запись) |
Определяет, будут ли к линиям областей обслуживания добавлены дополнительные поля из исходных пространственных объектов, используемых в анализе. Список возможных значений следующий:
|
String |
|
lineOverlap (Чтение / Запись) |
Определяет, будут ли при расчете линий областей обслуживания создаваться перекрывающиеся линии. Список возможных значений следующий:
|
String |
|
lineType (Чтение / Запись) |
Дает возможность получать или задавать тип линий областей обслуживания, создаваемых в ходе анализа. Список возможных значений следующий:
|
String |
|
polygonMerge (Чтение / Запись) |
Определяет, необходимо ли объединять полигоны, имеющие общие граничные значения. Этот параметр применяется только при создании полигонов для нескольких пунктов обслуживания. Список возможных значений следующий:
|
String |
|
polygonNesting (Чтение / Запись) |
Определяет вид концентрических полигонов областей обслуживания – сплошные диски или кольца. Этот параметр применяется только при задании нескольких граничных значений для пунктов обслуживания. Список возможных значений следующий:
|
String |
|
polygonType (Чтение / Запись) |
Дает возможность получать или задавать тип создаваемых полигонов. Список возможных значений следующий:
|
String |
|
restrictions (Чтение / Запись) |
Дает возможность получать или задавать список атрибутов ограничения, применяемых в ходе данного анализа. Пустой список, |
String |
|
solverName (Только для чтения) |
Возвращает имя механизма расчета, на который ссылается слой сетевого анализа, использованный для получения данного объекта свойств механизма расчета. Это свойство всегда возвращает строковое значение Механизма расчета области обслуживания, если доступ к нему осуществляется из объекта |
String |
|
splitLinesAtBreaks (Чтение / Запись) |
Определяет, разбивать ли линии областей обслуживания при пересечении граничного значения. Список возможных значений следующий:
|
String |
|
timeOfDay (Чтение / Запись) |
Дает возможность получать или задавать время отправления или прибытия в пункты обслуживания. Интерпретация этого значения зависит от того, какое направление движения задано – от пункта обслуживания или к нему. Оно представляет собой время отправления, когда свойство Вместо конкретной даты может быть задан день недели, при помощи следующих условных дат:
К примеру, если отправление из пункта обслуживания должно происходить в 8:00 утра в пятницу, следует указать значение datetime.datetime(1900, 1, 5, 8,0,0). Параметр |
DateTime |
|
timeZoneUsage (Чтение / Запись) |
Указывает часовой пояс или пояса параметра
Вне зависимости от значения настройки |
String |
|
travelDirection (Чтение / Запись) |
Определяет направление, в котором суммируется импеданс в ходе анализа области обслуживания. Список возможных значений следующий:
|
String |
|
travelMode (Только для чтения) |
Доступ к режиму движения устанавливается для слоя сетевого анализа как объект |
Object |
|
trimDistance (Чтение / Запись) |
Дает возможность получать или задавать расстояние, в пределах которого происходит сокращение полигонов областей обслуживания. Значение свойства включает числовое значение и единицы измерения расстояния, разделенные пробелом; например, чтобы указать расстояние сокращения в 100 метров, введите "100 Meters". |
String |
|
trimPolygons (Чтение / Запись) |
Определяет, следует ли сокращать полигоны областей обслуживания. Список возможных значений следующий:
|
String |
|
useHierarchy (Чтение / Запись) |
Отвечает за использование атрибута иерархии при проведении анализа. Список возможных значений следующий:
|
String |
|
uTurns (Чтение / Запись) |
Предоставляет возможность получать или устанавливать политику, которая указывает, как решатель управляет разворотами на перекрестках, которые могут возникать в ходе прохода по сети между остановками. Список возможных значений следующий:
|
String |
Методы
applyTravelMode(travel_mode)
Обновляет свойства анализа слоя network analyst на основе объекта режима передвижения. После этого обновленный слой network analyst может быть рассчитан для завершения анализа.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
travel_mode |
Переменная, ссылающаяся на объект режима передвижения, который был получен на основе слоя сетевых данных. Список объектов режима передвижения можно получить, вызвав функцию |
Object |
Пример кода
Скрипт показывает, как обновить свойства механизма расчета Область обслуживания через полный рабочий процесс. Основан на учебном наборе данных по региону Сан-Франциско.
# Name: ServiceAreaSolverProperties_Workflow.py
# Description: Finds the regions fire stations can reach within four minutes
# as the initial assessment of the coverage of the region. We will
# then change the break values to 1, 4, and 10 minutes to see a
# better picture of coverage
# Requirements: Network Analyst extension
# Import system modules
import arcpy
from arcpy import env
import os
import datetime
try:
# Set environment settings
output_dir = r"C:\Data"
# The NA layer's data will be saved to the workspace specified here
env.workspace = os.path.join(output_dir, "Output.gdb")
env.overwriteOutput = True
# Set local variables
input_gdb = "C:/Data/SanFrancisco.gdb"
network = os.path.join(input_gdb, "Transportation", "Streets_ND")
layer_name = "FireHouseRegions"
travel_mode = "Driving Time"
direction = "FROM_FACILITIES"
cutoffs = 4
in_facilities = os.path.join(input_gdb, "Analysis/FireStations")
four_minute_polygons = os.path.join(output_dir, "Output.gdb", "four_minute_polygons")
ten_minute_polygons = os.path.join(output_dir, "Output.gdb", "ten_minute_polygons")
# Create a new Service Area layer. Fire stations are concerned with the
# drive times away from the fire stations to the incidents.
result_object = arcpy.na.MakeServiceAreaAnalysisLayer(network,
layer_name, travel_mode,
direction, cutoffs)
# Get the layer object form the result object. The service area layer
# can now be referenced using the layer object.
layer_object = result_object.getOutput(0)
# Get the names of all the sublayers within the service area layer.
sub_layer_names = arcpy.na.GetNAClassNames(layer_object)
# Store the layer names that we will use later
facilities_layer_name = sub_layer_names["Facilities"]
polygons_layer_name = sub_layer_names["SAPolygons"]
# Load the fire station locations as facilities.
arcpy.na.AddLocations(layer_object, facilities_layer_name, in_facilities,
"", "")
# Solve the service area layer
arcpy.na.Solve(layer_object)
# Save the resulting polygon sublayer
arcpy.management.CopyFeatures(polygons_layer_name, four_minute_polygons)
# Get the solver properties object from the service area layer
solverProps = arcpy.na.GetSolverProperties(layer_object)
# Update the breaks to 1, 4, and 10 minutes
solverProps.defaultBreaks = [1, 4, 10]
# Solve the service area layer
arcpy.na.Solve(layer_object)
# Save the resulting polygon sublayer
arcpy.management.CopyFeatures(polygons_layer_name, ten_minute_polygons)
except Exception as e:
# If an error occurred, print line number and error message
import traceback
import sys
tb = sys.exc_info()[2]
print("An error occurred on line %i" % tb.tb_lineno)
print(str(e))
В этом скрипте показано, как использовать режим передвижения TruckingTime для существующего слоя.
#Get the service area layer object from a layer named "Service Area" in the map
doc = arcpy.mp.ArcGISProject('current')
map_obj = doc.listMaps()[0]
sa_layer = map_obj.listLayers('Service Area')[0]
#Get the Trucking Time travel mode from the network dataset
desc = arcpy.Describe(sa_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(sa_layer)
solver_properties.applyTravelMode(trucking_mode)