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

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

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

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

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

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

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

Параметры

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

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

Параметр можно указать, используя следующее:

  • Путь к каталогу набора сетевых данных.
  • Слой набора сетевых данных
  • URL-адрес для портала ArcGIS Online или ArcGIS Enterprise, настроенного со стандартными сервисами маршрутизации

Для использования URL-адреса портала необходимо выполнить вход на портал под учетной записью с правами на маршрутизацию.

Более подробно о сетевом анализе с помощью сервисов маршрутизации

При использовании портала ArcGIS Online или ArcGIS Enterprise, сервисы маршрутизации которого настроены с использованием ArcGIS Online в качестве входной сети, решение анализа потребит кредиты и может быть ограничено, например, в числе допустимых входов.

Подробнее о потреблении кредитов и ограничениях при выполнении сетевого анализа

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Например, дату можно задать в виде 10/21/2015 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

Узнать подробнее о том, как дата и время используется и интерпретируется в сетевом анализе

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
Детальность полигонов
(Дополнительный)

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

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

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

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

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

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

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

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

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

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

Подсказка:

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

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

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

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

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

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

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

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

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

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

String
Игнорировать некорректные местоположения во время расчета
(Дополнительный)

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

  • Отмечено - неверные входные местоположения будут игнорироваться, а использоваться будут только допустимые местоположения. Используется по умолчанию.
  • Не отмечено - будут использоваться все входные местоположения. Неверные местоположения приведут к сбою анализа.
Boolean

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

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

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

Network Analyst Layer

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}, {ignore_invalid_locations})
ИмяОписаниеТип данных
network_data_source

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

Параметр может быть задан с помощью одного из следующих:

  • Путь к каталогу набора сетевых данных
  • Объект слоя набора сетевых данных
  • Строковое имя слоя набора сетевых данных
  • URL-адрес для портала ArcGIS Online или ArcGIS Enterprise, настроенного со стандартными сервисами маршрутизации

Для использования URL-адреса портала необходимо выполнить вход на портал под учетной записью с правами на маршрутизацию.

Изучите, как можно войти на портал в Python.

Более подробно о сетевом анализе с помощью сервисов маршрутизации

При использовании портала ArcGIS Online или ArcGIS Enterprise, сервисы маршрутизации которого настроены с использованием ArcGIS Online в качестве входной сети, решение анализа потребит кредиты и может быть ограничено, например, в числе допустимых входов.

Подробнее о потреблении кредитов и ограничениях при выполнении сетевого анализа

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 для этого параметра.

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

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

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

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

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

Например, дату можно задать в виде 10/21/2015 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

Узнать подробнее о том, как дата и время используется и интерпретируется в сетевом анализе

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Каждый полигон включает только зону между последовательными граничными значениями. Не включает зону между пунктами обслуживания и любыми меньшими граничными значениями. Например, при создании пяти- и десятиминутной зоны обслуживания полигон пятиминутной зоны обслуживания будет включать зону, до каждой точки которой можно добраться за 0–5 минут, а полигон десятиминутной зоны обслуживания – зону, до каждой точки которой можно добраться за 5–10 минут. Используется по умолчанию.
  • DISKSКаждый полигон содержит зону, до которой можно добраться из пункта обслуживания, вплоть до граничного значения, в том числе зону, доступную с меньшими граничными значениями. Например, при создании пяти- и десятиминутной зоны, полигон десятиминутной зоны обслуживания будет включать зоны внутри пятиминутной зоны обслуживания.
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
ignore_invalid_locations
(Дополнительный)

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

  • SKIPНеверные входные местоположения будут игнорироваться, а использоваться будут только допустимые местоположения. Используется по умолчанию.
  • HALTБудут использоваться все входные местоположения. Неверные местоположения приведут к сбою анализа.
Boolean

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

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

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

Network Analyst Layer

Пример кода

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

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

# 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: Да