Сводка
Инструмент Рассчитать Размещение-Распределение выбирает одно или несколько наилучших местоположений из набора входных местоположений, распределяя точки спроса по входным пунктам обслуживания так, чтобы распределить наибольшее число точек спроса и минимизировать общий путь.
Входными данными для этого инструмента являются пункты обслуживания, обеспечивающие товары или сервисы, и точки спроса, потребляющие их. Целью является поиск пунктов обслуживания, которые наиболее эффективно обеспечивают точки спроса. Инструмент решает эту проблему анализом различных способов назначения точек спроса тем или иным различным пунктам обслуживания. Решением является сценарий, который распределяет большинство точек спроса по пунктам обслуживания и минимизирует общую длину маршрута. В выходных данных содержатся выбранные пункты обслуживания, точки спроса, связанные с ними, и линии, соединяющие точки и пункты обслуживания.
Инструмент размещения-распределения можно настроить для решения специфических задач. Примеры:
Розничный магазин хочет найти возможные места для новых магазинов, чтобы захватить не менее 10 процентов розничного рынка в этой области.
Департамент пожарной охраны хочет определить, где следует разместить пожарные части, чтобы приезжать на место на четыре минуты для 90 процентов вызовов.
Департамент полиции хочет заранее разместить своих сотрудников согласно данным о правонарушениях за минувшую ночь.
После урагана, агентство по чрезвычайным ситуациям хочет определить наилучшие места для установки пунктов помощи пострадавшим с ограничением по числу пациентов в соответствии с количеством пострадавших.
Внимание:
Актуальную информацию об инструменте см. в последней версии раздела веб-справки. ArcGIS Online регулярно выполняет функциональные обновления в сервисах, например, установленная на вашем компьютере справка может устареть.
Более подробно о выходных данных инструмента Рассчитать Размещение-Распределение
Иллюстрация
Использование
Инструменты в наборе инструментов Готовые к использованию это ArcGIS Onlineсервисы геообработки, которые ArcGIS Online используют данные и возможности анализа .
Инструмент выбирает наилучшие пункты обслуживания на основе времени пути, если значение параметра Единицы измерения дается в единицах времени. Если единицами измерения является расстояние, инструмент работает на основе расстояния.
Необходимо указать как минимум один пункт обслуживания и одну точку спроса. Можно загрузить до 1000 пунктов обслуживания и 10 000 точек спроса.
Вы можете добавить до 250 точечных барьеров. Вы можете добавить любое количество линейных или полигональных барьеров, но линейные барьеры не могут пересекать более 500 объектов улиц, а полигональные – более 2000 объектов улиц.
Вы можете использовать иерархию дорог, что позволит получить результаты быстрее, но полученное решение может быть менее оптимальным.
Независимо от того, включен ли параметр Использовать иерархию (значение True), иерархия всегда используется, если Евклидово расстояние между любой парой объектов, представляющих точки спроса и пункты обслуживания, составляет более 50 миль (80,46 км).
Евклидово расстояние между любой парой объектов, представляющих точки спроса или пункты обслуживания, не может быть больше, чем 27 миль (43,45 километров), если для параметра Travel Mode задано значение Walking, или когда было задано значение Custom, и используется ограничение Walking.
Если расстояние между входной точкой и ближайшей проезжей улицей больше 12.42 миль (20 км), точка исключается из анализа.
При использовании этого сервиса расходуются кредиты. Подробнее см. в разделе Обзор сервисных кредитов.
Синтаксис
SolveLocationAllocation(Facilities, Demand_Points, Measurement_Units, {Analysis_Region}, {Problem_Type}, {Number_of_Facilities_to_Find}, {Default_Measurement_Cutoff}, {Default_Capacity}, {Target_Market_Share}, {Measurement_Transformation_Model}, {Measurement_Transformation_Factor}, {Travel_Direction}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_at_Junctions}, Point_Barriers, Line_Barriers, Polygon_Barriers, {Use_Hierarchy}, Restrictions, {Attribute_Parameter_Values}, {Allocation_Line_Shape}, {Travel_Mode}, {Impedance}, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Time_Impedance}, {Distance_Impedance}, {Output_Format})
Parameter | Объяснение | Тип данных |
Facilities | Задайте один или несколько пунктов обслуживания, из которых механизм расчета будет выбирать при выполнении анализа. Механизм расчета выбирает лучший потенциальный объект для распределения спроса наиболее эффективным способом согласно типу задачи и заданным критериям. В конкурентном анализе выполняется поиск наилучшего местоположения в условиях конкуренции, при этом указываются конкурирующие пункты обслуживания. При указании пунктов обслуживания вы можете задать свойства каждого из них, такие как имя или время обслуживания, с помощью атрибутов: Name Имя пункта обслуживания. Имя включено в имя выходных линий распределения, если пункт обслуживания является частью решения. FacilityType Задает, является ли пункт обслуживания кандидатом, обязательным или конкурирующим пунктом обслуживания. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Weight Относительный вес пункта обслуживания, используемый для ранжирования по привлекательности, предпочтительности или склонности при сравнении пунктов. Например, значение 2.0 указывает на то, что предпочтения заказчика совершать покупки в этом магазине, а не в другом соотносятся как 2:1. Факторы, потенциально влияющие на вес, включают площадь, близость расположения и возраст здания. Отличные от единицы значения веса наследуются только такими типами задач, как максимизация доли рынке и доля на целевом рынке; они игнорируются в других типах задач. Cutoff Значение импеданса, при котором следует прекратить поиск точек спроса для данного пункта обслуживания. Точка спроса не может быть выделена для пункта обслуживания, если превышено указанное здесь значение. Этот атрибут позволяет задавать различные предельные значения для каждой точки спроса. Например, может оказаться, что люди в сельской местности готовы преодолевать расстояние до 10 миль, чтобы попасть к объекту, а городские жители согласны преодолевать не более 2 миль. Такое поведение можно моделировать, задавая значение Cutoff для всех точек спроса в сельской местности равным 10, а значения Cutoff для точек спроса в городе равным 2. Capacity Поле Capacity поле задается только для типа задач Максимизировать покрытие емкостью; другие типы задач игнорируют данное поле. Свойство Ёмкость определяет, насколько пункт обслуживания может поддерживать взвешенный спрос. Излишние точки спроса не будут присвоены пункту обслуживания, даже если точки спроса находятся в пределах размеров пункта обслуживания по умолчанию. Любое значение, присвоенное полю Capacity, перезаписывает параметр Емкость по умолчанию (Default_Capacity в Python) для данного пункта обслуживания. CurbApproach Указывает направление, в котором транспортное средство может подъехать или отъехать от пункта обслуживания. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Свойство CurbApproach было разработано для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда пункт обслуживания располагается с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. От национального стандарта дорожного движения будет зависеть ваше решение, с какой из двух сторон подъехать к пункту обслуживания, т.е. должен ли он находиться с правой или левой стороны транспортного средства. Например, если необходимо подъехать к пункту обслуживания так, чтобы она не была отделена от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании. Bearing Направление, в котором движется точка. Единицами измерения являются градусы, отсчитываются по часовой стрелке от истинного севера. Данное поле используется совместно с полем BearingTol. Данные направления обычно отправляются автоматически с мобильного устройства, оснащенного GPS-приемником. Попробуйте включить данные о направлении, если вы загружаете движущееся входное местоположение например, пешехода или транспортное средство. Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка. Более подробно о направлении и допуске направления BearingTol Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра. Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое положение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра. Более подробно о направлении и допуске направления NavLatency Данное поле используется при расчете только, если для Bearing и BearingTol также введены значения; при этом ввод значения NavLatency является необязательным, даже если для Bearing и BearingTol заданы значения. NavLatency показывает, сколько, предположительно, проходит времени между отправкой данных GPS от движущегося транспортного средства на сервер и моментом, когда обработанный маршрут поступает на навигационное устройство транспортного средства. Единицы измерения NavLatency используются те же, что и единицы, которые задаются свойством timeUnits анализируемого объекта. | Feature Set |
Demand_Points | Укажите одну или несколько точек спроса. Инструмент выбирает наилучшие пункты обслуживания, основываясь в значительной степени на том, как они обслуживают указанные здесь точки спроса. Сточка спроса, как правило, представляет собой местоположение, отражающее совокупность людей или предметов, создающих спрос на услуги пункта обслуживания. Точка спроса может быть центроидом, пропорциональным числу жителей или уровню потребления зоны почтового индекса. Точки спроса также могут представлять коммерческих клиентов. Если вы снабжаете бизнес с высоким оборотом товаров, их вес будет больше, чем при низком обороте. При указании точек спроса вы можете задать свойства каждой из них, такие как имя или время обслуживания, с помощью атрибутов: Name Имя точки спроса. Имя включается в имя выходной линии или линий распределения, если точка спроса является частью решения. GroupName Имя группы, к которой относится точка спроса. Это поле игнорируется для типов задач Максимизировать покрытие емкостью, Доля на целевом рынке и Максимизировать долю на рынке. Если несколько точек спроса носят имя одной группы, механизм расчета назначает всех участников группы одному пункту обслуживания. (Если существуют ограничения, например, предельное расстояние, это предотвращает доступ точек спроса к объектам и приводит к тому, что объекту не назначаются точки спроса.) Weight Относительный вес точки спроса. Значение 2,0 означает вдвое большую важность точки, чем значение 1,0. Если точки спроса представляют домохозяйства, вес, например, может указывать на количество людей в каждом домашнем хозяйстве. Cutoff Значение импеданса, при котором следует прекратить поиск точек спроса для данного пункта обслуживания. Точка спроса не может быть выделена для пункта обслуживания, если превышено указанное здесь значение. Этот атрибут позволяет задавать предельное значение для каждой точки спроса. Например, может оказаться, что люди в сельской местности готовы преодолевать расстояние до 10 миль, чтобы попасть к объекту, а городские жители согласны преодолевать не более 2 миль. Такое поведение можно моделировать, задавая значение Cutoff для всех точек спроса в сельской местности равным 10, а значения Cutoff для точек спроса в городе равным 2. Единицы измерения для этого атрибута задаются параметром Единицы измерения. Значение этого атрибута перезаписывает настройки анализа по умолчанию, используя параметр Предельные значения по умолчанию. Значение по умолчанию Null, которое приводит к использованию значения по умолчанию, заданного параметром Предельные значения по умолчанию для всех точек спроса. ImpedanceTransformation Значение этого атрибута перезаписывает настройки анализа по умолчанию, используя параметр Модель трансформации измерения. ImpedanceParameter Значение этого атрибута перезаписывает настройки анализа по умолчанию, используя параметр Коэффициент трансформации измерения. CurbApproach Задает направление, в котором транспортное средство может подъехать или отъехать от точки спроса. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Атрибут CurbApproach был разработан для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда точка спроса находится с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. С учётом национальных стандартов дорожного движения, вы можете выбрать, с какой из двух сторон следует подъезжать к точке спроса, т.е. где будет находится точка заказа – справа или слева от транспортного средства. Например, если необходимо подъехать к станции так, чтобы она не была отделена от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании. Bearing Направление, в котором движется точка. Единицами измерения являются градусы, отсчитываются по часовой стрелке от истинного севера. Данное поле используется совместно с полем BearingTol. Данные направления обычно отправляются автоматически с мобильного устройства, оснащенного GPS-приемником. Попробуйте включить данные о направлении, если вы загружаете движущееся входное местоположение например, пешехода или транспортное средство. Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка. Более подробно о направлении и допуске направления BearingTol Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра. Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое положение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра. Более подробно о направлении и допуске направления NavLatency Данное поле используется при расчете только, если для Bearing и BearingTol также введены значения; при этом ввод значения NavLatency является необязательным, даже если для Bearing и BearingTol заданы значения. NavLatency показывает, сколько, предположительно, проходит времени между отправкой данных GPS от движущегося транспортного средства на сервер и моментом, когда обработанный маршрут поступает на навигационное устройство транспортного средства. Единицы измерения NavLatency используются те же, что и единицы, которые задаются свойством timeUnits анализируемого объекта. | Feature Set |
Measurement_Units | Укажите единицы, которые следует использовать для измерения продолжительности или протяженности пути между точками спроса и пунктами обслуживания. Инструмент находит наилучшие пункты обслуживания, которые могут быть достигнуты при наибольшей сумме взвешенного спроса и при наименьшей протяженности поездок. Линии выходного распределения сообщают расстояние пути или время в пути в разных единицах, включая единицы измерения, которые вы указываете для этого параметра. Можно выбрать следующие опции:
| String |
Analysis_Region (Дополнительный) | Регион, в котором выполняется анализ. Если значение этого параметра не указано, инструмент автоматически вычислит имя региона на основе местоположения входных точек. Задание имени региона необходимо только в случае, если для ваших входных данных не подходит автоматическое определение названия региона.. Чтобы задать регион используйте одно из следующих значений:
Прежние версии:Следующие названия регионов больше не поддерживаются и будут удалены в следующих версиях. При задании вами одного из устаревших названий инструмент автоматически присвоит вашему региону поддерживаемое название.
| String |
Problem_Type (Дополнительный) | Определяет цель анализа Размещение-Распределение. Целью по умолчанию является сведение к минимуму импеданса.
| String |
Number_of_Facilities_to_Find (Дополнительный) | Число пунктов обслуживания для поиска. Значение по умолчанию равно 1. Пункты обслуживания со значением поля FacilityType равным 1 (требуется) всегда выбираются первыми. Любые избыточные объекты выбираются из объектов-кандидатов со значением 2 в поле FacilityType. Все пункты обслуживания, которые в поле FacilityType имеют значение 3 (выбранный) перед выполнением решения, рассматриваются как кандидаты во время решения. Если число пунктов обслуживания для поиска меньше числа требуемых пунктов обслуживания, то отмечается ошибка. Число пунктов обслуживания для поиска отключено для типов задач Минимизировать пункты обслуживания и Доля на целевом рынке, так как механизм расчета сам определяет минимальное количество пунктов обслуживания, требуемых для достижения целей задач. | Long |
Default_Measurement_Cutoff (Дополнительный) | Максимальное время в пути или расстояние, разрешенное между точкой спроса и пунктом обслуживания, к которому она распределяется. Если точка спроса располагается за пределами зон импеданса пункта обслуживания, то она не может быть распределена данному пункту обслуживания. Значение по умолчанию является пустым, что означает, что срез не применяется. Единицами измерения значений данного параметра являются те же единицы, что указываются в параметре Единицы измерения. Время в пути или предельное расстояние измеряются по кратчайшему пути по дорогам. Этот параметр можно использовать для моделирования максимального расстояния, которые люди готовы преодолеть, чтобы посетить ваши магазины, или максимального времени, в течение которого пожарная часть должна прибыть на вызов. Обратите внимание, что Точки спроса содержат поле Cutoff, которое, если оно установлено соответствующим образом, переопределяет параметр Отсекающее значение измерения по умолчанию. Может оказаться, что люди в сельской местности готовы преодолевать расстояние в 10 миль, чтобы попасть к объекту, а городские жители согласны преодолевать не более 2 миль. Полагая, что Единицы измерения заданы в милях, вы можете моделировать данное поведение установкой отсекающего значения измерения по умолчанию равным 10 и значения поля Cutoff для точек спроса в городских территориях равным 2. | Double |
Default_Capacity (Дополнительный) | Этот параметр специфичен для типа задачи Максимизировать покрытие емкостью. Применяется емкость, назначенная всем пунктам обслуживания в анализе по умолчанию. Вы можете изменить значение емкости по умолчанию для пункта обслуживания, указав значение в поле Capacity для пункта обслуживания. Значение по умолчанию равно 1. | Double |
Target_Market_Share (Дополнительный) | Данный параметр специфичен для типа задач Доля на целевом рынке. Это процент от общего веса спроса, который хотите выбрать и захватить требуемые пункты обслуживания. Механизм решения определяет минимальное число пунктов обслуживания, необходимых для захвата указанной целевой доли рынка. Значение по умолчанию – 10 процента. | Double |
Measurement_Transformation_Model (Дополнительный) | Этот параметр задает уравнение для преобразования сетевой стоимости между пунктами обслуживания и точками спроса. Этот параметр вместе со свойством Параметр импеданса задает, насколько сильно сетевой импеданс между объектами и точками спроса влияет на выбор пунктов обслуживания механизмом расчета. В следующем списке представлены опции трансформирования; d обозначает точку спроса, f – пункт обслуживания. Импеданс рассматривается как кратчайшее расстояние пути или времени между двумя местоположениями. Таким образом, импедансdf – это кратчайший путь (по времени или расстоянию) между точкой спроса d и пунктом обслуживания f, а стоимостьdf – это трансформированные время и расстояние пути между пунктом обслуживания и точкой спроса. Лямбда (λ) обозначает параметр импеданса. Параметр Единицы измерения определяют будет ли анализироваться время пути или расстояние.
Значение, заданное для этого параметра, может быть переопределено на уровне точки спроса, используя поле ImpedanceTransformation входных точек спроса. | String |
Measurement_Transformation_Factor (Дополнительный) | Предоставляет значение параметра для уравнения, которое задается параметром Модель преобразования измерений. Если преобразование импеданса линейное, значение параметра игнорируется. Для преобразований POWER и EXPONENTIAL значение не должно быть равно нулю. Значение по умолчанию равно 1. Значение, заданное для этого параметра, может быть переопределено на уровне точки спроса, используя поле ImpedanceParameter входных точек спроса. | Double |
Travel_Direction (Дополнительный) | Определяет, будут ли измеряться время в пути или расстояния от пунктов обслуживания до точек спроса или от точек спроса до пунктов обслуживания.
Время и расстояние пути может меняться в зависимости от направления движения. Если движение происходит из точки A в точку B, то вы можете столкнуться с меньшим трафиком или иметь более короткий путь, из-за улиц с односторонним движением и ограничений поворотов, чем если бы вы ехали в противоположном направлении. Например, перемещение из точки А в точку Б может занять всего 10 минут, но перемещение в обратном направлении может занять 15 минут. Эти различные измерения могут повлиять на то, могут ли точки спроса быть отнесены к определенным пунктам обслуживания из-за отсекающих порогов, в типах задач, где спрос распределяется, а также повлиять на то, насколько охвачен спрос. Пожарные части, как правило, измеряют удаленность от пунктов обслуживания до точек спроса, поскольку их интересует, как быстро они смогут доехать от пожарной части (пункт обслуживания) к месту вызова (точка спроса). Для руководства магазина розничной торговли важнее то, насколько быстро покупатели (точки спроса) смогут доехать до магазина (пункты обслуживания), поэтому магазины, обычно, измеряют время и расстояние от точек спроса до пунктов обслуживания. Направление движения также определяет значение указанного времени начала. Более подробно о параметрах см. раздел Время суток. | String |
Time_of_Day (Дополнительный) | Время, с которого начинается движение. Этот параметр игнорируется, если Единицы измерения не основаны на времени. Значение по умолчанию – no time or date (без времени и даты). Когда Время дня не задано, механизм расчета использует общие скорости-обычно те, которые установлены в качестве ограничений. В действительности трафик постоянно меняется, и по мере его изменений, время в пути между пунктами обслуживания и точками спроса также колеблется. Поэтому, указание разного времени и значения даты для нескольких анализов может повлиять на то, как будет распределён спрос между пунктами обслуживания и какие пункты обслуживания будут выбраны в результате. Время суток всегда указывает на время начала. Тем не менее, движение может начаться от пунктов обслуживания или от точек спроса; это зависит от того, что вы выбираете для параметра Направление движения. Параметр Часовой пояс для времени суток определяет, как будут указываться время и дата, в UTC или в часовом поясе, в котором находятся пункт обслуживания или точка спроса. | Date |
Time_Zone_for_Time_of_Day (Дополнительный) | Указывает часовой пояс параметра Время суток. Значение по умолчанию – географически локальное.
Независимо от значения параметра Часовой пояс для времени суток, если ваши пункты обслуживания и точки спроса находятся в нескольких часовых поясах, инструмент будет использовать следующие правила:
| String |
UTurn_at_Junctions (Дополнительный) | Определяет поведение при развороте на перекрестках. При разрешении разворотов неявно предполагается, что механизм расчета позволяет поворот на соединении и продолжение движения по той же улице в обратную сторону. Учитывая, что соединения представляют собой пересечения улиц и тупики, различные транспортные средства могут разворачиваться на некоторых соединениях, но не на всех – это зависит от того, является ли соединение перекрестком или тупиком. Чтобы учесть это, поведение при развороте неявно определяется числом ребер, которые соединяются с соединением, т.е. валентностью соединения. Ниже приведены допустимые значения для данного параметра; каждое из них сопровождается описанием значения в терминах валентности соединения.
Этот параметр игнорируется, если только для Режима передвижения не выбрано Пользовательский. | String |
Point_Barriers | Используйте этот параметр для указания одной или нескольких точек, действующих в качестве временных ограничений или представляющих дополнительное время или расстояние, которые могут потребоваться для передвижения по улицам. Например, точечный барьер может быть использован для обозначения упавшего дерева или для ввода времени ожидания на железнодорожном переезде. Инструмент может накладывать ограничение до 250 точек, добавленных в качестве барьеров. При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов: Name Имя барьера. BarrierType Указывает, ограничивает ли точечный барьер перемещение полностью или добавляет время или расстояние при его пересечении. Значение этого атрибута указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Additional_Time Время поездки, которое добавляется при прохождении барьера. Это поле действительно только для барьеров с дополнительной стоимостью, и только если режим передвижения, применяемый для анализа использует атрибут импеданса на основе времени. Значение этого поля должно быть больше или равно нулю, а его единицы измерения соответствуют заданным в параметре Единицы измерения. Additional_Distance Расстояние, которое добавляется при прохождении барьера. Это поле действительно только для барьеров с дополнительной стоимостью, и только если режим передвижения, применяемый для анализа использует атрибут импеданса на основе расстояния. Значение этого поля должно быть больше или равно нулю, а его единицы измерения соответствуют заданным в параметре Единицы измерения. Additional_Cost Стоимость поездки, которая добавляется при прохождении барьера. Это поле действительно только для барьеров с дополнительной стоимостью, и только если режим передвижения, применяемый для анализа использует атрибут импеданса ни на основе времени, ни на основе расстояния. FullEdge Указывает, как ограничительные точечные барьеры применяются к элементам ребер во время анализа. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
CurbApproach Указывает направление движения, на которое влияет барьер. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Так как соединения являются точками и не имеют сторон, барьеры на соединениях влияют на все транспортные средства независимо от стороны подъезда. Свойство CurbApproach было разработано для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда пункт обслуживания располагается с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. От национального стандарта дорожного движения будет зависеть ваше решение, с какой из двух сторон подъехать к пункту обслуживания, т.е. должен ли он находиться с правой или левой стороны транспортного средства. Например, если необходимо подъехать к пункту обслуживания так, чтобы он не был отделен от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании. Bearing Направление, в котором движется точка. Единицами измерения являются градусы, отсчитываются по часовой стрелке от истинного севера. Данное поле используется совместно с полем BearingTol. Данные направления обычно отправляются автоматически с мобильного устройства, оснащенного GPS-приемником. Попробуйте включить данные о направлении, если вы загружаете движущееся входное местоположение например, пешехода или транспортное средство. Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка. Более подробно о направлении и допуске направления BearingTol Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра. Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое положение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра. Более подробно о направлении и допуске направления NavLatency Данное поле используется при расчете только, если для Bearing и BearingTol также введены значения; при этом ввод значения NavLatency является необязательным, даже если для Bearing и BearingTol заданы значения. NavLatency показывает, сколько, предположительно, проходит времени между отправкой данных GPS от движущегося транспортного средства на сервер и моментом, когда обработанный маршрут поступает на навигационное устройство транспортного средства. Единицы измерения NavLatency используются те же, что и единицы, которые задаются свойством timeUnits анализируемого объекта. | Feature Set |
Line_Barriers | Используйте этот параметр, чтобы указать одну или несколько линий, которые запрещают передвижение там, где они пересекают улицы. Например, при помощи линейного барьера можно смоделировать маршрут парада или марша протеста, которые препятствуют движению по нескольким участкам улиц. Линейный барьер может также быстро запретить пересечение нескольких дорог, отделяя, таким образом, возможный маршрут от нежелательных участков уличной сети. Инструмент накладывает ограничение на количество улиц, которое вы можете ограничить с помощью параметра Линейные барьеры. Хотя лимита на число линий, которые можно использовать как барьеры, нет, общее число улиц, пересекаемых всеми линиями, не должно превышать 500. При указании линейных барьеров вы можете задать свойства имени и типа барьера для каждого из них с помощью атрибутов: Name Имя барьера. | Feature Set |
Polygon_Barriers | Используйте этот параметр, чтобы указать полигоны, которые либо полностью запрещают передвижение, либо пропорционально масштабируют время или расстояние, необходимые для передвижения по улицам, пересекаемым полигоном. Сервис накладывает ограничение на количество улиц, которые вы можете ограничить с помощью параметра Полигональные барьеры. Хотя лимита на число линий, которые можно использовать как барьеры, нет, общее число улиц, пересекаемых всеми линиями, не должно превышать 2000. При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов: Name Имя барьера. BarrierType Указывает, ограничивает ли прохождение через барьер перемещение полностью или масштабирует стоимость перемещения (например время или расстояние). Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
ScaledTimeFactor Это коэффициент, на который умножается время поездки по улицам, пересекающимся с барьером. Значение поля должно быть больше нуля. Это поле применимо только для барьеров масштабируемой стоимости и только в том случае, если режим передвижения, используемый для анализа, использует атрибут импеданса, основанный на времени. ScaledDistanceFactor Это коэффициент, на который умножается длина пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля. Это поле применимо только для барьеров масштабируемой стоимости и только в том случае, если режим передвижения, используемый для анализа, использует атрибут импеданса, основанный на расстоянии. ScaledCostFactor Это коэффициент, на который умножается стоимость пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля. Это поле применимо только для барьеров масштабируемой стоимости и только в том случае, если режим передвижения, используемый для анализа, использует атрибут импеданса, основанный ни на времени, ни на расстоянии. | Feature Set |
Use_Hierarchy (Дополнительный) | Указывает, должна ли использоваться иерархия при нахождении наикратчайшего пути между пунктами обслуживания и точками спроса.
Инструмент автоматически начинает использовать иерархию, если расстояние по прямой между пунктами обслуживания и точками спроса превышает 50 миль, даже если в этом параметре указано иное. | Boolean |
Restrictions | Указывает, какие ограничения должны учитываться инструментом при нахождении наилучшего маршрута между пунктами обслуживания и точками спроса. Ограничение представляет собой предпочтение или требование во время поездки. В большинстве случаев ограничения запрещают использование тех или иных дорог. Например, использование ограничения Избегать платных дорог приведет к тому, что платные дороги будут использоваться, только если это абсолютно необходимо для подъезда к инциденту или пункту обслуживания. Ограничение по высоте позволяет прокладывать маршрут в обход всех объектов с пролетами, меньшими, чем высота транспортного средства. Если транспортное средство перевозит коррозионные вещества, применение ограничения Any Hazmat Prohibited (Вредные вещества запрещены) предотвратит перевозку таких материалов по тем дорогам, по которым это запрещено. Примечание:Использование некоторых ограничений требует ввода дополнительных значений. Это значение должно быть связано с именем ограничения и определенным параметром, предназначенным для его работы. Вы можете идентифицировать такие ограничения по их названиям, отображающимся под столбцом AttributeName в параметре Attribute Parameter Values. Поле ParameterValue следует использовать в параметре Attribute Parameter Values для правильного использования ограничения при поиске доступных дорог. Примечание:Некоторые ограничения поддерживаются только в определенных странах; их доступность по регионам указана в списке ниже. Кроме доступности ограничений по регионам, можно проверить его доступность в определенной стране по таблице в разделе Список стран Покрытия сетевого анализа. Если для страны указано значениеYes в столбце Атрибуты логистики, то будут проверены ограничения, которые есть для всего региона, в котором находится страна. Если вы задаете имена ограничений, которые недоступны в стране, где находятся инциденты, сервис игнорирует их. Сервис также игнорирует ограничения, где значение параметра Использование ограничений находится в пределах от 0 до 1 (см. параметр Значение параметра атрибутов). Он запрещает все ограничения, чье значение параметра Использование ограничения больше 0. Примечание:Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский. Инструмент поддерживает следующие ограничения:
Прежние версии:Атрибут ограничения Driving a Delivery Vehicle больше недоступен. Механизм расчета проигнорирует ограничение, так как оно некорректное. Чтобы получит схожие результаты, используйте атрибут ограничения На грузовике наряду с атрибутом ограничения Избегать дорог с ограничениями для грузовиков. | String |
Attribute_Parameter_Values (Дополнительный) | Используйте этот параметр для указания дополнительных значений, требуемых атрибутом или ограничением, например для указания того, применяется ли ограничение как полный или рекомендуемый запрет либо как предпочтение путешествовать по дорогам с ограниченным движением. Если ограничение означает нежелательность или предпочтительность использования дороги, вы можете дополнительно указать с помощью этого параметра степень нежелательности или предпочтительности. Например, вы можете установить для платных дорог правило никогда их не использовать, по возможности избегать или наоборот, отдавать им предпочтение. Примечание:Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский. Если вы задаете параметр Значения атрибутивного параметра из класса пространственных объектов, имена полей класса пространственных объектов должны соответствовать следующим:
Значения атрибутивного параметра зависят от параметра Ограничения. Поле ParameterValue применяется, только если в качестве значения параметра Ограничения указано имя ограничения. В параметре Значения атрибутивного параметра каждое ограничение (указанное, как AttributeName) содержит значение поля ParameterName, Использование ограничения, определяющее запрет, нежелательность или предпочтительность использования дорог, для которых установлено ограничение, а также степень нежелательности или предпочтительности использования дорог. Поле Использование ограничения ParameterName может иметь одно из следующих строковых значений или эквивалентных числовых значений, указанных в скобках:
Как правило, для поля Использование ограничения (Restriction Usage) используется значение по умолчанию, PROHIBITED, если ограничение связано с характеристиками транспортного средства, например его высотой. Однако в некоторых случаях значение поля Использование ограничения будет зависеть от ваших предпочтений при выборе маршрута. Например, для ограничения Избегать платных дорог параметр Использование ограничения имеет по умолчанию значение AVOID_MEDIUM. Это означает, что, при наличии данного ограничения инструмент будет по возможности избегать использования платных дорог при построении маршрута. Значение AVOID_MEDIUM также указывает, насколько важно избегать использования платных дорог при поиске лучшего маршрута: это ограничение имеет средний приоритет. При выборе AVOID_LOW исключение платных дорог из маршрута будет иметь меньшее значение, а при выборе AVOID_HIGH – большее, поэтому сервис будет создавать более длинные маршруты, чтобы по возможности избежать использования платных дорог. При выборе PROHIBITED использование платных дорог будет полностью запрещено, и сервис не сможет включать их даже частично в маршрут. Имейте в виду, что в некоторых ситуациях важно избежать или запретить платные дороги, чтобы избежать платы за проезд. И наоборот, другие предпочитают ездить по платным дорогам, потому что движение без пробок для них более ценно, чем деньги, потраченные на платные дороги. В последнем случае для параметра Использование ограничения следует выбрать значения PREFER_LOW, PREFER_MEDIUM или PREFER_HIGH. Чем выше предпочтительность, тем в большей степени маршрут будет проходить по дорогам с этим ограничением. | Record Set |
Allocation_Line_Shape (Дополнительный) | Указывает тип линейных объектов, получаемых на выходе инструмента. Параметр принимает одно из следующих значений:
Независимо от выбранного значения параметра Выделение линейной формы (Allocation Line Shape), наикратчайший маршрут определяется всегда на основе минимальной продолжительности или протяженности пути, а не на основе расстояния по прямой между точками спроса и пунктами обслуживания. То есть, этот параметр изменяет только формы выходных линий; он не меняет метод измерения. | String |
Travel_Mode (Дополнительный) | Задайте режим передвижения для модели анализа. Режимы передвижения настраиваются в ArcGIS Online и могут изменяться администратором вашей организации в целях лучшего соответствия рабочим процессам вашей организации. Вам требуется указать имя режима передвижения, поддерживаемого вашей организацией. Для получения списка имен поддерживаемых режимов передвижения используйте то же подключение к ГИС-серверу, которое вы использовали для доступа к этому инструменту, и в наборе инструментов Утилиты запустите инструмент GetTravelModes. Инструмент GetTravelModes добавляет в приложение таблицу Поддерживаемые режимы передвижения. В качестве входных данных можно задать любое значение в поле Travel Mode Name таблицы Поддерживаемые режимы передвижения. Вы также можете указать в качестве входного значения значение из поля Travel Mode Settings. Это ускорит выполнение инструмента, поскольку инструмент не будет искать настройки на основании имени режима передвижения. Пользовательский (значение по умолчанию) – позволяет настроить собственный режим передвижения при помощи параметров этого режима (Развороты в соединениях, Использовать иерархию, Ограничения, Значения Параметров атрибутов и Импеданс). Значения по умолчанию для модели параметров пользовательского режима передвижения на легковом автомобиле. Также можно выбрать Пользовательский и задать указанные выше параметры пользовательского режима передвижения для моделирования быстрой пешей ходьбы или передвижения грузового автомобиля с определенными габаритными (по высоте) и весовыми характеристиками, загруженного определенным опасным грузом. Можете попробовать различные настройки для получения нужных вам результатов анализа. После определения настроек анализа вам необходимо связаться с администратором вашей организации и сохранить эти настройки как часть нового или существующего режима передвижения, чтобы любой пользователь вашей организации мог перезапустить анализ с такими же настройками. Внимание:При выборе Пользовательского режима, значения, заданные для его параметров, включаются в анализ. Указание другого режима передвижения, определенного вашей организацией, приведет к тому, что все заданные вами в качестве параметров пользовательского режима передвижения значения будут проигнорированы. Этот инструмент перезапишет их значениями заданного режима передвижения. | String |
Impedance (Дополнительный) | Задайте импеданс - значение, представляющее затраты или стоимость перемещения вдоль сегментов дорог или других частей транспортной сети. Время в пути - это импеданс: для того чтобы проехать 1 милю по пустой дороге, машине может понадобиться минута. Время в пути может зависеть от режима перемещения: ту же милю пешеход пройдет за 20 минут, поэтому важно выбрать правильный импеданс для моделируемого режима. Расстояние перемещения – это импеданс; длина дороги в километрах рассматривается как импеданс. В этом смысле расстояние аналогично для всех режимов – километр останется километром и для пешехода, и для машины. (Что может измениться, так это пути, по которым разрешено перемещаться в различных режимах, что влияет на расстояние между точками и моделируется настройками режима передвижения.) Внимание:Значение, указанное вами для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию. Выберите из следующих значений импеданса:
Если вы выбираете импеданс, основанный на времени, например, TravelTime, TruckTravelTime, Minutes, TruckMinutes или WalkTime, то параметр Единицы измерения также должен быть указан для времени. Если вы выбираете импеданс, основанный на расстоянии, например, Miles или Kilometers, то Единицы измерения также должны указывать расстояние. Прежние версии:Значения импеданса Время в пути на машине, Время в пути на грузовике, Время в пути пешком и Расстояние пути больше не поддерживаются и будут убраны в следующих версиях. При использовании одного из этих значений инструмент использует значение параметра Импеданс времени для основанных на времени значений и параметра Импеданс расстояния для значений, основанных на расстоянии. | String |
Save_Output_Network_Analysis_Layer (Дополнительный) | Указывает, будут ли параметры анализа сохранены в виде файла слоя сетевого анализа. Вы не можете работать с этим файлом напрямую, даже если вы откроете его в приложении ArcGIS Desktop, например, в ArcMap. Это предназначено для отправки в техническую поддержку Esri для диагностики качества результатов, получаемых инструментом.
| Boolean |
Overrides (Дополнительный) | Задает дополнительные опции, которые смогут повлиять на выполнение расчета, если будут найдены решения для задач сетевого анализа. Значение этого параметра должно быть задано в JavaScript Object Notation (JSON). К примеру, допустимое значение имеет следующий вид: {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. Замещающее имя всегда заключено в двойные кавычки. Эти значения могут быть числовыми, булевыми или текстовыми. Значение по умолчанию является пустым, что означает отсутствие замещения каких-либо настроек механизма расчета. Замещения – дополнительные настройки, которые должны применяться только по итогам выполнения тщательного анализа результатов, которые будут получены до и после применения таких настроек. Список поддерживаемых настроек замещений для каждого расчета и их доступных значений можно получить, обратившись в службу технической поддержки Esri. | string |
Time_Impedance (Дополнительный) | Импеданс на основе времени - это значение, которое задает время перемещения вдоль сегментов дорог или других частей транспортной сети. Примечание:Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на времени, значения параметров Импеданс времени и Импеданс должны быть идентичны. В противном случае сервис выдаст ошибку. | String |
Distance_Impedance (Дополнительный) | Импеданс на основе расстояния - это значение, которое задает расстояние перемещения вдоль сегментов дорог или других частей транспортной сети. Примечание:Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на расстоянии, значения параметров Импеданс расстояния и Импеданс должны быть идентичными. В противном случае сервис выдаст ошибку. | String |
Output_Format (Дополнительный) | Определяет формат, в котором будут созданы выходные объекты.
Если задан файловой выходной формат, например, файл JSON или файл GeoJSON, к отображению не будут добавлены выходные данные, так как приложения, такие как ArcMap или ArcGIS Pro, не знают, как отобразить содержимое полученного файла. Вместо этого файл загружается во временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходной результирующий файлв соответствующей строке отчета о выполнении инструмента в Истории геообработки на панели Проект. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходной результирующий файл в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки. | String |
Производные выходные данные
Name | Объяснение | Тип данных |
Solve_Succeeded | Определяет, смог ли сервис выбрать наилучшие пункты обслуживания. | Логическое |
Output_Allocation_Lines | Обеспечивает доступ к линиям, соединяющим точки спроса со связанными с ними пунктами обслуживания. Эти линии в документации называются линиями распределения. Эти линии распределения содержат данные о спросе, распределенном от каждой точки спроса к соответствующему пункту обслуживания. | Набор объектов |
Output_Facilities | Обеспечивает доступ к выбранным, обязательным и конкурирующим пунктам обслуживания, а также к невыбранным кандидатам в пункты обслуживания. | Набор объектов |
Output_Demand_Points | Предоставляет доступ к точкам спроса, которые участвуют в анализе: к тем, что были распределены по пунктам обслуживания, и к тем, которые не были распределены. | Набор объектов |
Output_Network_Analysis_Layer | Слой сетевого анализа со свойствами, как настроенные в параметрах инструмента, который может использоваться для дальнейшего анализа или исправления ошибок на карте. | Файл |
Output_Result_File | Файл .zip, содержащий результаты анализа, с одним или несколькими файлами для каждого результата. Формат отдельного файла задается параметром Выходной формат. | Файл |
Пример кода
Следующий скрипт Python демонстрирует, как использовать инструмент Solve Location Allocation в скрипте.
"""This example shows how to choose the best locations for stores that can service the maximum number of customers."""
import sys
import time
import arcpy
# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"
la_service = "https://logistics.arcgis.com/arcgis/services;World/LocationAllocation;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/2.6/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(la_service)
# Set the variables to call the tool
facilities = "C:/data/Inputs.gdb/Stores"
demand_points = "C:/data/Inputs.gdb/Customers"
output_lines = "C:/data/Results.gdb/AllocationLines"
output_facilities = "C:/data/Results.gdb/Facilities"
output_demand_points = "C:/data/Results.gdb/DemandPoints"
# Call the tool to find two best store locations that can reach a maxmimum number of customers
# with ten minutes of drive time
result = arcpy.SolveLocationAllocation_LocationAllocation(facilities, demand_points, "Minutes",
Problem_Type="Maximize Attendance",
Number_of_Facilities_to_Find=2,
Default_Measurement_Cutoff=10.0)
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))
# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Store the allocation lines that connect customers to allocated stores, the chosen stores,
# and the allocated customer locations to a geodatabase
result.getOutput(1).save(output_lines)
arcpy.analysis.Select(result.getOutput(2), output_facilities, "DemandCount > 0")
result.getOutput(3).save(output_demand_points)
В следующем примере показано, как выполнить анализ Размещение-Распределение, используя пользовательский режим передвижения.
"""This example shows how to perform a location-allocation analysis using a custom travel mode for trucks."""
import sys
import time
import json
import arcpy
username = "<your user name>"
password = "<your password>"
la_service = "https://logistics.arcgis.com/arcgis/services;World/LocationAllocation;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(la_service)
# Set the variables to call the tool
facilities = "C:/data/Inputs.gdb/Stores"
demand_points = "C:/data/Inputs.gdb/Customers"
output_lines = "C:/data/Results.gdb/AllocationLines"
output_facilities = "C:/data/Results.gdb/Facilities"
output_demand_points = "C:/data/Results.gdb/DemandPoints"
# Change to moderately prefer trucking roads for the Trucking Time travel mode
# used for the analysis
portal_url = "https://www.arcgis.com"
arcpy.SignInToPortal(portal_url, username, password)
travel_mode_list = arcpy.na.GetTravelModes(portal_url)
tt = travel_mode_list["Trucking Time"]
tt_json = str(tt)
tt_dict = json.loads(tt_json)
for attr_param in tt_dict["attributeParameterValues"]:
if attr_param['attributeName'] == 'Use Preferred Truck Routes' and attr_param['parameterName'] == 'Restriction Usage':
attr_param['value'] = 'PREFER_MEDIUM'
travel_mode = json.dumps(tt_dict)
# Call the tool
result = arcpy.SolveLocationAllocation_LocationAllocation(facilities, demand_points, "Minutes",
Problem_Type="Maximize Attendance",
Number_of_Facilities_to_Find=2,
Default_Measurement_Cutoff=10.0,
Travel_Mode=travel_mode)
# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Store the allocation lines that connect customers to allocated stores, the chosen stores,
# and the allocated customer locations to a geodatabase
result.getOutput(1).save(output_lines)
arcpy.analysis.Select(result.getOutput(2), output_facilities, "DemandCount > 0")
result.getOutput(3).save(output_demand_points)