Сводка
Создает буферы с указанным расстоянием вокруг входных объектов.
Использование
Параметр Метод определяет, как будут строиться буферы. Существует два основных метода построения: Евклидовы и геодезические буферные зоны.
- Евклидов буфер измеряет расстояния на двухмерной координатной плоскости, где расстояние между двумя точками на плоскости измеряется по прямой, то есть как евклидово расстояние. Евклидовы буферы являются более распространенными и хорошо подходят для анализа расстояний вокруг объектов, хранящихся в системе координат проекции, которые сосредоточены на относительно небольшой территории (такой как одна зона UTM). Евклидовы буферы называются планарными.
- Геодезические буферы строятся с учетом реальной формы поверхности Земли (эллипсоида, а точнее – геоида). Расстояния измеряются между двумя точками на сферической поверхности (геоида), что отличается от измерения того же расстояния на плоскости. Создание геодезических буферов предпочтительно в следующих случаях:
- Входные объекты располагаются далеко друг от друга (в разных зонах UTM, разных регионах мира и т.п.)
- Пространственная привязка (проекция карты) входных объектов сильно искажает реальные расстояния, но сохраняет другие свойства, например, площадь.
Геодезические буферы могут иметь необычную форму на плоской карте, но на глобусе они будут выглядеть корректно.
Параметр Метод определяет, какой тип буферных зон будет построен.
- Планарный (плоскостной) метод автоматически определяет подходящий метод, в зависимости от системы координат входных объектов.
- Если входные объекты имеют систему координат проекции, будут построены Евклидовы буферы.
- Если входные объекты имеют географическую систему координат, будут построены геодезические буферы.
- По умолчанию применяется геодезический. Геодезический метод создает сохраняющий форму геодезический буфер вне зависимости от входной системы координат. Геодезический буфер, сохраняющий форму, уплотняет входные объекты перед созданием выходных геодезических буферов. Это создает буферы, которые более точно представляют форму входных объектов. Если вы переживаете по поводу формы буферных зон и их соответствия форме входных объектов, рекомендуется включить эту опцию, особенно если входные данные в географической системе координат. В некоторых случаях использование опции Планарный может занять больше времени, чем построение геодезического буфера, а результатом будет буфер, более точно повторяющий форму входного объекта.
- Планарный (плоскостной) метод автоматически определяет подходящий метод, в зависимости от системы координат входных объектов.
При использовании метода Планарный можно повысить точность построения буферных зон, созданных по спроецированным входным данным, используя проекцию которая сводит к минимуму искажение расстояний, например, Равнопромежуточную коническую или Азимутальную равнопромежуточную, и которая, с географической точки зрения, подходит вашим входным данным.
При создании буферных полигонов вокруг полигональных объектов, могут использоваться отрицательные буферные расстояния для создания буферов внутри полигональных объектов. При использовании отрицательного буферного расстояния границы полигона уменьшатся на заданное расстояние.
Примечание:
Если отрицательное буферное расстояние достаточно большое, чтобы свернуть полигон, будет создана нулевая геометрия. Будет выведено предупреждающее сообщение, и объекты с не нулевой геометрией будут записаны в выходной набор данных.
Размер буфера можно ввести, используя следующие три способа:
- Расстояние – использует постоянное значение (все буферы будут иметь одинаковый размер)
- Поле – использует значения из поля (различные объекты могут иметь буферы разного размера)
- Выражение –применяет выражение к каждому объекту (различные объекты могут иметь различные значения на основании выражения)
По умолчанию, инструмент Создать буферы создаёт перекрывающиеся буферы, когда области буферов пересекаются. Если входными объектами являются области, входная область будет включена в буфер. Вы можете использовать параметр слияния и составной параметр для управления поведением перекрывающихся буферов. Доступны следующие типы три доступные опции слияния:
- Нет – используется по умолчанию. Буферы будут перекрываться в местах пересечения областей буферов.
- Все – выполняется слияние всех объектов. Составной параметр определяет, будут ли все объекты сливаться в один объект (значение true), или будут сливаться только перекрывающиеся объекты (значение false).
- Поля – слияние объектов будет выполняться на основе значений полей. Вы можете выбрать одно или несколько полей, будет выполняться слияние по одинаковым значениям. Составной параметр определяет, будут ли все объекты с совпадающим полем сливаться в один объект (значение true), или будут сливаться только перекрывающиеся объекты с совпадающим полем (значение false).
Если поле из параметра Входной слой используется для получения буферных расстояний, значение поля может быть либо числом (например, 5), либо числом с допустимой линейной единицей (например, 5 километров). Если значение поля является числом, подразумевается, что это расстояние в линейных единицах пространственной привязки Входного слоя (кроме случаев, когда входной слой имеет географическую систему координат, в этом случае считается, что значение задано в метрах). Если заданная в значении поля единица измерения является некорректной или не распознается, по умолчанию будет использоваться единица измерения пространственной привязки входных объектов.
При выполнении слияния, используя Все или Поля, можно вычислить статистику. Статистика применяется только к слиянию всех объектов или значениям полей, но не применяется географически (используя составной параметр). Следующая таблица объясняет, как данные опции работают при использовании шести объектов, показанных на следующем снимке экрана. Цвет указывает значения полей (синий или оранжевый), которые используются для слияния по полям.
Опция слияния Составной параметр имеет значение false (по умолчанию) Составной параметр имеет значение true Нет Создаются шесть объектов, без применения слияния к объектам, для которых строится буфер. Используется по умолчанию. Это то же самое, что использование для инструмента стандартного анализа опции Перекрытие.
Составной параметр не может иметь значение true, если выбрано значение опции слияния Нет.
все Если все значения сливаются и значение составного параметра равно false, то создаются три объекта. Сливаются только перекрывающиеся объекты. Это то же самое, что использование для инструмента стандартного анализа опции Слияние.
Если все значения сливаются и значение составного параметра равно true, то создается один объект. Если вы выбираете эту опцию, то результатом всегда будет один объект.
Поля Если применяется слияние на основе поля, то создаются четыре объекта (здесь поле имеет цвет входных объектов). Будут сливаться только перекрывающиеся объекты с одним и тем же значением указанных полей.
Если применяется слияние на основе поля и разрешены составные объекты, то создаются два объекта (здесь поле имеет цвет входных объектов). Объекты с одинаковыми значениями поля всегда будут одним объектом.
Можно использовать тип буфера в виде выражение, чтобы создать равенство из числовых полей и математических операторов. Более подробно см. Выражения Arcade в наборе инструментов геоаналитики Desktop. Подразумевается, что числовые значения в выражении буфера заданы в метрах, если не указано иное.
Аналогичный анализ можно выполнить следующим образом:
- Инструмент геообработки ArcGIS Pro Буфер в наборе инструментов Анализ.
- Инструмент геообработки ArcGIS Pro Создать буферы в наборе инструментов Анализ объектов.
Выходной набор данных будет включать в себя поле BUFF_DIST, содержащее буферное расстояние, использованное для построения буфера вокруг каждого пространственного объекта, в линейных единицах системы координат входных объектов. Если задана выходная система координат, единицы измерения BUFF_DIST будут в этой системе координат. Если поле уже существует в выходной таблице в выходной базе геоданных, в конец имени будет добавлена цифра, чтобы сделать имя уникальным (например, BUFF_DIST1).
Можно повысить производительность инструмента Создать буферы, выполнив одно или несколько из следующих действий:
- Установите параметр среды Экстент так, чтобы вы анализировали только интересующие вас данные.
- Используйте планарный буфер.
- Не выполняйте слияние результаты инструменты буфера.
- Используйте локальные данные там, где запускается анализ.
Этот инструмент геообработки работает от Spark. Анализ выполняется на настольном компьютере с использованием нескольких ядер параллельно. См. Информация по инструментами GeoAnalytics Desktop, чтобы узнать больше о выполнении анализа.
При запуске инструментов GeoAnalytics Desktop анализ выполняется на настольном компьютере. Для оптимальной производительности данные должны быть доступны на настольном компьютере. Если вы используете размещенный векторный слой, рекомендуется использовать ArcGIS GeoAnalytics Server. Если данные находятся не на жестком диске, для запуска инструмента потребуется больше времени. Для использования ArcGIS GeoAnalytics Server в целях выполнения анализа см. раздел Инструменты GeoAnalytics.
Синтаксис
arcpy.gapro.CreateBuffers(input_layer, out_feature_class, method, {buffer_type}, {buffer_field}, {buffer_distance}, {buffer_expression}, {dissolve_option}, {dissolve_fields}, {summary_fields}, {multipart})
Parameter | Объяснение | Тип данных |
input_layer | Точечные, полилинейные или полигональные объекты, вокруг которых будет строится буфер. | Feature Layer |
out_feature_class | Новый класс пространственных объектов с выходными буферами. | Feature Class |
method | Задает метод, который будет использован для создания буферов.
| String |
buffer_type (Дополнительный) | Указывает, как будет задаваться буферное расстояние.
| String |
buffer_field (Дополнительный) | Поле, содержащее буферное расстояние для каждого объекта. Если значение поля является числом, подразумевается, что это расстояние в линейных единицах пространственной привязки input_layer, кроме случаев, когда input_layer имеет географическую систему координат, в этом случае считается, что значение задано в метрах. Если заданная в значениях поля единица измерения является некорректной или не распознается, по умолчанию будет использоваться единица измерения пространственной привязки входных объектов. | Field |
buffer_distance (Дополнительный) | Расстояние вокруг входных объектов, для которых будут построены буферные полигоны. Расстояние может выражаться в метрах, километрах, футах, ярдах, милях или морских милях. | Linear Unit |
buffer_expression (Дополнительный) | Выражение, использующее поля и математические операторы, которое будет применено в качестве буфера к каждому объекту. Должны использоваться числовые поля, в выражение могут включаться операторы [+ - * / ] и несколько полей. Вычисленные значения применяются в метрах, если не указано иное. Например, чтобы применить буфер, который вычисляется умножением числового поля distance в километрах на 2 и прибавлением 15 метров. Используйте выражение Arcade, например, as_kilometers($feature["distance"]) * 2 + as_meters(15). | Calculator Expression |
dissolve_option (Дополнительный) | Определяет, будет ли выполнена опция слияния для удаления перекрытия буферов.
| String |
dissolve_fields [dissolve_fields,...] (Дополнительный) | Список одного или нескольких полей из входных объектов, по которым будет выполнено слияние итоговых буферов. Будут объединены любые буферы с общими значениями атрибутов в перечисленных полях. Эта опция необходима, только если для dissolve_option указано LIST. | Field |
summary_fields [summary_fields,...] (Дополнительный) | Задает статистику, которая может применяться к числовым и строковым полям. Если оставить незаполненным, будет вычислено только количество. Эта статистика применяется, только если для dissolve_option указано LIST или ALL.
| Value Table |
multipart (Дополнительный) | Указывает, могут ли быть созданы составные объекты.
| Boolean |
Пример кода
В следующем скрипте окна Python показано, как используется инструмент CreateBuffers.
#-------------------------------------------------------------------------------
# Name: CreateBuffers.py
# Description: Buffer damaged building by 300 meters
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/DamageSurvey.gdb"
# Set local variables
inFeatures = "DamageAssessment"
out = "DangerousAreas"
# Execute Create Buffers
arcpy.gapro.CreateBuffers(inFeatures, out, "GEODESIC", "DISTANCE",
None, "300 Meters", None, "ALL", None, None,
"SINGLE_PART")
Environments
Информация о лицензиях
- Basic: Нет
- Standard: Нет
- Advanced: Да