ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

ODCostMatrixSolverProperties

  • Сводка
  • Описание
  • Свойства
  • Обзор метода
  • Методы
  • Пример кода

Сводка

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

Описание

Объект ODCostMatrixSolverProperties предоставляет доступ для чтения и записи ко всем свойствам слоя сетевого анализа матрицы "стоимости" достижения цели. Этот объект можно использовать для изменения нужных свойств анализа слоя матрицы "стоимости" достижения цели, а соответствующий слой можно повторно рассчитать для получения необходимых результатов. Новый слой матрицы "стоимости" достижения цели можно создать с помощью инструмента геообработки Создать слой матрицы Источник-Назначение (Make OD Cost Matrix Layer). Получение объекта ODCostMatrixSolverProperties из нового слоя матрицы стоимости OD позволяет повторно использовать существующий слой для последующего анализа, а не создавать новый слой для каждого анализа, что может замедлять работу.

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

Свойства

ВладениеОбъяснениеТип данных
accumulators
(чтение и запись)

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

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

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

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

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

Не стоит изменять свойство attributeParameters на месте; этот метод кодировки не будет работать.

solverProps.attributeParameters[('HeightRestriction', 'RestrictionUsage')] = "PROHIBITED"

Измените свойство attributeParameters используя новый объект словарь.

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

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

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

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

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

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

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

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

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

  • NO_LINES —Между парой пунктов источник-назначение не создается никаких геометрических форм. Это удобно при большом количестве исходных и конечных пунктов, когда необходимо получить только табличные данные (без линий маршрутов).
  • STRAIGHT_LINES —Между каждой парой пунктов источник-назначение создается одна прямая линия.
String
restrictions
(чтение и запись)

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

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

Возвращает имя механизма расчета, на который ссылается слой сетевого анализа, использованный для получения данного объекта свойств механизма расчета. Это свойство всегда возвращает строковое значение OD Cost Matrix Solver (Механизм расчета матрицы Источник-Назначение), если доступ к нему осуществляется из объекта ODCostMatrixSolverProperties.

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

Дает возможность получать или задавать время и дату отправления из исходного пункта. Значение 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, 3, 8,0,0).

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

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

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

  • GEO_LOCAL —Значение параметра timeOfDay относится к часовому поясу, в котором находятся начальные точки.
  • UTC —Значения параметра timeOfDay определяются в формате Всемирного координированного времени (UTC). Используйте эту опцию, если хотите провести анализ для конкретного времени, например текущего, но не знаете, в каком часовом поясе будут находиться начальные точки.

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

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

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

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

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

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

Обзор метода

МетодОбъяснение
applyTravelMode (travel_mode)

Обновляет свойства анализа слоя network analyst на основе объекта режима передвижения. После этого обновленный слой network analyst может быть рассчитан для завершения анализа.

Методы

applyTravelMode (travel_mode)
ПараметрОбъяснениеТип данных
travel_mode

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

Object

При создании слоя network analyst он получит значения по умолчанию для всех своих свойств анализа. Отдельные свойства анализа можно обновлять с помощью объекта свойств механизма расчета, полученного из слоя network analyst. Режим перемещения сохраняет предопределенный набор настроек анализа, который помогает выполнять определенные виды анализа – например, режим передвижения пешком сохраняет настройки анализа, необходимые для выполнения по-временного анализа передвижения пешим ходом.

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

Если при обновлении свойств механизма расчета, например – когда режим передвижения ссылается на свойства, которые не существуют в текущем наборе сетевых данных, или же ссылается на свойства, которые уже не применяются к набору сетевых данных, использовавшемуся для создания слоя network analyst, соответствующего объекту свойств механизма расчета, исключительных ситуаций не возникает. Этот метод будет с успехом работать, но вы получите ошибки при попытке расчёта такого слоя network analyst.

Если параметр travel_mode не привязан к объекту режима передвижения или строке, возникает исключительная ситуация TypeError. Если параметр travel_mode привязан к строке, но строка не может быть внутренне конвертирована в строковое представление объекта режима передвижения, возникает исключительная ситуация ValueError.

Пример кода

Пример 1: ODCostMatrixSolverProperties (окно Python)

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

#Get the OD cost matrix layer object from a layer named "Store Accessibility" in
#the table of contents
odLayer = arcpy.mapping.Layer("Store Accessibility")

#Get the solver properties object from the OD cost matrix layer
solverProps = arcpy.na.GetSolverProperties(odLayer)

#Update the properties for the OD cost matrix layer using the solver properties
#object
solverProps.defaultCutoff = 5
solverProps.defaultTargetDestinationCount = None
Пример 2: ApplyTravelMode (рабочий процесс)

Этот скрипт показывает, как создать матрицу Источник-Назначение на основе режима передвижения Время в пути грузового транспорта.

#Import modules
import os
import arcpy

#Define variables
workspace = "C:/data/SanDiego.gdb"
output_folder = "C:/data/output"
nds = os.path.join(workspace, "Transportation", "Streets_ND")
origins = os.path.join(workspace, "Warehouses")
destinations = os.path.join(workspace, "Stores")
analysis_layer_name = "TravelTimeToStores"

#Set environment variables
arcpy.env.overwriteOutput = True

#Check out the network analyst extension
arcpy.CheckOutExtension("network")

#Create a new closest facility analysis layer
make_layer_result = arcpy.na.MakeODCostMatrixLayer(nds, analysis_layer_name,
                                                      "TravelTime")
analysis_layer = make_layer_result.getOutput(0)

#Add origins and destinations to the analysis layer using default field mappings         
sub_layer_names = arcpy.na.GetNAClassNames(analysis_layer)
origin_layer_name = sub_layer_names["Origins"]
destination_layer_name = sub_layer_names["Destinations"]
arcpy.na.AddLocations(analysis_layer, origin_layer_name, origins, "#", "#")
arcpy.na.AddLocations(analysis_layer, destination_layer_name, destinations, "#", "#")

#Get the Trucking Time travel mode from the network dataset
travel_modes = arcpy.na.GetTravelModes(nds)
trucking_mode = travel_modes["Trucking Time"]

#Apply the travel mode to the analysis layer
solver_properties = arcpy.na.GetSolverProperties(analysis_layer)
solver_properties.applyTravelMode(trucking_mode)

#Solve the analysis layer and save the result as a layer file          
arcpy.na.Solve(analysis_layer)

output_layer = os.path.join(output_folder, analysis_layer_name + ".lyr")
arcpy.management.SaveToLayerFile(analysis_layer, output_layer, "RELATIVE")

arcpy.AddMessage("Completed")

Связанные разделы

  • Анализ матрицы Источник-Назначение

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация