Сводка
Строит класс объектов мультипатчей, представляющих границу видимости или объем затенения.
Более подробно о том, как работает инструмент Граница видимости
Иллюстрация
Использование
Граница похожа на веер треугольников, сформированных в результате проведения линии из точки наблюдателя к первой вершине линии горизонта, а затем через все последующие вершины линии горизонта. Этот инструмент можно использовать, чтобы определить, нарушают ли объекты, такие как мультипатчи, представляющие здания, границу, выступая за нее, или изменит ли предполагаемое здание линию горизонта.
Сначала используйте инструмент Линия горизонта для создания линии горизонта или силуэта. Силуэт создаст объемное представление тени, отбрасываемой светом, исходящим из точки наблюдения.
Параметры Минимальный радиус и Максимальный радиус определяют длину ребер треугольников, исходящих из точки наблюдения. Если для параметра Минимальный радиус или Максимальный радиус по умолчанию задано значение 0, то в ходе анализа не используется минимальная или максимальная длина.
Если вы создаете замкнутый мультипатч, выходные данные будут вытянуты с учетом высоты, заданной в параметре Базовая высота, и будет создано горизонтальное кольцо для формирования нижней части замкнутой геометрии. Если заданная базовая высота больше, чем самая высокая вершина на границе видимости, база фактически будет являться потолком.
Новый класс объектов-мультипатчей будет содержать следующие поля:
- OBSV_PT_ID– FID точки наблюдателя, используемый для создания линии горизонта, которая, в свою очередь, использовалась для создания этого мультипатча границы видимости.
- ORIGFTR_ID– FID исходного объекта, например здания, представленного сегментом линии горизонта или силуэта, который использовался для создания этого объемного теневого объекта.
- SILHOUE_ID– FID объекта-мультипатча (силуэта), используемый для создания этого объемного теневого объекта (только для силуэтов).
Синтаксис
arcpy.ddd.SkylineBarrier(in_observer_point_features, in_features, out_feature_class, {min_radius_value_or_field}, {max_radius_value_or_field}, {closed}, {base_elevation}, {project_to_plane})
Параметр | Объяснение | Тип данных |
in_observer_point_features | Класс точечных объектов, содержащий точки наблюдателей. | Feature Layer |
in_features | Входной класс линейных объектов, который представляет линии горизонта, или входной класс объектов-мультипатчей, представляющий силуэты. | Feature Layer |
out_feature_class | Выходной класс объектов, в который помещается граница видимости или объемный теневой объект. | Feature Class |
min_radius_value_or_field (Дополнительный) | Минимальный радиус, до которого необходимо вытянуть ребра треугольника из точки наблюдателя. Например, при значении 10 м все выходные объекты границы будут вытянуты как минимум на 10 м от их исходной точки. Значение по умолчанию равно 0, что означает, что минимальное расстояние не применяется. | Linear Unit; Field |
max_radius_value_or_field (Дополнительный) | Максимальный радиус, до которого необходимо вытянуть ребра треугольника из точки наблюдателя. Значение по умолчанию равно 0, что означает, что максимальное расстояние не применяется | Linear Unit; Field |
closed (Дополнительный) | Указывает, будут ли граница и основание добавлены к границе видимости, чтобы итоговый мультипатч выглядел как замкнутая объемная фигура.
| Boolean |
base_elevation (Дополнительный) | Высота основы замкнутого мультипатча. Этот параметр игнорируется, если параметр closed задан как NO_CLOSED. По умолчанию - 0. | Linear Unit; Field |
project_to_plane (Дополнительный) | Указывает, необходимо ли проецировать передний (ближе к наблюдателю) или задний (дальше от наблюдателя) конец границы на вертикальную плоскость. Обычно задано как PROJECT_TO_PLANE, чтобы создать объемный теневой объект.
| Boolean |
Пример кода
SkylineBarrier, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне 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")
SkylineBarrier, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте 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)
Параметры среды
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst