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

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

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

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

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

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

  • В ArcGIS Pro данные слоев сетевого анализа хранятся на диске в классах пространственных объектов файловой базы геоданных. При создании слоя сетевого анализа в проекте данные слоя будут созданы в новом наборе классов объектов в среде Текущей рабочей области. При создании слоя сетевого анализа в скрипте Python вам необходимо сначала явно задать среду рабочей области для файловой базы геоданных, в которой вы собираетесь хранить данные слоя, используя arcpy.env.workspace = "<path to file gdb>". После создания слоя в файловую базу геоданных будет добавлен новый набор классов объектов, содержащий соответствующие подслои для классов пространственных объектов.

Параметры

ПодписьОписаниеТип данных
Источник сетевых данных

Набор сетевых данных или сервис, для которого выполняется сетевой анализ. Для сервиса используйте URL-адрес портала.

Network Dataset Layer;String
Имя слоя
(Дополнительный)

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

String
Режим передвижения
(Дополнительный)

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

Объект arcpy.na.TravelMode и строка, содержащая действительное представление JSON режима перемещения, также могут использоваться как ввод для параметра.

String
Направление движения
(Дополнительный)

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

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

  • От пунктов обслуживанияТерритория обслуживания отображает движение от пунктов обслуживания. Это значение по умолчанию.
  • К пунктам обслуживанияОбласть обслуживания представляет перемещение в направлении к пункту обслуживания.
String
Граничные значения
(Дополнительный)

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

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

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

Double
Время дня
(Дополнительный)

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

  • Отражает время отправления, если параметр Направление движения имеет значение От пункта обслуживания.
  • Представляет время прибытия, если параметр Направление движения имеет значение К пункту обслуживания.

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

Дату и время можно указать в виде 21.10.05 10:30.

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

  • Сегодня – 12/30/1899
  • Воскресенье – 12/31/1899
  • Понедельник – 1/1/1900
  • Вторник – 1/2/1900
  • Среда – 1/3/1900
  • Четверг – 1/4/1900
  • Пятница – 1/5/1900
  • Суббота – 1/6/1900

Date
Часовой пояс
(Дополнительный)

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

  • Локальное время в местоположенияхЗначение параметра Время суток относится к часовому поясу или поясам, в которых находятся пункты обслуживания. Времена начала и окончания областей обслуживания разнесены по часовым поясам. Это значение по умолчанию.Например, установка параметра Время суток на 9:00 утра приведет к созданию зон обслуживания на 9:00 утра по восточному времени для любых объектов в восточном часовом поясе, на 9:00 утра по центральному времени для объектов в центральном часовом поясе, на 9:00 утра по горному времени для объектов в горном часовом поясе и т.д. для объектов в разных часовых поясах. Если магазины в торговой сети, охватывающей всю территорию США, открываются в 9:00 утра по местному времени, выберите этот параметр, чтобы найти в одном решении торговые территории в час открытия сразу для всех магазинов. Сначала открываются магазины в часовом поясе восточного времени, и строится соответствующий полигон. Час спустя открываются магазины в центральном часовом поясе, и так далее. Во всех случаях временем будет девять часов местного времени, но реальное время будет разным.
  • UTCЗначения параметра Время суток указываются во формате всемирного скоординированного времени (UTC). Время отправления или прибытия для всех пунктов обслуживания одинаково, независимо от часового пояса или поясов, в которых они находятся..Установка параметра времени суток на 14:00 приведет к созданию зон обслуживания на 9:00 утра по стандартному восточному времени для любых объектов в восточном часовом поясе, на 8:00 утра в стандартном центральном времени для объектов в центральном часовом поясе, на 7:00 утра по стандартному горному времени для объектов в горном часовом поясе и т.д. для объектов в разных часовых поясах.
    Примечание:

    Вышеописанный сценарий предполагает стандартное время. В период действия летнего времени восточное, центральное и горное время увеличится на час (до 10:00, 9:00 и 8:00 утра, соответственно).

    Одним из примеров, когда предпочтительно использовать опцию UTC, является визуализация охвата службой спасения территории, находящейся в двух часовых поясах. В качестве пунктов обслуживания загружаются автомобили службы спасения. Параметр времени суток установлен на текущее время в UTC. (Чтобы правильно использовать эту опцию, вам нужно определить текущие время и дату в UTC.) После задания прочих свойств механизм расчета решает задачу анализа. Несмотря на то, что автомобили разделены границей часовых поясов, решение показывает области обслуживания с учетом текущих условий дорожного движения. Этот же процесс можно использовать для любого другого момента времени, а не только для текущего.
String
Тип выходных данных
(Дополнительный)

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

Выходные типы геометрии Линии и Полигоны недоступны, если источником данных сети является сервис версии Portal for ArcGIS, не поддерживающей генерацию строк.

  • ПолигоныВыходные зоны обслуживания будут содержать только полигоны. Это значение по умолчанию.
  • ЛинииВыходные зоны обслуживания будут содержать только линии.
  • Полигоны и линииВыходные зоны обслуживания будут содержать и полигоны, и линии.
String
Детальность полигонов
(Дополнительный)

Задает уровень детализации выходных полигонов.

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

  • СтандартныеБудут созданы полигоны со стандартным уровнем детализации. Это значение по умолчанию.
  • ГенерализованыеБудут созданы генерализованные полигоны с использованием сетевого атрибута иерархии, для быстрого получения результатов. Данная опция не доступна, если входной набор сетевых данных не имеет атрибут иерархии.
  • ВысокиеПолигоны с высоким уровнем детализации будут созданы для приложений, в которых важны точные результаты..
String
Геометрия в перекрытиях
(Дополнительный)

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

  • ПерекрытиеБудут созданы отдельные полигоны или наборы для каждого пункта обслуживания. Полигоны или линии могут накладываться друг на друга. Это значение по умолчанию.
  • Слияние по атрибутуПолигоны нескольких пунктов обслуживания, имеющих одинаковые предельные значения, будут объединены в один полигон. Эта опция не применяется к линейным выходным данным.
  • РазбиениеОбласть будет назначена ближайшему пункту обслуживания, чтобы полигоны или линии не перекрывались.
String
Геометрия в граничных значениях
(Дополнительный)

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

  • КольцаКаждый полигон будет включать область между последовательными предельными значениями. Он не будет включать область между пунктом обслуживания и меньшим предельным значением. Например, при создании 5- и 10-минутных областей обслуживания 5-минутная область будет включать в себя область, до которой можно доехать за период от 0 до 5-минут, а 10-минутная область - между границами 5-и 10-минутной области обслуживания. Это значение по умолчанию.
  • ДискиКаждый полигон будет включать область от пункта обслуживания до предельного значения, включая области с меньшими предельными значениями. Например, при создании 5- и 10-минутных областей обслуживания 10-минутная область будет включать 5-минутную.
String
Расстояние сокращения полигона
(Дополнительный)

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

Параметр включает значение и единицу измерения расстояния. По умолчанию задано значение 100 метров.

Linear Unit
Исключить источники из создания полигона
(Дополнительный)

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

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

Это позволяет исключить некоторые сетевые источники из процесса создания полигонов, например, если из-за них полигоны имеют неправильную форму или данные не согласуются с анализом области обслуживания. К примеру, при создании области обслуживания для пешего передвижения в мультимодальной сети, включающей улицы и линии метрополитена, вам следует исключить линии метро из создания полигонов. Хотя пешеходы и могут использовать линии метро, они не могут остановиться в любом месте вдоль линий метро и войти в соседнее здание. Вместо этого, они должны пройти по всей длине линии метро, выйти на станции, затем пройти к зданию по улицам. Было бы неточным создать полигональный объект вокруг линии метро.

Этот параметр недоступен, если типы выходной геометрии не включают полигоны, в которых присутствует меньше двух источников ребер в сети, источник данных сети является сервисом ArcGIS Online, либо источник данных сети является сервисом в версии Portal for ArcGIS, которая не поддерживает исключение источников.

String
Атрибуты накопления
(Дополнительный)

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

Для каждого из накопленных атрибутов стоимости в выходных объектах сетевого анализа добавляется параметр Total_[Impedance].

Этот параметр недоступен, если слой анализа не настроен на вывод линий, источником сетевых данных является сервис ArcGIS Online или сервис в версии Portal for ArcGIS, не поддерживающей накопление.

String

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

ПодписьОписаниеТип данных
Слой Network Analyst

Только что созданный слой сетевого анализа.

Слой Network Analyst

arcpy.na.MakeServiceAreaAnalysisLayer(network_data_source, {layer_name}, {travel_mode}, {travel_direction}, {cutoffs}, {time_of_day}, {time_zone}, {output_type}, {polygon_detail}, {geometry_at_overlaps}, {geometry_at_cutoffs}, {polygon_trim_distance}, {exclude_sources_from_polygon_generation}, {accumulate_attributes})
ИмяОписаниеТип данных
network_data_source

Набор сетевых данных или сервис, для которого выполняется сетевой анализ. Для сервиса используйте URL-адрес портала.

Network Dataset Layer;String
layer_name
(Дополнительный)

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

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

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

Объект arcpy.na.TravelMode и строка, содержащая действительное представление JSON режима перемещения, также могут использоваться как ввод для параметра.

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

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

  • FROM_FACILITIESТерритория обслуживания отображает движение от пунктов обслуживания. Это значение по умолчанию.
  • TO_FACILITIESОбласть обслуживания представляет перемещение в направлении к пункту обслуживания.

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

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

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

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

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

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

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

  • Представляет время отправления, если travel_direction='FROM_FACILITIES'.
  • Представляет собой время прибытия, если travel_direction='TO_FACILITIES'.

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

Дату и время можно указать в виде 21.10.05 10:30.

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

  • Сегодня – 12/30/1899
  • Воскресенье – 12/31/1899
  • Понедельник – 1/1/1900
  • Вторник – 1/2/1900
  • Среда – 1/3/1900
  • Четверг – 1/4/1900
  • Пятница – 1/5/1900
  • Суббота – 1/6/1900

Date
time_zone
(Дополнительный)

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

  • LOCAL_TIME_AT_LOCATIONSЗначение параметра Время суток относится к часовому поясу или поясам, в которых находятся пункты обслуживания. Времена начала и окончания областей обслуживания разнесены по часовым поясам. Это значение по умолчанию.Например, установка параметра Время суток на 9:00 утра приведет к созданию зон обслуживания на 9:00 утра по восточному времени для любых объектов в восточном часовом поясе, на 9:00 утра по центральному времени для объектов в центральном часовом поясе, на 9:00 утра по горному времени для объектов в горном часовом поясе и т.д. для объектов в разных часовых поясах. Если магазины в торговой сети, охватывающей всю территорию США, открываются в 9:00 утра по местному времени, выберите этот параметр, чтобы найти в одном решении торговые территории в час открытия сразу для всех магазинов. Сначала открываются магазины в часовом поясе восточного времени, и строится соответствующий полигон. Час спустя открываются магазины в центральном часовом поясе, и так далее. Во всех случаях временем будет девять часов местного времени, но реальное время будет разным.
  • UTCЗначения параметра Время суток указываются во формате всемирного скоординированного времени (UTC). Время отправления или прибытия для всех пунктов обслуживания одинаково, независимо от часового пояса или поясов, в которых они находятся..Установка параметра времени суток на 14:00 приведет к созданию зон обслуживания на 9:00 утра по стандартному восточному времени для любых объектов в восточном часовом поясе, на 8:00 утра в стандартном центральном времени для объектов в центральном часовом поясе, на 7:00 утра по стандартному горному времени для объектов в горном часовом поясе и т.д. для объектов в разных часовых поясах.
    Примечание:

    Вышеописанный сценарий предполагает стандартное время. В период действия летнего времени восточное, центральное и горное время увеличится на час (до 10:00, 9:00 и 8:00 утра, соответственно).

    Одним из примеров, когда предпочтительно использовать опцию UTC, является визуализация охвата службой спасения территории, находящейся в двух часовых поясах. В качестве пунктов обслуживания загружаются автомобили службы спасения. Параметр времени суток установлен на текущее время в UTC. (Чтобы правильно использовать эту опцию, вам нужно определить текущие время и дату в UTC.) После задания прочих свойств механизм расчета решает задачу анализа. Несмотря на то, что автомобили разделены границей часовых поясов, решение показывает области обслуживания с учетом текущих условий дорожного движения. Этот же процесс можно использовать для любого другого момента времени, а не только для текущего.
String
output_type
(Дополнительный)

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

  • POLYGONSВыходные зоны обслуживания будут содержать только полигоны. Это значение по умолчанию.
  • LINESВыходные зоны обслуживания будут содержать только линии.
  • POLYGONS_AND_LINESВыходные зоны обслуживания будут содержать и полигоны, и линии.

Выходные типы геометрии Линии и Полигоны недоступны, если источником данных сети является сервис версии Portal for ArcGIS, не поддерживающей генерацию строк.

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

Задает уровень детализации выходных полигонов.

  • STANDARDБудут созданы полигоны со стандартным уровнем детализации. Это значение по умолчанию.
  • GENERALIZEDБудут созданы генерализованные полигоны с использованием сетевого атрибута иерархии, для быстрого получения результатов. Данная опция не доступна, если входной набор сетевых данных не имеет атрибут иерархии.
  • HIGHПолигоны с высоким уровнем детализации будут созданы для приложений, в которых важны точные результаты..

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

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

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

  • OVERLAPБудут созданы отдельные полигоны или наборы для каждого пункта обслуживания. Полигоны или линии могут накладываться друг на друга. Это значение по умолчанию.
  • DISSOLVEПолигоны нескольких пунктов обслуживания, имеющих одинаковые предельные значения, будут объединены в один полигон. Эта опция не применяется к линейным выходным данным.
  • SPLITОбласть будет назначена ближайшему пункту обслуживания, чтобы полигоны или линии не перекрывались.
String
geometry_at_cutoffs
(Дополнительный)

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

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

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

Параметр включает значение и единицу измерения расстояния. По умолчанию задано значение 100 метров.

Linear Unit
exclude_sources_from_polygon_generation
[exclude_sources_from_polygon_generation,...]
(Дополнительный)

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

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

Это позволяет исключить некоторые сетевые источники из процесса создания полигонов, например, если из-за них полигоны имеют неправильную форму или данные не согласуются с анализом области обслуживания. К примеру, при создании области обслуживания для пешего передвижения в мультимодальной сети, включающей улицы и линии метрополитена, вам следует исключить линии метро из создания полигонов. Хотя пешеходы и могут использовать линии метро, они не могут остановиться в любом месте вдоль линий метро и войти в соседнее здание. Вместо этого, они должны пройти по всей длине линии метро, выйти на станции, затем пройти к зданию по улицам. Было бы неточным создать полигональный объект вокруг линии метро.

Этот параметр недоступен, если типы выходной геометрии не включают полигоны, в которых присутствует меньше двух источников ребер в сети, источник данных сети является сервисом ArcGIS Online, либо источник данных сети является сервисом в версии Portal for ArcGIS, которая не поддерживает исключение источников.

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

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

Для каждого из накопленных атрибутов стоимости в выходных объектах сетевого анализа добавляется параметр Total_[Impedance].

Этот параметр недоступен, если слой анализа не настроен на вывод линий, источником сетевых данных является сервис ArcGIS Online или сервис в версии Portal for ArcGIS, не поддерживающей накопление.

String

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

ИмяОписаниеТип данных
out_network_analysis_layer

Только что созданный слой сетевого анализа.

Слой Network Analyst

Пример кода

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

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

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

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

network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.MakeServiceAreaAnalysisLayer(network, "WarehouseCoverage",
                                "Driving Time", "FROM_FACILITIES", [5, 10, 15],
                                "1/1/1900 9:00 AM", "UTC", "POLYGONS",
                                "STANDARD", "DISSOLVE", "RINGS", "100 meters",
                                ["Metro_Lines", "Transfer_Stations",
                                "Transfer_Street_Station"], ["Meters", 
                                "DriveTime"])
MakeServiceAreaAnalysisLayer, пример 3 (рабочий процесс)

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

# Name: MakeServiceAreaAnalysisLayer_Workflow.py
# Description: Generate 1-,2-,3- minute service areas 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
import os

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set local variables
    input_gdb = "C:/Data/SanFrancisco.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "FireStationCoverage"
    travel_mode = "Driving Time"
    facilities = os.path.join(input_gdb, "Analysis", "FireStations")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #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 so we can determine the
    #number of fire stations that cover a given location. We will specify these
    #options while creating the new service area layer.
    result_object = arcpy.na.MakeServiceAreaAnalysisLayer(network, layer_name,
                                    travel_mode, "FROM_FACILITIES", [1, 2, 3],
                                    polygon_detail="HIGH",
                                    geometry_at_overlaps="OVERLAP",
                                    geometry_at_cutoffs="RINGS")

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

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

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

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

    #Save the solved service area layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

    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))
MakeServiceAreaAnalysisLayer, пример 4 (рабочий процесс)

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

Прежние версии:

Функцию GetNASublayer можно использовать для извлечения подслоев слоя сетевого анализа. Она была введена в ArcGIS Pro 2.7. В предыдущих версиях программного обеспечения лучший способ получить объект подслоя слоя сетевого анализа заключался в использовании метода listLayers объекта Layer сетевого анализа с использованием имени подслоя в качестве подстановочного знака.

# Name: MakeServiceAreaAnalysisLayer_Workflow2.py
# Description: Generate 3-minute service areas around fire stations at several
#               times of day to compare coverage differences due to varying
#               traffic conditions. Save the results to a feature class on disk.
# Requirements: Network Analyst Extension

# Import system modules
import arcpy
from arcpy import env
import os, datetime

try:
    # Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    # Set environment settings
    output_dir = "C:/Data"
    # The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    # Set local variables
    input_gdb = "C:/Data/SanFrancisco.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "FireStationCoverage"
    out_featureclass = os.path.join(output_dir, "Output.gdb",
                                                        "FireStationCoverage")
    travel_mode = "Driving Time"
    facilities = os.path.join(input_gdb, "Analysis", "FireStations")
    times_of_day = [datetime.datetime(2014, 9, 25, 7, 0, 0),
                    datetime.datetime(2014, 9, 25, 12, 30, 0),
                    datetime.datetime(2014, 9, 25, 17, 30, 0),
                    datetime.datetime(2014, 9, 25, 21, 0, 0)]

    # Create a new service area layer.
    result_object = arcpy.na.MakeServiceAreaAnalysisLayer(network, layer_name,
                                                travel_mode, "FROM_FACILITIES",
                                                [3], polygon_detail="HIGH",
                                                geometry_at_overlaps="OVERLAP")

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

    # Get the names of all the sublayers within the service area layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    # Stores the layer names that we will use later
    facilities_layer_name = sublayer_names["Facilities"]
    polygons_layer_name = sublayer_names["SAPolygons"]

    # The input data has a field for FireStationID that we want to transfer to
    # our analysis layer. Add the field, and then use field mapping to transfer
    # the values.
    arcpy.na.AddFieldToAnalysisLayer(layer_object, facilities_layer_name,
                                                    "FireStationID", "TEXT")
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                    facilities_layer_name)
    field_mappings["FireStationID"].mappedFieldName = "FireStationID"

    # Load the fire stations as facilities.
    arcpy.na.AddLocations(layer_object, facilities_layer_name, facilities,
                            field_mappings, "")

    # Add fields to the output Polygons sublayer for later use.
    arcpy.na.AddFieldToAnalysisLayer(layer_object, polygons_layer_name,
                                        "FireStationID", "TEXT")
    arcpy.na.AddFieldToAnalysisLayer(layer_object, polygons_layer_name,
                                        "TimeOfDay", "TEXT")

    # Get sublayers to work with later
    facilities_sublayer = arcpy.na.GetNASublayer(layer_object, "Facilities")
    polygons_sublayer = arcpy.na.GetNASublayer(layer_object, "SAPolygons")

    # Get the Service Area Layer's solver properties. This can be used to
    # set individual properties later without re-creating the layer.
    solver_properties = arcpy.na.GetSolverProperties(layer_object)

    # Solve the Service Area for each time of day in the time list
    for t in times_of_day:

        print("Calculating service area for time of day: ", t)

        # Use the solver properties to set the time of day for the solve
        solver_properties.timeOfDay = t

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

        # Transfer the FireStationID field from the input Facilities to the
        # output Polygons
        arcpy.management.AddJoin(polygons_sublayer, "FacilityID",
                                        facilities_sublayer, "ObjectID")
        # The joined fields are qualified by the feature class name of the joined
        # table, so determine the feature class names
        field_qualifier_pol = os.path.basename(polygons_sublayer.dataSource)
        target_field_name = "%s.FireStationID" % field_qualifier_pol
        field_qualifier_fac = os.path.basename(facilities_sublayer.dataSource)
        expression = "!%s.FireStationID!" % field_qualifier_fac
        arcpy.management.CalculateField(polygons_sublayer, target_field_name,
                                        expression, "PYTHON")
        arcpy.management.RemoveJoin(polygons_sublayer)

        # Populate the TimeOfDay field in the output feature class
        expression = '"' + str(t) + '"'
        arcpy.management.CalculateField(polygons_sublayer, "TimeOfDay",
                                            expression, "PYTHON")

        # Append the polygons to the output feature class. If this was the first
        # solve, create the feature class.
        if not arcpy.Exists(out_featureclass):
            arcpy.management.CopyFeatures(polygons_sublayer, out_featureclass)
        else:
            arcpy.management.Append(polygons_sublayer, out_featureclass)

    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))

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

Особые случаи

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

  • Basic: Да
  • Standard: Да
  • Advanced: Да