Сводка
Создает буферные полигоны вокруг входных объектов на заданном расстоянии, с помощью параллельной обработки.
Инструмент Попарный буфер очень похож на обычный инструмент Буфер. Однако инструмент Попарный буфер может выполнять параллельное построение буферных объектов.
Иллюстрация
Использование
Инструмент учитывает параметр среды Коэффициент параллельной обработки. Если параметры среды не заданы (по умолчанию), или задано значение, равное 100, полная параллельная обработка будет включена, и инструмент будет пытаться распространить выполнение на все логические ядра компьютера. Установка параметры среды равным 0 отключит параллельную обработку. Присвоение коэффициенту значения от 1 до 99 приведет к тому, что инструмент определит процент логических ядер для использования по формуле (Коэффициент параллельной обработки / 100 * Логические ядра), округлив результат до ближайшего целого значения. Если результат равен 0 или 1, параллельная обработка не будет включена.
Инструмент использует только те входные объекты, которые имеют пространственный индекс. Используйте инструмент Добавить пространственный индекс, чтобы его построить (особенно это касается шейп-файлов) или перестроить уже существующий, чтобы он был абсолютно точен.
Как описано в статье Как работает инструмент Буфер, важным параметром инструмента Буфер является Метод , который определяет, каким именно образом будут построены буферные зоны. Два основных метода создания буферных зон, Евклидов и геодезический, описаны ниже:
- Евклидов буфер измеряет расстояния на двухмерной координатной плоскости, где расстояние между двумя точками на плоскости измеряется по прямой, то есть как евклидово расстояние. Евклидовы буферы являются наиболее распространенными и подходят для анализа расстояний вокруг объектов, хранящихся в системе координат проекции , которые сосредоточены на относительно небольшой территории (такой как одна зона UTM).
- Геодезические буферы строятся с учетом реальной формы поверхности Земли ( эллипсоида, а точнее – геоида). Расстояния измеряются между двумя точками на сферической поверхности (геоида), что отличается от измерения того же расстояния на плоскости. Создание геодезических буферов предпочтительно в следующих случаях:
- Входные объекты располагаются далеко друг от друга (в разных зонах UTM, разных регионах мира и т.п.)
- Пространственная привязка (проекция карты) входных объектов сильно искажает реальные расстояния, но сохраняет другие свойства, например, площадь.
Параметр Метод определяет, какой тип буферных зон будет построен.
- Опция по умолчанию –Плоскостной (method="PLANAR" в Python). Эта опция автоматически определяет подходящий метод в зависимости от системы координат входных объектов.
- Если входные объекты имеют систему координат проекции, будут построены Евклидовы буферы.
- Если входные данные буфера заданы в географической системе координат (не в проекции) и вы указали Буферное расстояние в линейных единицах (метрах, футах и т.д., а не в угловых единицах, например, градусах), будет использоваться алгоритм геодезического буфера.
- При выборе этой опции будет получен тот же результат, который получился бы при работе инструмента Буфер в версиях до ArcGIS 10.3.
- Геодезические (method="GEODESIC" в Python) создает геодезические буферные зоны на реальной поверхности Земли независимо от системы координат входных объектов. Такой тип буфера уплотняет входные объекты перед созданием выходных геодезических буферов, чтобы построенные буферы максимально соответствовали форме входных данных. Если вы переживаете по поводу формы буферных зон и их соответствия форме входных объектов, рекомендуется включить эту опцию, особенно если входные данные в географической системе координат. В некоторых случаях на построение геодезических буферов тратится больше времени, чем с опцией Плоскостные, однако результат точнее соответствует форме входного объекта.
Примечание:
Систему координат класса объектов можно изменить при помощи инструмента Проецировать , или можно установить параметр среды геообработки Выходная система координат до использования инструмента Буфер , и эта система координат будет использоваться при создании буферных зон.
При использовании метода Планарный можно повысить точность построения буферных зон, созданных по спроецированным входным данным, используя проекцию которая сводит к минимуму искажение расстояний, например, Равнопромежуточную коническую или Азимутальную равнопромежуточную , и которая, с географической точки зрения, подходит вашим входным данным.
При создании буферных полигонов вокруг объектов, использующих систему координат проекции, с выводом в класс объектов базы геоданных, полученные геометрические формы часто включают в себя сегменты дуг окружности, особенно при создании буферных полигонов вокруг точек. При перепроецировании таких буферов в другие системы координат расположение и размер исходных буферов изменяются, но их форма остается неизменной, и в итоге перепроецированные буферы неточно представляют территорию, которую охватывал исходный буфер. Если нужно перепроецировать буферы, содержащие дуги окружности, сначала воспользуйтесь инструментом Уплотнить для конвертации сегментов дуги окружности в прямые линии, а затем перепроецируйте буферы.
Выходной класс объектов будет включать в себя поле BUFF_DIST , содержащее буферное расстояние, использованное для построения буфера вокруг каждого пространственного объекта, в линейных единицах системы координат входных объектов. При использовании Геодезического метода построения буферных зон, буферное расстояние будет конвертировано в метры в любом случае.
Если поле BUFF_DIST уже существует во входных объектах, его значения будут перезаписаны. Если используется Тип слияния Все или Список (ALL или LIST в Python), выходной класс объектов не будет содержать это поле.
Выходной класс объектов будет иметь поле ORIG_FID , содержащее ID входного объекта, для которого был создан буфер. Если поле ORIG_FID уже существует во входных объектах, его значения будут перезаписаны. Если используется Тип слияния Все или Список, выходной класс объектов не будет содержать это поле.
При создании буферных полигонов вокруг полигональных объектов, могут использоваться отрицательные буферные расстояния для создания буферов внутри полигональных объектов. При использовании отрицательного буферного расстояния границы полигона уменьшатся на заданное расстояние.
Внимание:
Если отрицательное буферное расстояние достаточно большое, чтобы свернуть полигон, будет создана нулевая геометрия. Будет выведено предупреждающее сообщение, и объекты с не нулевой геометрией будут записаны в выходной класс объектов.
Если для получения буферных расстояний используется поле из входных данных, значения поля должны быть или числами (например, 5), или числами с корректными линейными единицами измерения (например, 5 километров). Если значение поля является числом, подразумевается, что это расстояние в линейных единицах пространственной привязки входных данных (кроме случаев, когда входные данные имеют географическую систему координат, в этом случае считается, что значение задано в метрах). Если заданная в значениях поля единица измерения является некорректной или не распознается, по умолчанию будет использоваться единица измерения пространственной привязки входных данных.
Кнопка Добавить поле параметра Поля слияния используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен или не существует его производных данных, параметр Поля слияния может не быть заполнен именами полей. Кнопка Добавить поле позволяет добавить нужные поля в список Полей слияния для ввода данных в диалоговом окне инструмента Буфер .
Синтаксис
PairwiseBuffer(in_features, out_feature_class, buffer_distance_or_field, {dissolve_option}, {dissolve_field}, {method}, {max_deviation})
Parameter | Объяснение | Тип данных |
in_features | Входные точечные, линейные или полигональные объекты, вокруг которых будет строится буфер. | Feature Layer |
out_feature_class | Класс пространственных объектов, содержащий выходные буферы. | Feature Class |
buffer_distance_or_field | Расстояние вокруг входных объектов, для которых будут построены буферные полигоны. Расстояния могут быть представлены либо значением линейного расстояния, либо полем входных объектов, содержащим расстояние для буферизации каждого объекта. Если линейные единицы не заданы или введены как Неизвестные, используются линейные единицы пространственной привязки входных объектов. При определении расстояния в скриптах, если нужная линейная единица обозначается двумя словами, например Decimal Degrees, объедините два слова в одно (например, 20 DecimalDegrees). | Linear Unit; Field |
dissolve_option (Дополнительный) | Тип операции слияния, которая будет использоваться для удаления общих областей буферов.
| String |
dissolve_field [dissolve_field,...] (Дополнительный) | Перечень полей из входных объектов, значение которых будет определять слияние выходных буферных полигонов. Буферные полигоны, имеющие общие атрибутивные значения в перечисленных полях (переносятся из входных объектов), будут объединены в один объект. | Field |
method (Дополнительный) | Определяет метод для построения буферных зон: плоскостные или геодезические.
| String |
max_deviation (Дополнительный) | Максимальное расстояние, на которое итоговая граница полигона буфера может отклоняться от истинной границы буфера. Истинная граница буфера является кривой. Однако итоговая граница полигона представлена как уплотненная линия. Этот параметр можно выбрать, чтобы управлять тем, как выходная граница полигона будет соответствовать истинной границе буфера. Если этот параметр не задан или указан как 0, инструмент будет использоваться максимальное отклонение. Рекомендуется использовать настройки по умолчанию. Существенная потеря производительности (как при работе инструмента, так и при последующем анализе) может произойти если использовать максимальное отклонение сдвига, которое является очень малым. Для получения более подробной информации см. информацию о max_deviationпараметре , которая содержится в разделе об инструменте Уплотнить. | Linear Unit |
Пример кода
Следующий скрипт окна Python демонстрирует, как использовать инструмент PairwiseBuffer.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.PairwiseBuffer_analysis("roads", "C:/output/majorrdsBuffered", "100 Feet", "LIST", "Distance")
Поиск областей с соответствующим типом растительности с исключением областей, расположенных вблизи от основных магистралей.
# Name: PairwiseBuffer.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.Select_analysis(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.PairwiseBuffer_analysis(roads, roadsBuffer, distanceField, 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.Erase_analysis(suitableVeg, roadsBuffer, eraseOutput, xyTol)
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да