Буфер (Buffer) (Покрытие)
Резюме
Создает буферные полигоны вокруг заданных объектов входного покрытия.
Более подробно о том, как работает инструмент Буфер (Buffer)
Рисунок
Использование
-
Опция POLY позволяет использовать для буферного расстояния положительные и отрицательные расстояния. Когда элемент буфера содержит положительные и отрицательные числа, можно в одном и том же покрытии уменьшить одни полигоны и увеличить другие.
-
Опции ROUND, FLAT, FULL, LEFT и RIGHT применимы только к линейным данным.
-
Инструмент Буфер (Buffer) может создавать небольшие полигоны-клинья. Они могут вызвать проблемы, если закодированы как не буферные области внутри буферных зон. Удалите их с помощью инструмента Удаление (Eliminate).
-
Пространственные объекты не будут буферизованы, если их буферное расстояние равно нулю. Если буферизовать объект во входном покрытии не нужно, задайте его буферному расстоянию значение 0 в поле буфера или DIST в таблице буфера.
-
При создании буфера для покрытия, содержащего изолированные полигоны, все полигоны с буферным расстоянием больше 0 буферизуются. Однако, поскольку изолированный буфер находится полностью внутри окружающего его полигонального буфера, он сливается с окружающим полигоном в ходе слияния, производимого инструментом Буфер (Buffer), поэтому изолированные полигоны перестанут быть видимыми.
-
Узлы покрытий могут быть буферизованы как с NAT, так и без него. Если NAT отсутствует, узлы в AAT должны быть пронумерованы (FNODE# и TNODE# должны быть больше нуля). Если номера узлов равны нулю, нужно запустить Перенумеровать узлы (Renumber Nodes).
-
Опции СЛЕВА (LEFT) и СПРАВА (RIGHT) создают буферы в левой или правой части линии. Следует проявлять осторожность при интерпретации левой или правой части линии. Единый линейный сегмент определяет две полуплоскости, разрезая прямоугольный буфер на левую и правую части, которые легко различить. При соединении линейных сегментов, точки на левой стороне одного сегмента могут оказаться на правой стороне другого соединяемого сегмента. Этой неоднозначности можно избежать, если не пересекать линию.
-
Опции СЛЕВА (LEFT) и СПРАВА (RIGHT) используют топологические левую и правую сторону линии, поэтому для использования этих опций необходимо иметь топологию линии. Чтобы получить доступ к стилям буфера линии, следует использовать Построить (Build) для входного покрытия с опциями ЛИНИЯ (LINE) и УЗЕЛ (NODE).
-
Функция БУФЕР (BUFFER) работает в евклидовом пространстве и использует двухмерных алгоритм. Буфер будет иметь одинаковую ширину, вне зависимости от системы координат. Он не будет отражать кривизну земной поверхности. Для достижения лучших результатов следует создавать буфер в проекции карты, это позволит минимизировать искажение области интереса.
-
В случае с буферами вокруг линий нечеткий допуск для выходного покрытия может отличаться от нечеткого допуска для входного покрытия. Выходной допуск может быть сброшен как функция буферного расстояния. Это может случиться с большими буферными расстояниями и отражает все более ускоряющуюся аппроксимацию окружности с постоянным количеством сегментов прямой линии. Если избегать этого эффекта, спустя несколько этапов буфер увеличится. Во-первых, запустите Буфер (Buffer) с опцией ЛИНИЯ (LINE), используя небольшое буферное расстояние, затем запустите несколько буферов с опцией POLY, пока не получите желаемого буферного расстояния. Нечеткий допуск изменяется только для буферов вокруг линий, для буферов вокруг полигонов он остается неизменным.
-
Точность координат выходного покрытия определяется текущим правилом обработки, заданным в установках Точности для вычисляемых покрытий (Precision for Derived Coverages). Если в ходе текущего сеанса правило обработки не установлено, тогда оно будет иметь значение НАИВЫСШЕЕ (HIGHEST). Это значит, что Буфер (Buffer) создаст выходное покрытие с той же точностью, что и входное.
-
Для покрытий как одинарной (single-precision), так и двойной точности (double-precision), Буфер (Buffer) рассчитывает минимальный допуск на основе математической точности покрытия (которая основывается на ширине BND и количестве десятичных знаков). Если рассчитанный минимальный допуск больше установленного нечеткого допуска, используется минимальный допуск.
Дополнительные сведения о вычислении нечеткого допуска по умолчанию (Learn more about how the default fuzzy tolerance is calculated)
-
Файл проекции (PRJ) будет скопирован в выходное покрытие.
Синтаксис
Параметр | Объяснение | Тип данных |
in_cover |
Покрытие, содержащее буферизуемые объекты. | Coverage |
out_cover |
Создаваемое покрытие полигонального буфера. | Coverage |
feature_type (дополнительно) |
Буферизуемый класс пространственных объектов:
| String |
buffer_item (дополнительно) |
Элемент таблицы атрибутов объектов входного покрытия, чье значение используется в качестве буферного расстояния объекта. Если используется таблица буфера, поле буфера функционирует как элемент поиска в таблице буфера. | String |
buffer_table (дополнительно) |
Таблица справочной перекодировки INFO, которая приводит буферное расстояние для каждого поля буфера. Таблица буфера может быть указана, только если указано поле буфера. Таблица буфера содержит, по крайней мере, два поля:
| INFO Table |
buffer_distance (дополнительно) |
Расстояние, использующееся для создания буферных зон вокруг объектов входного покрытия, когда поле и таблица буфера не указаны. По умолчанию, буферное расстояние составляет 0,125 единиц покрытия. Это буферное расстояние по умолчанию будет применяться всегда, когда не задано значение для этого параметра. Минимальное буферное расстояние, которое может быть вычислено, составляет 0,00000005 единиц покрытия. Если указать буферное расстояние меньше этого порога, выходное покрытие получится пустым. В случае с полигональными объектами, если используется отрицательное буферное расстояние, буферы будут созданы на внутренней стороне полигонов. | Double |
fuzzy_tolerance (дополнительно) |
Минимальное расстояние между координатами в выходном покрытии. По умолчанию используется минимальное значение нечеткого допуска из in_cover. | Double |
buffer_shape (дополнительно) |
В случае с линиями форма буфера в конечных точках линии.
| String |
buffer_side (дополнительно) |
Для линий топологическая сторона, на которой может быть создан буфер.
| String |
Пример кода
В следующем автономном скрипте показано, как создать буфер вокруг покрытия дороги.
# Name: Buffer_Example.py
# Description: Creates a buffer around a road coverage.
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "road"
outCover = "C:/output/roadbuf"
featureType = "LINE"
bufferDistance = 200
bufferShape = "ROUND"
bufferSide = "FULL"
# Execute Buffer
arcpy.Buffer_arc(inCover, outCover, featureType, "", "", bufferDistance, "",
bufferShape, bufferSide)