Подпись | Описание | Тип данных |
Входные объекты |
Входные точечные, линейные или полигональные объекты, вокруг которых будет строиться буфер. | Feature Layer |
Выходной класс объектов |
Класс пространственных объектов, содержащий выходные буферы. | Feature Class |
Расстояние [значение или поле] |
Расстояние вокруг входных объектов, для которых будут построены буферные полигоны. Расстояния могут быть представлены либо значением линейного расстояния, либо полем входных объектов, содержащим расстояние для буферизации каждого объекта. Если линейные единицы не заданы или введены как Неизвестные, используются линейные единицы пространственной привязки входных объектов. | Linear Unit; Field |
Тип стороны (Дополнительный) | Указывает стороны входных объектов, для которых будут построены буферные зоны. Этот параметр поддерживается только для линейных и полигональных объектов.
Лицензия:Этот дополнительный параметр не доступен с лицензией Desktop Basic или Desktop Standard. | String |
Тип окончания (Дополнительный) | Задает форму буферного полигона на конце линейных входных объектов. Этот параметр нельзя использовать для полигональных входных объектов.
Лицензия:Этот дополнительный параметр не доступен с лицензией Desktop Basic или Desktop Standard. | String |
Тип слияния (Дополнительный) | Определяет тип слияния, который будет выполнен для удаления перекрытия буферов.
| String |
Поля слияния (Дополнительный) |
Список полей из входных объектов, по которым будет выполнено слияние итоговых буферов. Буферные полигоны, имеющие общие атрибутивные значения в перечисленных полях (переносятся из входных объектов), будут объединены в один объект. | Field |
Метод (Дополнительный) | Определяет метод для построения буферных полигонов: планарный или геодезический.
| String |
Краткая информация
Создает буферные полигоны вокруг входных объектов для заданного расстояния.
Для операций построения буферов доступны и другие инструменты. Дополнительную информацию см. в документации к инструментам Попарный буфер и Графический буфер.
Иллюстрация
Использование
Как описано в статье Как работает инструмент Буфер, важным параметром инструмента Буфер является Метод, который определяет, каким именно образом будут построены буферные зоны. Два основных метода создания буферных зон, Евклидов и геодезический, описаны ниже:
- Евклидов буфер измеряет расстояния в двухмерной координатной плоскости, где расстояние между двумя точками на плоскости измеряется на плоской поверхности. Евклидовы буферы подходят для анализа расстояния вокруг объектов в системе координат проекции, для относительно небольших областей (например, в одной зоне UTM).
- Геодезические буферы строятся с учетом реальной формы поверхности Земли (эллипсоида, а точнее – геоида). Расстояния измеряются между двумя точками на сферической поверхности (геоида). Геодезический буфер подойдет для применения в следующих случаях:
- Входные объекты располагаются далеко друг от друга (в разных зонах UTM, разных регионах мира и т.п.)
- Пространственная привязка (проекция карты) входных объектов сильно искажает реальные расстояния, но сохраняет другие свойства, например, площадь.
Параметр Метод определяет, как будут строиться буферные зоны.
- Опция Планарный используется по умолчанию. Эта опция автоматически определяет подходящий метод в зависимости от системы координат входных объектов.
- Если входные объекты имеют систему координат проекции, будут построены Евклидовы буферы.
- Если входные данные буфера заданы в географической системе координат (не в проекции) и вы указали значение Буферное расстояние в линейных единицах (метрах, футах и т.д., в противоположность угловым единицам, таким как градусы), будет использоваться алгоритм геодезического буфера.
- При выборе этой опции будет получен тот же результат, который получился бы при работе инструмента Буфер в версиях ArcGIS ранее, чем 10.3.
- Опция Геодезический создает сохраняющие форму геодезические буферные зоны для любой входной системы координат. Входные объекты уплотнены, чтобы создаваемые буферные полигоны более четко воспроизводили форму входных объектов. В некоторых случаях использование этой опции приведет к тому, что на построение геодезических буферов затрачивается больше времени, чем с опцией Планарный. Но результирующий буфер будет точнее соответствовать форме входного объекта.
Примечание:
Систему координат класса объектов можно изменить при помощи инструмента Проецировать, или можно установить параметр среды Выходная система координат до использования инструмента Буфер, и эта система координат будет использоваться при создании буферных зон.
При использовании опции Планарный можно повысить точность построения буферных зон, созданных по спроецированным входным данным, используя проекцию, минимизирующую искажение расстояний, например, Равнопромежуточную коническую или Равнопромежуточную азимутальную, и, с географической точки зрения, подходящую для входных данных.
Если входные данные в системе координат проекции, а выходные данные являются классом объектов базы геоданных, выходные данные могут содержать сегменты дуг окружности. Если входные данные - класс точечных объектов, выходные данные всегда будут представлять собой сегменты дуг окружностей. Если дуги окружностей находятся в другой системе координат, местоположение и размер исходных буферов будет преобразован. Форма буферов не изменится, а спроецированные буферы будут не точно воспроизводить область, покрываемую исходными буферами. Если вы перепроецируете дуги окружности, сначала воспользуйтесь инструментом Уплотнить для конвертации сегментов дуги окружности в прямые линии, а затем перепроецируйте уплотненные буферы.
Выходной класс объектов будет включать в себя поле BUFF_DIST, содержащее буферное расстояние, использованное для построения буфера вокруг каждого пространственного объекта, в линейных единицах системы координат входных объектов. При использовании опции Геодезический для построения буферных зон, буферное расстояние будет конвертировано в метры.
Если поле BUFF_DIST уже существует во входных объектах, его значения будут перезаписаны. Если используется Тип слияния Все или Список, выходной класс объектов не будет содержать это поле.
Выходной класс объектов будет содержать поле ORIG_FID, содержащее ID входного объекта, для которого был создан буфер. Если поле ORIG_FID уже существует во входных объектах, его значения будут перезаписаны. Если используется Тип слияния Все или Список, выходной класс объектов не будет содержать это поле.
При создании буферных полигонов вокруг полигональных объектов, могут использоваться отрицательные буферные расстояния для создания буферов внутри полигональных объектов. При использовании отрицательного буферного расстояния границы полигона уменьшатся на заданное расстояние.
Внимание:
Если отрицательное буферное расстояние достаточно большое, чтобы свернуть полигон, будет создана нулевая геометрия. Будет выведено предупреждающее сообщение, и объекты с не нулевой геометрией будут записаны в выходной класс объектов.
Вы можете использовать атрибутивное поле из входных данных для указания буферных расстояний. Допустимы как числовые, так и текстовые форматы полей. В текстовом поле буферное расстояния может быть задано числом, например 5, а может быть с корректными линейными единицами измерения, например, 5 километров.
Если использовать число без линейных единицы измерения, буферное расстояние будет рассчитано с использованием единиц измерения пространственной привязки входного слоя. Если входной слой в географической системе координат, буферное расстояние берется в метрах.
Если линейные единицы измерения не распознаны, буферное расстояние будет рассчитано с использованием единиц измерения пространственной привязки входного слоя. Подробнее о корректных линейных единицах измерения см Линейные единицы измерения.
Операции Буфер не поддерживают перенос z-значений из входных в выходные объекты буферов.
Операции Буфер не поддерживают m-значений из входных в выходные объекты буферов.
Лицензия:
Опции Слева, Справа и Исключить входной полигон из буфера параметра Тип стороны и опция Плоский параметра Тип окончания доступны только при наличии лицензии Desktop Advanced.
Параметры
arcpy.analysis.Buffer(in_features, out_feature_class, buffer_distance_or_field, {line_side}, {line_end_type}, {dissolve_option}, {dissolve_field}, {method})
Имя | Описание | Тип данных |
in_features |
Входные точечные, линейные или полигональные объекты, вокруг которых будет строиться буфер. | Feature Layer |
out_feature_class |
Класс пространственных объектов, содержащий выходные буферы. | Feature Class |
buffer_distance_or_field |
Расстояние вокруг входных объектов, для которых будут построены буферные полигоны. Расстояния могут быть представлены либо значением линейного расстояния, либо полем входных объектов, содержащим расстояние для буферизации каждого объекта. Если линейные единицы не заданы или введены как Неизвестные, используются линейные единицы пространственной привязки входных объектов. При определении расстояния в скриптах, если желаемая линейная единица обозначается двумя словами, например Decimal Degrees, объедините два слова в одно (например, 20 DecimalDegrees). | Linear Unit; Field |
line_side (Дополнительный) |
Указывает стороны входных объектов, для которых будут построены буферные зоны. Этот параметр поддерживается только для линейных и полигональных объектов.
Лицензия:Этот дополнительный параметр не доступен с лицензией Desktop Basic или Desktop Standard. | String |
line_end_type (Дополнительный) |
Задает форму буферного полигона на конце линейных входных объектов. Этот параметр нельзя использовать для полигональных входных объектов.
Лицензия:Этот дополнительный параметр не доступен с лицензией Desktop Basic или Desktop Standard. | String |
dissolve_option (Дополнительный) |
Определяет тип слияния, который будет выполнен для удаления перекрытия буферов.
| String |
dissolve_field [dissolve_field,...] (Дополнительный) |
Список полей из входных объектов, по которым будет выполнено слияние итоговых буферов. Буферные полигоны, имеющие общие атрибутивные значения в перечисленных полях (переносятся из входных объектов), будут объединены в один объект. | Field |
method (Дополнительный) |
Определяет метод для построения буферных полигонов: планарный или геодезический.
| String |
Пример кода
Скрипт окна Python, демонстрирующий использование функции Buffer.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.analysis.Buffer("roads", "C:/output/majorrdsBuffered", "100 Feet", "FULL",
"ROUND", "LIST", "Distance")
Поиск областей с соответствующим типом растительности с исключением областей, расположенных вблизи от основных магистралей.
# Name: Buffer.py
# Description: Find areas of suitable vegetation that exclude areas heavily
# impacted by major roads
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
# Select suitable vegetation patches from all vegetation
veg = "vegtype"
suitableVeg = "C:/output/Output.gdb/suitable_vegetation"
whereClause = "HABITAT = 1"
arcpy.analysis.Select(veg, suitableVeg, whereClause)
# Buffer areas of impact around major roads
roads = "majorrds"
roadsBuffer = "C:/output/Output.gdb/buffer_output"
distanceField = "Distance"
sideType = "FULL"
endType = "ROUND"
dissolveType = "LIST"
dissolveField = "Distance"
arcpy.analysis.Buffer(roads, roadsBuffer, distanceField, sideType, endType,
dissolveType, dissolveField)
# Erase areas of impact around major roads from the suitable vegetation patches
eraseOutput = "C:/output/Output.gdb/suitable_vegetation_minus_roads"
xyTol = "1 Meters"
arcpy.analysis.Erase(suitableVeg, roadsBuffer, eraseOutput, xyTol)
Параметры среды
Особые случаи
- Коэффициент параллельной обработки
Инструмент учитывает параметр среды Коэффициент параллельной обработки. Если параметр среды не задан (используется значение по умолчанию) или указан как 0, параллельная обработка будет отключена; параллельная обработка не будет применена и процессы будет выполнены последовательно. Установка параметра среды на 100 активирует параллельную обработку; параллельная обработка будет применена, и процессы будет выполняться параллельно. Если параллельная обработка включена, используется до 10 ядер.
Параметр среды Коэффициент параллельной обработки поддерживается, только если буферы строятся вокруг линейных или полигональных объектов.
Информация о лицензиях
- Basic: Ограниченные
- Standard: Ограниченные
- Advanced: Да