Граница видимости (Skyline Barrier) (3D Analyst)
Резюме
Создает класс объектов-мультипатчей, представляющих границу видимости или объем затенения.
Дополнительные сведения о работе инструмента Граница видимости (Skyline Barrier)
Рисунок
Использование
Граница похожа на треугольный веер, сформированный в результате создания линии из точки наблюдателя к первой вершине линии горизонта, а затем через все последующие вершины линии горизонта. Этот инструмент можно использовать, чтобы определить, нарушают ли объекты (такие как мультипатчи, представляющие здания) границу, выступая за нее, или изменит ли предполагаемое здание линию горизонта.
Используйте инструмент Линия горизонта (Skyline) сначала для создания линии горизонта или силуэта. Силуэт создаст объемное представление тени, отбрасываемой светом, исходящим из точки наблюдения.
Дополнительные сведения о создании объемов теней (Learn more about creating shadow volumes)
-
Параметры Минимальный радиус (Minimum Radius) и Максимальный радиус (Maximum Radius) определяют длину ребер треугольников, исходящих из точки наблюдения. Если для параметра Минимальный радиус (Minimum Radius) или Максимальный радиус (Maximum Radius) по умолчанию задано значение 0, то в ходе анализа не используется минимальная или максимальная длина.
Если выбрано создание замкнутого мультипатча, выходные данные будут вытянуты с учетом высоты, заданной в параметре Базовая высота (Base Elevation). Также будет создано горизонтальное кольцо для формирования нижней части замкнутой геометрии. Если заданная базовая высота больше, чем самая высокая вершина на границе видимости, база фактически будет являться потолком.
Новый класс объектов-мультипатчей будет иметь следующие поля:
- OBSV_PT_ID – код FID точки наблюдателя, используемый для создания линии горизонта, которая, в свою очередь, использовалась для создания этого мультипатча границы видимости.
- ORIGFTR_ID – код FID исходного объекта, например здания, представленного сегментом линии горизонта или силуэтом, который использовался для создания этого объемного теневого объекта.
- SILHOUE_ID – код FID объекта-мультипатча (силуэта), используемый для создания этого объемного теневого объекта (только для силуэтов).
Синтаксис
Параметр | Объяснение | Тип данных |
in_observer_point_features |
Класс точечных объектов, содержащий точки наблюдателя. | Feature Layer |
in_features |
Входной класс линейных объектов, который представляет линии горизонта, или входной класс объектов-мультипатчей, который представляет силуэты. | Feature Layer |
out_feature_class |
Выходной класс объектов, в который помещается граница видимости или объем тени. | Feature Class |
min_radius_value_or_field (дополнительно) |
Минимальный радиус, до которого необходимо вытянуть ребра треугольника из точки наблюдателя. Значением по умолчанию является 0. Это значит, что минимум отсутствует. | Linear Unit; Field |
max_radius_value_or_field (дополнительно) |
Максимальный радиус, до которого необходимо вытянуть ребра треугольника из точки наблюдателя. Значением по умолчанию является 0. Это значит, что максимум отсутствует. | Linear Unit; Field |
closed (дополнительно) |
Замыкать ли границу видимости границей и основой, чтобы результирующий мультипатч был сплошным.
| Boolean |
base_elevation (дополнительно) |
Высота базы замкнутого мультипатча. Игнорируется, если границу не планируется замыкать. Значение по умолчанию равно 0. | Linear Unit; Field |
project_to_plane (дополнительно) |
Необходимо ли проецировать передний (ближе к наблюдателю) или задний (дальше от наблюдателя) конец барьера на вертикальную плоскость. Этот параметр обычно включен, чтобы создать объем тени.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.SkylineBarrier_3d("observers.shp", "skyline_outline.shp", "barrier_output.shp")
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: Skyline Barrier Example
Description: This script demonstrates how to use the
Skyline Barrier tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inPts = 'observers.shp'
inLine = 'skyline.shp'
outFC = 'output_barriers.shp'
minRadius = '0 METERS'
maxRadius = '200 METERS'
#Execute SkylineBarrier
arcpy.SkylineBarrier_3d(inPts, inLine, outFC, minRadius,
maxRadius, 'CLOSED')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)