Доступно с лицензией Network Analyst.
Краткая информация
Создает слой сетевого анализа области обслуживания, устанавливает свойства анализа и решает данный анализ. Данный инструмент идеально подходит для настройки сервиса геообработки области обслуживания в веб-сети. Область обслуживания сети – это регион, охватывающий все улицы, которые могут быть доступны в пределах заданного расстояния или времени пути от одного или более пункта обслуживания.
Области обслуживания обычно используются для визуализации и измерения доступности. Например, полигон вокруг продуктового магазина для трехминутного времени езды может определить жителей, которые смогут добраться до магазина в течение трех минут и, скорее всего, будут совершать в нем покупки.
Использование
В диалоговом окне инструмента есть разнообразные дополнительные параметры, сгруппированные для удобства работы в следующие шесть категорий:
- Расширенный анализ
- Барьеры
- Пользовательский режим передвижения
- Сетевые положения
- Создание полигонов
- Возможности сервиса
Более подробно о выходных данных инструмента Создать области обслуживания
Синтаксис
GenerateServiceAreas_na (Facilities, Break_Values, Break_Units, Network_Dataset, Service_Areas, {Travel_Direction}, {Time_of_Day}, {UTurn_Policy}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Time_Attribute}, {Time_Attribute_Units}, {Distance_Attribute}, {Distance_Attribute_Units}, {Use_Hierarchy_in_Analysis}, {Restrictions}, {Attribute_Parameter_Values}, {Maximum_Snap_Tolerance}, {Exclude_Restricted_Portions_of_the_Network}, {Feature_Locator_WHERE_Clause}, {Polygons_for_Multiple_Facilities}, {Polygon_Overlap_Type}, {Detailed_Polygons}, {Polygon_Trim_Distance}, {Polygon_Simplification_Tolerance}, {Maximum_Facilities}, {Maximum_Number_of_Breaks}, {Maximum_Features_Affected_by_Point_Barriers}, {Maximum_Features_Affected_by_Line_Barriers}, {Maximum_Features_Affected_by_Polygon_Barriers}, {Maximum_Break_Time_Value}, {Maximum_Break_Distance_Value}, {Force_Hierarchy_beyond_Break_Time_Value}, {Force_Hierarchy_beyond_Break_Distance_Value}, {Save_Output_Network_Analysis_Layer}, {Time_Zone_for_Time_of_Day}, {Travel_Mode})
Параметр | Объяснение | Тип данных |
Facilities | Пункты обслуживания, вокруг которых создаются области обслуживания. Набор объектов – пунктов обслуживания имеет три атрибута: ObjectID: Управляемое системой поле ID. Shape: Поле геометрии, показывающее географическое положение объекта сетевого анализа. Name: Имя пункта обслуживания. Если имя пустое или NULL, то оно автоматически создается во время решения. | Feature Set |
Break_Values | Определяет размер и число полигонов области обслуживания, которые нужно создать для каждого пункта обслуживания. Единицы определяются Единицами граничных значений. При запуске инструмента Создать области обслуживания (Generate Service Areas) происходит взаимодействие между следующими параметрами, на которое стоит обратить внимание: Граничные значения (Break Values), Единицы граничных значений (Break Units), и либо Атрибут времени (Time Attribute), либо Атрибут расстояния (Distance Attribute). При этом Граничные значения (Break Values) и Единицы граничных значений (Break Units) определяют насколько далеко или долго может распространяться область обслуживания вокруг пункта или пунктов обслуживания. Каждый из параметров Атрибут времени (Time Attribute) и Атрибут расстояния (Distance Attribute) определяет один сетевой атрибут стоимости. Однако используется только один из этих двух атрибутов стоимости, а тот, который выбран механизмом расчета, соответствует значению Единицы граничных значений; т.е., когда вы задаете Единицы граничных значений на основе времени, например, секунды или минуты, инструмент выполняет расчет, используя атрибут стоимости, заданный параметром Атрибут времени. Когда вы указываете основанные на расстоянии Единицы граничных значений, например, километры или мили, то используется атрибут стоимости, заданный параметром Атрибут расстояния. Для создания концентрических областей обслуживания для каждого пункта обслуживания можно использовать несколько границ полигонов. Например, чтобы задать двух–, трех– и пятимильную области обслуживания для одного пункта обслуживания, следует ввести 2 3 5, разделяя значения пробелом. Задайте для Единиц граничных значений Мили (Miles) и убедитесь, что вы выбрали сетевой атрибут на основе расстояния для параметра Атрибут расстояния. | String |
Break_Units | Единицы для параметра Граничные значения.
Инструмент Создать области обслуживания выбирает использование сетевого атрибута стоимости, указанного в параметре Атрибут времени или Атрибут расстояния, в зависимости от того, на чем основаны выбранные вами единицы – на времени или на расстоянии. Инструмент выполняет необходимые преобразования единиц в том случае, если Единицы измерения граничных значений отличаются от единиц соответствующего атрибута стоимости времени или расстояния. | String |
Network_Dataset | Набор сетевых данных, который будет анализироваться. Наборы сетевых данных чаще всего представляют улично-дорожные сети, но могут представлять и другие типы транспортных сетей. Набор сетевых данных должен содержать хотя бы один атрибут стоимости, основанный на времени, и один, основанный на расстоянии. | Network Dataset Layer |
Service_Areas | Выходная рабочая область и имя выходных объектов. Рабочая область должна существовать. Выходная рабочая область по умолчанию – in_memory. | Feature Class |
Travel_Direction (дополнительно) | Выберите направление перемещения, используемое для создания полигонов области обслуживания, – к пунктам обслуживания или от них.
Направление перемещения может изменять форму полигонов, так как импедансы противоположных сторон улиц могут отличаться, или улицы могут быть с односторонним движением. Выбираемое направление зависит от характера анализа областей обслуживания в конкретном случае. Область обслуживания для службы доставки пиццы, например, может быть создана с учетом пути от пункта обслуживания, а область обслуживания больницы должна быть создана с учетом пути к пункту обслуживания, так как время движения пациента в больницу является важнейшим значением. | String |
Time_of_Day (дополнительно) | Время отправления или прибытия для пункта обслуживания. Интерпретация этого значения зависит от того, какое направление движения задано – от пункта обслуживания или к нему.
Чтобы данный параметр вступил в силу, ваш набор сетевых данных должен включать данные трафика. Повторяя один и тот же анализ, но с разными значениями времени суток, можно увидеть, как изменяется доступность пункта обслуживания с течением времени. Например, пятиминутная область обслуживания вокруг пожарной части может быть большой рано утром, затем уменьшаться в утренний час пик, снова увеличиваться и т.д. | Date |
UTurn_Policy (дополнительно) | Правила разворота на соединениях. При разрешении U-образных разворотов неявно предполагается, что механизм расчета позволяет разворот на соединении и продолжение движения по той же улице в обратную сторону. Учитывая, что соединения представляют собой пересечения улиц и тупики, различные транспортные средства могут разворачиваться на некоторых соединениях, но не на всех – это зависит от того, является ли соединение перекрестком или тупиком. Для соответствия, параметр правил разворотов в неявном виде указывает количество ребер, участвующих в соединении, что представляет собой валентность соединения. Ниже приведены допустимые значения для данного параметра; каждое из них сопровождается описанием значения в терминах валентности соединения.
Значение этого параметра перезаписывается, если для Режима передвижения (Travel_Mode в Python) установлено не пользовательское значение. | String |
Point_Barriers (дополнительно) | Определяет точечные барьеры, которые разделены на два типа: ограничения и дополнительной стоимости. Они временно ограничивают прохождение по сети или добавляют импеданс к точкам сети. Точечные барьеры задаются набором объектов, а значения атрибута, которые вы указываете для точечных объектов, определяют, являются ли они ограничениями или барьерами дополнительной стоимости. Ниже приведены поля в таблице атрибутов с описанием. ObjectID: Управляемое системой поле ID. Shape: Поле геометрии, показывающее географическое положение объекта сетевого анализа. Name: Имя барьера. BarrierType: Указывает, ограничивает ли барьер перемещение полностью или добавляет стоимость при прохождении через него. Существует две опции:
Используйте значение 0 для Ограничения и 2 для Дополнительной стоимости. AdditionalCost: AdditionalCost указывает величину импеданса, добавляемую при перемещении области обслуживания через барьер. Единица для данного поля аналогична единицам, используемым для Единиц граничных значений (Break Units). | Feature Set |
Line_Barriers (дополнительно) |
Определяет линейные барьеры, которые временно ограничивают прохождение через них. Линейные барьеры определяются набором объектов. Ниже приведены поля в таблице атрибутов с описанием. ObjectID: Управляемое системой поле ID. Shape: Поле геометрии, показывающее географическое положение объекта сетевого анализа. Name: Имя барьера. | Feature Set |
Polygon_Barriers (дополнительно) | Определяет полигональные барьеры, которые разделены на два типа: ограничения и полигональные барьеры масштабированной стоимости. Они временно ограничивают перемещение или масштабируют импеданс в покрываемых ими частях сети. Полигональные барьеры задаются набором объектов, а значения атрибута, которые вы указываете для полигональных объектов, определяют, являются ли они ограничениями или барьерами дополнительной стоимости. Ниже приведены поля в таблице атрибутов с описанием. ObjectID: Управляемое системой поле ID. Shape: Поле геометрии, показывающее географическое положение объекта сетевого анализа. Name: Имя барьера. BarrierType: Указывает, ограничивает ли барьер перемещение полностью или масштабирует стоимость прохождения через него. Существует две опции:
Используйте значение 0 для Ограничения и 1 для Масштабированной стоимости. ScaledCostFactor: ScaledCostFactor указывает величину, на которую умножается импеданс при перемещении области обслуживания через барьер. | Feature Set |
Time_Attribute (дополнительно) | Определяет сетевой атрибут стоимости для использования, если для Единиц граничных значений заданы единицы времени. Инструмент выполняет необходимые преобразования единиц времени в том случае, если Единицы граничных значений отличаются от заданных здесь единиц атрибута стоимости. Другими словами, временные единицы граничных значений и сетевой атрибут стоимости не обязательно должны быть одинаковыми. Значение этого параметра перезаписывается, если для Режима передвижения (Travel_Mode в Python) установлено не пользовательское значение. | String |
Time_Attribute_Units (дополнительно) | Единицы сетевого атрибута стоимости, определенного параметром Атрибут времени (Time Attribute). Это просто информационный параметр, который можно изменить только прямым редактированием набора сетевых данных. Нет необходимости его изменять, поскольку преобразование единиц граничных значений в единицы атрибута стоимости выполняется автоматически. Значение этого параметра перезаписывается, если для Режима передвижения (Travel_Mode в Python) установлено не пользовательское значение. | String |
Distance_Attribute (дополнительно) | Определяет сетевой атрибут стоимости для использования, если для Единиц граничных значений заданы единицы расстояния. Инструмент выполняет необходимые преобразования единиц расстояния в том случае, если Единицы граничных значений отличаются от заданных здесь единиц атрибута стоимости. Другими словами, единицы расстояния для граничных значений и сетевого атрибута стоимости не обязательно должны быть одинаковыми. Значение этого параметра перезаписывается, если для Режима передвижения (Travel_Mode в Python) установлено не пользовательское значение. | String |
Distance_Attribute_Units (дополнительно) | Единицы сетевого атрибута стоимости, определенные параметром Атрибут расстояния (Distance Attribute). Это просто информационный параметр, который можно изменить только прямым редактированием набора сетевых данных. Нет необходимости его изменять, поскольку преобразование единиц граничных значений в единицы атрибута стоимости выполняется автоматически. Значение этого параметра перезаписывается, если для Режима передвижения (Travel_Mode в Python) установлено не пользовательское значение. | String |
Use_Hierarchy_in_Analysis (дополнительно) |
Этот параметр отключен, если в наборе сетевых данных, используемом для выполнения анализа, не задан атрибут иерархии. Вы можете задать с помощью параметра Использовать иерархию, если расстояние превышает (Force Hierarchy Beyond Distance), обязательное использование иерархии механизмом расчета, даже когда параметр Использовать иерархию в анализе (Use Hierarchy in Analysis) имеет значение Ложь. Этот параметр игнорируется, если только для Режима передвижения (Travel Mode) не выбрано Пользовательский (Custom). При моделирования в режиме построения маршрута для пешехода рекомендуется выключить иерархию, поскольку она разработана для построения маршрутов автомобилей.
Параметр не используется, если в наборе сетевых данных, используемом для выполнения анализа, не задан атрибут иерархии. В таких случаях используйте в качестве значения параметра "#". Вы можете использовать параметр Force_Hierarchy_Beyond_Distance для использования иерархии при нахождении маршрута, даже если для параметра Use_Hierarchy_in_Analysis установлено значение False. Этот параметр игнорируется, если для параметра Travel_Mode не установлено значение CUSTOM. При моделирования в режиме построения маршрута для пешехода рекомендуется выключить иерархию, поскольку она разработана для построения маршрутов автомобилей. | Boolean |
Restrictions [restriction,...] (дополнительно) | Определяет, какие сетевые атрибуты ограничения будут учитываться во время расчета. Значение этого параметра перезаписывается, если для Режима передвижения (Travel_Mode в Python) установлено не пользовательское значение. | String |
Attribute_Parameter_Values (дополнительно) | Определяет значения параметра для атрибутов сети, имеющих параметры. Набор записей имеет два столбца, которые используются вместе для уникальной идентификации параметров, а также другой столбец, который определяет значение параметра. Значение этого параметра перезаписывается, если для Режима передвижения (Travel_Mode в Python) установлено не пользовательское значение. Набор записей значений параметра атрибута имеет связанные атрибуты. Ниже приведены поля в таблице атрибутов с описанием. ObjectID: Управляемое системой поле ID. AttributeName: Имя сетевого атрибута, чей параметр атрибута задан строкой таблицы. ParameterName: Имя параметра атрибута, чье значение задано строкой таблицы. (Параметры типа объекта не могут быть обновлены с помощью данного инструмента.) ParameterValue: Значение, которое вы хотите задать для параметра атрибута. Если значение не указано, для параметра атрибута устанавливается значение NULL. | Record Set |
Maximum_Snap_Tolerance (дополнительно) | Максимальный допуск замыкания представляет собой самое дальнее расстояние, которое использует Network Analyst для поиска расположения или повторного расположения точки на сети. Выполняется поиск подходящих ребер или соединений, далее выполняется замыкание точки на ближайший объект. Если подходящее положение не было найдено в пределах максимального допуска замыкания, то объект обозначается, как неразмещенный. | Linear unit |
Exclude_Restricted_Portions_of_the_Network (дополнительно) |
| Boolean |
Feature_Locator_WHERE_Clause (дополнительно) | Выражение SQL, используемое для создания поднабора исходных пространственных объектов, определяющего элементы сети, на которых могут быть расположены пункты обслуживания. Синтаксис данного параметра состоит их двух частей: первая – имя источника класса пространственных объектов (после которого имеется пробел), вторая – выражение SQL. Чтобы записать выражение SQL для двух или более классов пространственных объектов, их необходимо разделить точкой с запятой. Чтобы пункты обслуживания не располагались на шоссе с ограниченным доступом, например, напишите выражение SQL, аналогичное следующему, с целью исключить такие источники объектов: "Streets" "FUNC_CLASS not in('1', '2')". Обратите внимание, что барьеры игнорируют Условие Where локатора объектов во время загрузки. | String |
Polygons_for_Multiple_Facilities (дополнительно) | Выберите способ создания полигонов областей обслуживания в случае наличия в анализе нескольких пунктов обслуживания.
| String |
Polygon_Overlap_Type (дополнительно) | Указывает опцию создания концентрических полигонов обслуживания в виде кругов или колец. Этот параметр применяется только при задании нескольких граничных значений для пунктов обслуживания.
| String |
Detailed_Polygons (дополнительно) | Определяет параметр создания генерализованных или детализированных полигонов.
| Boolean |
Polygon_Trim_Distance (дополнительно) | Используется для указания расстояния, в пределах которого полигон обрезается. Это может быть необходимо, когда ваши данные являются разреженными, и вы не желаете охватывать области обслуживания, не содержащие пространственных объектов. Отсутствие значения или нулевое значение для данного параметра означает, что полигоны области обслуживания не следует обрезать. При использовании иерархии значение данного параметра игнорируется. | Linear unit |
Polygon_Simplification_Tolerance (дополнительно) |
Определяет степень упрощения геометрии полигона. Упрощение сохраняет исходную форму с использованием основных точек полигона и удаляет все остальные точки. Указываемое расстояние упрощения является максимальным допустимым смещением упрощенного полигона по отношению к исходному. Упрощение полигона уменьшает количество вершин и приводит к сокращению времени отработки. | Linear unit |
Maximum_Facilities (дополнительно) | Ограничивает количество пунктов обслуживания, которые могут быть добавлены в анализ области обслуживания. Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Например, вы можете присвоить низкое значение данному параметру для бесплатной версии созданного вами сервиса, и использовать более высокое значение для версии сервиса с оплачиваемой подпиской. Значение NULL соответствует отсутствию ограничений. | Long |
Maximum_Number_of_Breaks (дополнительно) | Ограничивает количество граничных значений, которые могут быть добавлены в анализ области обслуживания. Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Например, вы можете присвоить низкое значение данному параметру для бесплатной версии созданного вами сервиса, и использовать более высокое значение для версии сервиса с оплачиваемой подпиской. Значение NULL соответствует отсутствию ограничений. | Long |
Maximum_Features_Affected_by_Point_Barriers (дополнительно) | Ограничивает количество объектов, на которые влияют точечные барьеры Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Например, вы можете присвоить низкое значение данному параметру для бесплатной версии созданного вами сервиса, и использовать более высокое значение для версии сервиса с оплачиваемой подпиской. Значение NULL соответствует отсутствию ограничений. | Long |
Maximum_Features_Affected_by_Line_Barriers (дополнительно) |
Ограничивает количество объектов, на которые влияют линейные барьеры Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Например, вы можете присвоить низкое значение данному параметру для бесплатной версии созданного вами сервиса, и использовать более высокое значение для версии сервиса с оплачиваемой подпиской. Значение NULL соответствует отсутствию ограничений. | Long |
Maximum_Features_Affected_by_Polygon_Barriers (дополнительно) |
Ограничивает количество объектов, на которые влияют полигональные барьеры. Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Например, вы можете присвоить низкое значение данному параметру для бесплатной версии созданного вами сервиса, и использовать более высокое значение для версии сервиса с оплачиваемой подпиской. Значение NULL соответствует отсутствию ограничений. | Long |
Maximum_Break_Time_Value (дополнительно) | Ограничивает величину параметра Граничное значение (Break Value), которое может использоваться при расчете областей обслуживания на основании времени. Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Например, вы можете присвоить низкое значение данному параметру для бесплатной версии созданного вами сервиса, и использовать более высокое значение для версии сервиса с оплачиваемой подпиской. Значение NULL соответствует отсутствию ограничений. | Double |
Maximum_Break_Distance_Value (дополнительно) | Ограничивает величину параметра Граничное значение (Break Value), которое может использоваться при расчете областей обслуживания на основании расстояния. Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Например, вы можете присвоить низкое значение данному параметру для бесплатной версии созданного вами сервиса, и использовать более высокое значение для версии сервиса с оплачиваемой подпиской. Значение NULL соответствует отсутствию ограничений. | Double |
Force_Hierarchy_beyond_Break_Time_Value (дополнительно) | Определяет граничное значение, после которого механизм расчета применит иерархию даже в том случае, если иерархия не была разрешена при вычислении областей обслуживания на основании времени. Вычисление областей обслуживания для высоких граничных значений при использовании сетевой иерархии приводит к выполнению меньшего объема обработки, чем вычисление аналогичных областей обслуживания без использования иерархии. Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Значение NULL означает, что использование иерархии будет определяться только значением параметра Использовать иерархию в анализе (Use Hierarchy in Analysis). Если входной набор сетевых данных не поддерживает иерархию, то указание значения для данного параметра приведет к ошибке. В этом случае необходимо использовать значение NULL. | Double |
Force_Hierarchy_beyond_Break_Distance_Value (дополнительно) | Определяет граничное значение, после которого механизм расчета применит иерархию даже в том случае, если иерархия не была разрешена при вычислении областей обслуживания на основании расстояния. Вычисление областей обслуживания для высоких граничных значений при использовании сетевой иерархии приводит к выполнению меньшего объема обработки, чем вычисление аналогичных областей обслуживания без использования иерархии. Данный параметр помогает регулировать объем вычислений, необходимый для получения решения. Значение NULL означает, что использование иерархии будет определяться только значением параметра Использовать иерархию в анализе (Use Hierarchy in Analysis). Если входной набор сетевых данных не поддерживает иерархию, то указание значения для данного параметра приведет к ошибке. В этом случае необходимо использовать значение NULL. | Double |
Save_Output_Network_Analysis_Layer (дополнительно) |
В любом случае возвращается класс объектов с полигонами областей обслуживания. Администратор сервера может выбрать вывод слоя сетевого анализа, при этом настройка и результаты работы инструмента могут быть отлажены с использованием средств управления Network Analyst в среде ArcGIS for Desktop. Это намного упрощает процесс отладки. В ArcGIS for Desktop выходное местоположение слоя сетевого анализа по умолчанию – это временная папка. Вы можете определить местоположение временной папки по значению arcpy.env.scratchFolder параметра среды геообработки. Выходной слой сетевого анализа хранится в виде LYR-файла, имя которого начинается на _ags_gpna, а затем следует буквенно-числовое значение GUID. | Boolean |
Time_Zone_for_Time_of_Day (дополнительно) | Указывает часовой пояс или пояса параметра Время суток (Time of Day).
Вне зависимости от значения параметра Часовой пояс для времени суток (Time Zone for Time of Day) все пункты обслуживания должны быть в одном часовом поясе, когда параметр Время суток (Time of Day) имеет ненулевое значение, и параметром Полигоны для нескольких пунктов обслуживания (Polygons for Multiple Facilities) задано создание объединенных или неперекрывающихся полигонов. | String |
Travel_Mode (дополнительно) | Выберите вид транспорта для анализа. Всегда можно выбрать CUSTOM. Чтобы появились другие режимы, они должны быть представлены в наборе сетевых данных в параметре Network_Dataset. (Функция arcpy.na.GetTravelModes содержит словарь объектов режима движения для класса сетевых объектов, а свойство name возвращает имя объекта режима передвижения.) Если режим определен в наборе сетевых данных и обеспечивает замещение значений параметров для моделирования маршруты передвижения легковых и грузовых автомобилей, пешеходов и других режимы передвижения. Выбрав режим здесь, вам не требуется указывать значения для следующих параметров, которые замещаются значениями, указанными в наборе сетевых данных:
| String |
Пример кода
GenerateServiceAreas, пример 1 (окно Python)
Выполнение инструмента с использованием необходимых параметров из окна Python.
import arcpy
facilities = arcpy.FeatureSet()
facilities.load("FireStations")
arcpy.na.GenerateServiceAreas(facilities, "1 2 3", "Minutes", "Streets_ND",
"in_memory\\FireStationServiceAreas")
GenerateServiceAreas, пример 2 (автономный скрипт Python)
В следующем автономным скрипте Python показано, как GenerateServiceAreas может использоваться для определения достижения магазина за определенное время. Он показывает процесс создания 5-минутной области обслуживания вокруг положения магазина в различное время дня. Такой тип анализа может быть полезен, например, для магазина пиццы, чтобы проследить изменение области обслуживания в 5-минутной доступности в зависимости от текущих условий дорожного движения.
# Name: GenerateServiceAreas_Workflow.py
# Description: Generate a 5 minute service area around a store location at
# different times in a day. Such analysis can be useful, for example
# for a pizza store, to see how the area that can be reached within
# 5 minutes from the store changes based on the current traffic
# conditions.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
import datetime
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"
impedanceAttribute = "TravelTime"
breakValues = "5"
breakUnits = "Minutes"
inFacilities = "Analysis/ExistingStore"
outGeodatabase = "C:/data/output/ServiceAreaOutput.gdb"
serviceArea = "in_memory\\ServiceAreas"
dateFieldName = "StartTime"
nameField = "Name"
#use today at 8 AM as the start time and then increment it by one hour
startTime = datetime.datetime(1899,12,30,8,0,0)
#Create a new feature set with same schema as Facilities parameter in
#Generate Service Areas tool. Load the feature from the ExistingStore
#feature class in the feature set
facilities = arcpy.GetParameterValue("GenerateServiceAreas_na",0)
facilities.load(inFacilities)
#Create an empty feature class with same spatial reference as the
#network dataset and a Date field called StartTime and a text field called Name
outServiceAreas = arcpy.management.CreateFeatureclass(outGeodatabase, "ServiceAreas",
"POLYGON","","","",
inNetworkDataset).getOutput(0)
arcpy.management.AddField(outServiceAreas, dateFieldName, "DATE")
arcpy.management.AddField(outServiceAreas, nameField, "TEXT")
#Open an insert cursor on the feature class to add new polygons
cursor = arcpy.da.InsertCursor(outServiceAreas, ("SHAPE@", nameField,
dateFieldName))
#Geneate a 5 minute service area around the store at every one hour interval
#from 8 AM to 8 PM. Copy the output service area to a new feature class
for i in range(1,14):
timeFormat = startTime.time().strftime("%I %p")
print "Generating {0} {1} service area at {2}".format(breakValues,breakUnits,
timeFormat)
arcpy.na.GenerateServiceAreas(facilities,breakValues,breakUnits,
inNetworkDataset, serviceArea, "TRAVEL_FROM",
startTime, Time_Attribute=impedanceAttribute)
#Get the shape from the output service area so that it can be inserted
#in the feature class
with arcpy.da.SearchCursor(serviceArea,("SHAPE@", nameField)) as inputRows:
row = inputRows.next()
cursor.insertRow((row[0],row[1],startTime))
startTime = startTime + datetime.timedelta(seconds=3600)
del cursor
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: Требует Network Analyst
- ArcGIS for Desktop Standard: Требует Network Analyst
- ArcGIS for Desktop Advanced: Требует Network Analyst