Создать слой области обслуживания (Network Analyst)

Уровень лицензии:BasicStandardAdvanced

Резюме

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

ПримечаниеПримечание:

Инструменты Создать области обслуживания (Generate Service Areas) и Создать слой области обслуживания (Make Service Area Layer) похожи, но предназначены для различных целей. Используйте инструмент Создать области обслуживания (Generate Service Area) при настройке сервиса геообработки; это упростит процесс настройки. В противном случае используйте Создать слой области обслуживания (Make Service Area Layer). Также используйте инструмент Создать слой области обслуживания (Make Service Area Layer) при необходимости создать линии области обслуживания; Создать области обслуживания (Generate Service Area) не предоставляет функции для создания линий.

Для создания сервиса геообработки области обслуживания с использованием Создать области обслуживания (Generate Service Area) вам необходимо только настроить один инструмент и опубликовать инструмент напрямую, как сервис. Иначе вам необходимо создать модель при помощи Создать слой области обслуживания (Make Service Area Layer), правильно подключить ее к различным другим инструментам и опубликовать модель для создания сервиса геообработки области обслуживания.

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

Синтаксис

MakeServiceAreaLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {travel_from_to}, {default_break_values}, {polygon_type}, {merge}, {nesting_type}, {line_type}, {overlap}, {split}, {excluded_source_name}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {polygon_trim}, {poly_trim_value}, {lines_source_fields}, {hierarchy}, {time_of_day})
ПараметрОбъяснениеТип данных
in_network_dataset

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

Network Dataset Layer
out_network_analysis_layer

Имя создаваемого слоя области обслуживания.

String
impedance_attribute

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

String
travel_from_to
(дополнительно)

Указывает направление движения от или до пункта обслуживания.

  • TRAVEL_FROMОбласть обслуживания создается в направлении от пункта обслуживания.
  • TRAVEL_TOОбласть обслуживания создается в направлении к пункту обслуживания.

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

String
default_break_values
(дополнительно)

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

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

String
polygon_type
(дополнительно)

Задает количество создаваемых полигонов.

  • SIMPLE_POLYSСоздает генерализированные полигоны, которые генерируются быстрее и достаточно точны, если не учитывать особые требования. Это значение по умолчанию.
  • DETAILED_POLYSСоздает подробные полигоны, которые точно моделируют области облуживания и могут содержать островки недоступных областей. Этот вариант требует больше времени на вычисление.
  • NO_POLYSВыключает создание полигонов в случаях, когда желательно использовать линейное отображение областей обслуживания.

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

String
merge
(дополнительно)

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

  • NO_MERGEСоздает отдельные полигоны для каждого пункта обслуживания. Полигоны могут накладываться друг на друга.
  • NO_OVERLAPСоздает отдельные полигоны для каждого пункта обслуживания. Полигоны могут не накладываются друг на друга.
  • MERGE Объединяет полигоны нескольких пунктов обслуживания с общими граничными значениями.
String
nesting_type
(дополнительно)

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

  • RINGSНе включает область с меньшим граничным значением. Создает полигоны между соседними граничными значениями. Этот параметр можно использовать для поиска областей между граничными значениями.
  • DISKS Используется для создания полигонов от пункта обслуживания до граничного значения. Например, при создании 5- и 10-минутных областей обслуживания 10-минутная область будет включать 5-минутную. Этот параметр можно использовать для определения всей области между пунктом обслуживания и граничным значением.
String
line_type
(дополнительно)

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

  • NO_LINESНе создавать линии. Это значение по умолчанию.
  • TRUE_LINESЛинии создаются без измерений.
  • TRUE_LINES_WITH_MEASURESЛинии создаются с размерами. Значения размеров генерируются на основе значений импеданса для каждой границы; при этом промежуточные значения интерполируются. Не используйте этот параметр, если вам необходимо ускорить расчеты.
String
overlap
(дополнительно)

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

  • OVERLAP Включать отдельные линейные объекты для каждого пункта обслуживания, если пункты обслуживания имеют совпадающие области обслуживания.
  • NON_OVERLAP Включать каждую линию области обслуживания не более одного раза ми связывать с ближайшим пунктом обслуживания (наименьший импеданс).
Boolean
split
(дополнительно)
  • SPLITДелить каждую линию между двумя границами на две линии – по одной для каждой области. Этот параметр необходим для обозначения линий области обслуживания разрывами. В противном случае используйте параметр NO_SPLIT. Это повысит производительность вычислений.
  • NO_SPLITЛинии не делятся на границах областей обслуживания. Это значение по умолчанию.
Boolean
excluded_source_name
[excluded_source_name,...]
(дополнительно)

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

Это позволяет исключить некоторые сетевые источники из процесса создания полигонов, например, если из-за них полигоны имеют неправильную форму или данные не согласуются с анализом области обслуживания. Допустим, при создании времени движения для области обслуживания в мультимодальной сети (автодороги + железные дороги) необходимо исключить железные дороги, чтобы точно определить области, доступные для автотранспорта.

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

String
accumulate_attribute_name
[accumulate_attribute_name,...]
(дополнительно)

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

Для каждого суммируемого атрибута стоимости к маршрутам, являющимися выходными для механизма расчета, добавляется свойство 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
polygon_trim
(дополнительно)
  • TRIM_POLYSОбрезает полигоны до области в пределах заданного расстояния от границ. Это может быть необходимо для предотвращения охвата областей, не содержащих пространственных объектов.
  • NO_TRIM_POLYSНе усекать полигоны.
Boolean
poly_trim_value
(дополнительно)

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

Linear unit
lines_source_fields
(дополнительно)
  • LINES_SOURCE_FIELDS Добавляет к линиям областей обслуживания поля SourceID, SourceOID, FromPosition и ToPosition для хранения сведений об исходных пространственных элементах, используемых в анализе. Это помогает объединять результаты линий области обслуживания с исходными данными.
  • NO_LINES_SOURCE_FIELDSНе добавляет к линиям областей обслуживания поля SourceID, SourceOID, FromPosition и ToPosition.
Boolean
hierarchy
(дополнительно)
  • USE_HIERARCHY Use the hierarchy attribute for the analysis. Using a hierarchy results in the solver preferring higher-order edges to lower-order edges. Hierarchical solves are faster, and they can be used to simulate the preference of a driver who chooses to travel on freeways over local roads when possible—even if that means a longer trip. This option is valid only if the input network dataset has a hierarchy attribute.
  • NO_HIERARCHYDo not use the hierarchy attribute for the analysis. Not using a hierarchy yields a service area measured along all edges of the network dataset regardless of hierarchy level.

The parameter is not used if a hierarchy attribute is not defined on the network dataset used to perform the analysis. In such cases, use "#" as the parameter value.

Boolean
time_of_day
(дополнительно)

Время отправления или прибытия для пункта обслуживания слоя области обслуживания. Интерпретация этого значения зависит от того, какое направление движения задано – от пункта обслуживания или к нему.

  • Представляет время отправления, если параметру Движение от или к пункту обслуживания (Travel From or To Facility) задано значение TRAVEL_FROM.
  • Представляет время прибытия, если параметру Движение от или к пункту обслуживания (Travel From or To Facility) задано значение TRAVEL_TO.

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

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

  • Сегодня – 12/30/1899
  • Воскресенье – 12/31/1899
  • Понедельник – 1/1/1900
  • Вторник – 1/2/1900
  • Среда – 1/3/1900
  • Четверг – 1/4/1900
  • Пятница – 1/5/1900
  • Суббота – 1/6/1900
Например, чтобы указать, что маршрут должен начинаться в 5:00 PM во вторник, следует указать значение параметра, равное 1/2/1900 5:00 PM.

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

Date

Пример кода

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

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeServiceAreaLayer("Transportation/Streets_ND","FireStationCoverage",
                              "Minutes")
MakeServiceAreaLayer, пример 2 (окно Python)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.na.MakeServiceAreaLayer("Transportation/ParisNet","WarehouseCoverage",
                              "Drivetime","TRAVEL_FROM","5 10 15", 
                              "SIMPLE_POLYS", "NO_OVERLAP","RINGS","TRUE_LINES",
                              "NON_OVERLAP","NO_SPLIT",
                              ["Metro_Lines","Transfer_Stations",
                               "Transfer_Street_Station"],
                              ["Meters","Drivetime"],"ALLOW_DEAD_ENDS_ONLY",
                              ["Oneway"],"NO_TRIM_POLYS","",
                              "LINES_SOURCE_FIELDS")
MakeServiceAreaLayer, пример 3 (рабочий процесс)

В следующем автономном скрипте Python показано, как с помощью инструмента MakeServiceAreaLayer можно создавать 1-, 2- и 3-минутные области обслуживания вокруг пожарной части.

# Name: MakeServiceAreaLayer_Workflow.py
# Description: Generate 1-,2-,3- minute service area around fire stations and
#              save the results to a layer file on disk. The service area
#              polygons can be used to visualize the areas that do not have
#              adequate coverage from the fire stations
# 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 = "FireStationCoverage"
    impedanceAttribute = "TravelTime"
    inFacilities = "Analysis/FireStations"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"

    #Create a new service area layer. We wish to generate the service area
    #polygons as rings, so that we can easily visualize the coverage for any
    #given location. We also want overlapping polygons as we can determine the
    #number of fire stations that cover a given location. We use hierarchy to
    #speed up the time taken to create the polygons. We will specify these
    #options while creating the new service area layer.
    outNALayer = arcpy.na.MakeServiceAreaLayer(inNetworkDataset, outNALayerName,
                                  impedanceAttribute, "TRAVEL_FROM", "1 2 3",
                                  "SIMPLE_POLYS", "NO_MERGE", "RINGS",
                                  hierarchy = "USE_HIERARCHY")

    #Get the layer object from the result object. The service layer can now be
    #referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)

    #Get the names of all the sublayers within the service area layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]

    #Load the fire stations as facilities using default field mappings and
    #default search tolerance
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")

    #Solve the service area layer
    arcpy.na.Solve(outNALayer)

    #Save the solved service area 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 occured on line %i" % tb.tb_lineno
    print str(e)

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

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

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

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/11/2013