ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

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

ArcGIS Online

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

ArcGIS Desktop

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

ArcGIS Enterprise

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

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

Создать слой Размещение-Распределение

Доступно с лицензией Network Analyst.

  • Краткая информация
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензиях

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

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

Использование

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

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

Синтаксис

MakeLocationAllocationLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {loc_alloc_from_to}, {loc_alloc_problem_type}, {number_facilities_to_find}, {impedance_cutoff}, {impedance_transformation}, {impedance_parameter}, {target_market_share}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {output_path_shape}, {default_capacity}, {time_of_day})
ПараметрОбъяснениеТип данных
in_network_dataset

Набор сетевых данных, для которого выполняется анализ размещения-распределения.

Network Dataset Layer
out_network_analysis_layer

Имя создаваемого слоя сетевого анализа размещения-распределения.

String
impedance_attribute

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

String
loc_alloc_from_to
(Дополнительный)

Задает направление движения между пунктами обслуживания и точками спроса при расчете новой сетевой стоимости.

  • FACILITY_TO_DEMAND —Направление движения от пункта обслуживания к точкам спроса. Пожарные части, как правило, используют этот параметр, поскольку их интересует, как быстро они смогут доехать от пожарной части к месту вызова.
  • DEMAND_TO_FACILITY —Направление движения от точек спроса к пунктам обслуживания. Обычно этот параметр используют магазины розничной торговли, поскольку их интересует, насколько быстро покупатели смогут доехать до магазина.

Этот параметр может влиять на размещение точек спроса относительно пунктов обслуживания в сети с односторонними ограничениями и различными импедансами на основе направления движения. Например, пункт обслуживания может располагаться в 15 минутах езды по направлению от точки спроса к пункту, но в 10 минутах езды при движении от пункта обслуживания к точке спроса.

String
loc_alloc_problem_type
(Дополнительный)

Тип решаемой задачи. Выбор типа задачи зависит от вида размещаемого пункта обслуживания. Различные типы пунктов обслуживания имеют различные приоритеты и ограничения.

  • MINIMIZE_IMPEDANCE —Этот параметр решает задачу размещения склада. Он выбирает набор пунктов обслуживания таким образом, чтобы сумма взвешенного импеданса (спрос в точке расположения, умноженный на импеданс пути до ближайшего пункта обслуживания) была минимальной. Эта задача часто называется задачей P-медианы.
  • MAXIMIZE_COVERAGE —Этот параметр решает задачу размещения пожарной части. Он выбирает пункты обслуживания таким образом, чтобы все или большинство точек спроса находились в пределах заданного импеданса.
  • MAXIMIZE_CAPACITATED_COVERAGE —Этот параметр решает задачу размещения для пунктов обслуживания с конечной емкостью. Он выбирает пункты обслуживания таким образом, чтобы все или большинство точек спроса могли обслуживаться без превышения емкости любого из пунктов обслуживания. Помимо учета емкости, он выбирает пункты обслуживания таким образом, чтобы итоговая сумма взвешенных импедансов (спрос, распределенный к пункту обслуживания, умноженный на импеданс до или от пункта обслуживания) была минимальной.
  • MINIMIZE_FACILITIES —Этот параметр решает задачу размещения пожарной части. Он выбирает минимальное количество пунктов обслуживания, необходимое для покрытия всех или большинства точек спроса в пределах заданного импеданса.
  • MAXIMIZE_ATTENDANCE —Этот параметр позволяет решать задачу размещения магазинов, где доля спроса, размещенная на ближайшем пункте обслуживания, сокращается с удалением от пункта обслуживания. Выбирается набор пунктов обслуживания, удовлетворяющий максимальный распределенный спрос. Спрос за пределами заданного порога импеданса не влияет на выбранный набор пунктов обслуживания.
  • MAXIMIZE_MARKET_SHARE —Этот параметр решает задачу размещения конкурирующих пунктов обслуживания. При решении задачи пункты обслуживания выбираются таким образом, чтобы обеспечивалась наибольшая доля рынка в зоне присутствия конкурентов. Для определения доли спроса для каждого пункта обслуживания используется модель притягательности. Выбирается набор пунктов обслуживания, удовлетворяющих максимальный распределенный спрос.
  • TARGET_MARKET_SHARE —Этот параметр решает задачу размещения конкурирующих пунктов обслуживания. При решении задачи пункты обслуживания выбираются таким образом, чтобы обеспечить заданную целевую долю рынка в зоне присутствия конкурентов. Для определения доли спроса для каждого пункта обслуживания используется модель притягательности. При решении задачи выбирается минимальное количество пунктов обслуживания, обеспечивающих заданную целевую долю рынка.
String
number_facilities_to_find
(Дополнительный)

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

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

Все пункты обслуживания со значением FacilityType в поле Выбрано, заданным до решения, во время решения рассматриваются как кандидаты.

В задаче MINIMIZE_FACILITIES (обеспечения минимального количества пунктов обслуживания) этот параметр не учитывается, так как механизм расчета сам определяет количество пунктов обслуживания для обеспечения максимального покрытия.

В задаче TARGET_MARKET_SHARE (достижения целевой доли рынка) этот параметр переопределяется, так как механизм расчета сам определяет минимальное количество пунктов обслуживания, необходимое для достижения заданной доли рынка.

Long
impedance_cutoff
(Дополнительный)

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

Точки спроса имеют свойство Cutoff_[Impedance], которое, если ему присвоено значение, имеет приоритет над свойством Impedance Cutoff в слое анализа. Может оказаться, что люди в сельской местности готовы преодолевать расстояние в 10 миль, чтобы попасть к пункту обслуживания, а городские жители согласны преодолевать не более 2 миль. Такое поведение можно моделировать, задавая предельное значение импеданса слоя анализа, равное 10, с одновременным присвоением параметру Cutoff_Miles для точек спроса в пределах города значение 2.

Double
impedance_transformation
(Дополнительный)

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

  • LINEAR —Преобразованный сетевой импеданс между пунктом обслуживания и точкой спроса – то же самое, что и импеданс кратчайшего сетевого пути между ними. При этом параметре значение параметра импеданса всегда равно единице. Используется по умолчанию.
  • POWER —Преобразованный сетевой импеданс между пунктом обслуживания и точкой спроса равен импедансу кратчайшего сетевого пути, возведенному в степень, указанную параметром импеданса. Используйте эту опцию с положительными значениями параметра импеданса для присвоения большего веса для ближайших пунктов обслуживания.
  • EXPONENTIAL —Преобразованный сетевой импеданс между пунктом обслуживания и точкой спроса равен математической константе e, возведенной в степень, указанную импедансом кратчайшего сетевого пути, умноженному на параметр импеданса. Используйте эту опцию с положительными значениями параметра импеданса для присвоения очень большого веса для ближайших пунктов обслуживания.Экспоненциальные преобразования обычно используются вместе с предельными значениями импеданса.

Точки спроса имеют свойство ImpedanceTransformation, которое, если для него задано значение, переопределяет свойство Transformation для слоя анализа. Вы можете определить различные преобразования импеданса для городских и сельских жителей. Такое поведение можно моделировать, устанавливая преобразование импеданса для слоя анализа, соответствующее преобразованию для сельских жителей, а преобразование импеданса для точек спроса в городах – соответствующее преобразованию для городских жителей.

String
impedance_parameter
(Дополнительный)

Предоставляет уравнению преобразования импеданса значение для параметра Преобразование импеданса. Если используется преобразование импеданса LINEAR, значение параметра игнорируется. Для преобразований импеданса POWER и EXPONENTIAL значение не должно быть равно нулю.

Точки спроса имеют свойство ImpedanceParameter, которое, если ему присвоено значение, имеет приоритет над свойством Параметр импеданса слоя анализа. Может оказаться, что для городских и сельских жителей параметры импеданса будут различными. Такое поведение можно моделировать, устанавливая преобразование импеданса для слоя анализа, соответствующее преобразованию для сельских жителей, а преобразование импеданса для точек спроса в городах – соответствующее преобразованию для городских жителей.

Double
target_market_share
(Дополнительный)

Устанавливает целевую долю рынка в процентах для расчета, если для параметра Тип задачи Размещение-Распределение выбрано TARGET_MARKET_SHARE. Это процент от общего веса спроса, который должны удовлетворить пункты обслуживания решения. Механизм решения выбирает количество пунктов обслуживания, необходимое для обеспечения целевой доли рынка, заданной этим числовым значением.

Double
accumulate_attribute_name
[accumulate_attribute_name,...]
(Дополнительный)

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

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

String
UTurn_policy
(Дополнительный)

Правила разворота на соединениях. При разрешении U-образных разворотов неявно предполагается, что механизм расчета позволяет разворот на соединении и продолжение движения по той же улице в обратную сторону. Учитывая, что соединения представляют собой пересечения улиц и тупики, различные транспортные средства могут разворачиваться на некоторых соединениях, но не на всех – это зависит от того, является ли соединение перекрестком или тупиком. Для соответствия, параметр правил разворотов в неявном виде указывает количество ребер, участвующих в соединении, что представляет собой валентность соединения. Ниже приведены допустимые значения для данного параметра; каждое из них сопровождается описанием значения в терминах валентности соединения.

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

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

String
restriction_attribute_name
[restriction_attribute_name,...]
(Дополнительный)

Список атрибутов ограничений, которые будут применены во время анализа.

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

Параметр не используется, если в наборе сетевых данных, используемом для выполнения анализа, не задан атрибут иерархии. В таких случаях используйте в качестве значения параметра "#".

Boolean
output_path_shape
(Дополнительный)
  • NO_LINES —В ходе анализа доля в качестве выходных данных не создается никакая форма.
  • STRAIGHT_LINES —В качестве выходных данных будут использованы прямые линии, соединяющие пункты обслуживания решения с размещенными для них точками спроса.
String
default_capacity
(Дополнительный)

Определяет емкость пунктов обслуживания по умолчанию, если для параметра loc_alloc_problem_type указано значение MAXIMIZE_CAPACITATED_COVERAGE. Для всех остальных типов задач этот параметр игнорируется.

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

Double
time_of_day
(Дополнительный)

Задает время и дату отправления. Время отправления может быть от пункта обслуживания или от точки спроса – в зависимости от заданного направления (от точки спроса к пункту обслуживания или наоборот).

Если выбран атрибут импеданса на основе трафика, то решение будет создано с учетом заданных динамических условий трафика в указанное время суток. Дату и время можно указать в виде 5/14/2012 10:30 AM.

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

  • Сегодня – 30.12.1899
  • Воскресенье – 31.12.1899
  • Понедельник – 01.01.1900
  • Вторник – 02.01.1900
  • Среда – 03.01.1900
  • Четверг – 04.01.1900
  • Пятница – 05.01.1900
  • Суббота – 06.01.1900
Например, чтобы указать, что маршрут должен начинаться в 5:00 во вторник, следует указать значение параметра, равное 02.01.1900 17:00.

Date

Производные выходные данные

NameОбъяснениеТип данных
output_layer

Пример кода

MakeLocationAllocationLayer, пример 1 (окно Python)

Запуск инструмента с использованием только необходимых параметров.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeLocationAllocationLayer(network, "StoreLocations", "TravelTime")
MakeLocationAllocationLayer, пример 2 (окно Python)

Выполните инструмент с использованием всех параметров.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeLocationAllocationLayer(network, "NewStores", "TravelTime",
                                    "DEMAND_TO_FACILITY", "MAXIMIZE_ATTENDANCE",
                                    3, 5, "POWER", 2, "",
                                    ["TravelTime", "Meters"], "ALLOW_UTURNS",
                                    ["Oneway"], "NO_HIERARCHY",
                                    "STRAIGHT_LINES", "", "9 AM")
MakeLocationAllocationLayer, пример 3 (рабочий процесс)

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

# Name: MakeLocationAllocationLayer_Workflow.py
# Description: Choose the store locations that would generate the most business 
#              for a retail chain. For this scenario we will perform the 
#              location-allocation analysis using maximize attendance problem 
#              type. 
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayerName = "NewStoreLocations"
    impedanceAttribute = "TravelTime"
    inFacilities = "Analysis/CandidateStores"
    requiredFacility = "Analysis/ExistingStore"
    inDemandPoints = "Analysis/TractCentroids"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Create a new location-allocation layer. In this case the demand travels to
    #the facility. We wish to find 3 potential store locations out of all the
    #candidate store locations using the maximize attendance model.
    outNALayer = arcpy.na.MakeLocationAllocationLayer(inNetworkDataset,
                                                      outNALayerName,
                                                      impedanceAttribute,
                                                      "DEMAND_TO_FACILITY",
                                                      "MAXIMIZE_ATTENDANCE",3,5,
                                                      "LINEAR")
    
    #Get the layer object from the result object. The location-allocation layer
    #can now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the location-allocation layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    demandPointsLayerName = subLayerNames["DemandPoints"]
    
    
    #Load the candidate store locations as facilities using default search
    #tolerance and field mappings.
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Load the existing store location as the required facility. Use the field
    #mappings to set the facility type to requried. We need to append this
    #required facility to existing facilities.
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, facilitiesLayerName)
    fieldMappings["FacilityType"].defaultValue = 1
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, requiredFacility,
                          fieldMappings, "", append = "APPEND",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Load the tract centroids as demand points using default search tolerance
    #Use the field mappings to map the Weight property from POP2000 field.
    demandFieldMappings = arcpy.na.NAClassFieldMappings(outNALayer,
                                                        demandPointsLayerName)
    demandFieldMappings["Weight"].mappedFieldName = "POP2000"    
    arcpy.na.AddLocations(outNALayer,demandPointsLayerName ,inDemandPoints,
                          demandFieldMappings, "",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Solve the location-allocation layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved location-allocation layer as a layer file on disk with 
    #relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"RELATIVE")
    
    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occurred on line %i" % tb.tb_lineno
    print str(e)

Параметры среды

  • Текущая рабочая область

Информация о лицензиях

  • ArcGIS Desktop Basic: Да
  • ArcGIS Desktop Standard: Да
  • ArcGIS Desktop Advanced: Да

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

  • Анализ Размещения-распределения
  • О проведении сетевого анализа с использованием иерархии
  • Обзор группы инструментов Анализ
  • Что такое слои сетевого анализа?

ArcGIS Desktop

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

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

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