Доступно с лицензией 3D Analyst.
Инструмент Граница видимости (Skyline Barrier) генерирует поверхности с контролем высоты по линиям горизонта. Они задаются между точками наблюдения и линиями горизонта, связанными с этими точками. Барьеры удобны для сценариев городского планирования, поскольку их можно использовать для определения влияния предполагаемых зданий на линию горизонта. Также они используются для проверки эффекта близости объектов к горизонту.
Этот инструмент также может генерировать объемный теневой объект, который в свою очередь можно использовать, чтобы определить, затеняются ли или скрываются ли эти объекты другими объектами, использующимися для генерации линии горизонта, по которой строится барьер.
Еще один способ построения объемных теневых объектов ― вытягивание силуэтов, сгенерированных инструментом Линия горизонта (Skyline). Описание этого способа см. ниже.
Поверхности управления границами захватываются как объекты мультипатч. Они не являются обычными растровыми или TIN-поверхностями. Каждая из них представляет собой набор граней, полученный построением фигуры, напоминающей веер треугольников между точкой наблюдения и вершинами линии горизонта, соответствующей данной точке.
Для построения барьеров сначала запускается инструмент Линия горизонта (Skyline), затем полученные данные используются в качестве входных для инструмента Граница видимости (Skyline Barrier). Точки сопоставляются с соответствующими линиями с помощью атрибутивных значений FID, которые записываются в класс объектов линий горизонта инструментом Линия горизонта (Skyline).
Для управления размером выходных барьеров используются опции минимального и максимального радиуса. По умолчанию каждый барьер выступает так далеко, как и соответствующая ему линия горизонта, но его можно спроецировать, чтобы убедиться, что он простирается на расстояние минимального радиуса, но не далее чем на расстояние максимального радиуса.
Граница видимости может использоваться вместе с другими инструментами — например, Выбрать в слое по расположению (Select Layer By Location), который находится в наборе Управление данными (Data Management) в группе Слои и представления таблиц (Layers and Table Views), — для определения объектов (например, мультипатчей, отображающих здания), которые нарушают границу, проходя сквозь нее. Граница также может использоваться для определения видимости объектов: если объект находится дальше линии горизонта и ниже ее, он не видим из точки наблюдения.
Граница видимости всегда создается как объект мультипатч. Если выбрать создание замкнутого мультипатча, добавляются верхний край и основание. Верхний край состоит из треугольников, которые направлены вниз (или вверх) от периметра границы видимости к заданной высоте базы, которая представляет собой горизонтальную окружность. Если высота базы находится ниже самой низкой вершины границы видимости и точки наблюдения одновременно или если она выше самой высокой вершины и точки наблюдения, полученный замкнутый мультипатч рассматривается инструментом Замкнутые 3D (Is Closed 3D) как замкнутый. Этот замкнутый мультипатч затем можно использовать в некоторых 3D операциях, например Пересечение 3D (Intersect 3D) и Объединение 3D (Union 3D).
Если вы выбрали замкнутый мультипатч, высота базы должны быть задана либо ниже точки наблюдения и ниже самой низкой вершины линии горизонта, либо выше точки наблюдения и выше самой высокой вершины (или еще выше, если задан минимальный радиус, который приводит к выходу границы видимости за пределы вертикального экстента полилинии горизонта). Если высота базы находится выше границы видимости, она представляет собой скорее потолок, нежели основание.
В отличие от вершины, общей для большинства треугольников границы видимости (т. е., точки наблюдения), вершины треугольников вычисляются по вершинам входной линии. Если вы выбираете замкнутый объект мультипатч, вершины линии горизонта в некотором смысле дублируются, а их z-значения задаются по высоте базы.
Анализ объемного теневого объекта
Инструмент Граница видимости (Skyline Barrier) можно использовать для вычисления объемных теневых объектов, а также для выполнения других связанных задач.
Если включена опция Проекция на плоскость (Project to Plane), два значения, Минимальный радиус (Minimum Radius) и Максимальный радиус (Maximum Radius), приобретают иное значение: Минимальный радиус будет использоваться как расстояние между точкой наблюдения и линией горизонта, у которой начинается барьер (0 или больше); Максимальный радиус используется как расстояние от точки наблюдения до линии горизонта, у которой барьер заканчивается. Значение Максимальный радиус (Maximum Radius) должно быть больше значения Минимальный радиус (Minimum Radius). Для объемных теневых объектов Минимальный радиус обычно задается так, чтобы ближайший (передний) край границы располагался рядом с линией горизонта, тогда как Максимальный радиус обычно достаточно удален, т. е. если наблюдатель находится над линией горизонта, граница видимости заканчивается под поверхностью.
Если значения Минимальный радиус и Максимальный радиус, а также значение Высота базы (Base Elevation) равны 0 по умолчанию, а опция Проекция на плоскость (Project to Plane) включена, инструмент автоматически вычислит значения этих трех параметров.
При включении опции Проекция на плоскость передняя и задняя грани замкнутого мультипатча будут располагаться вертикально в том месте, где линия горизонта проецируется на вертикальную плоскость.
Закрытая граница видимости может служить объемным теневым объектом. Можно проверить другие объекты, такие как точки, отображающие окна здания, чтобы узнать, находятся ли они внутри или вне замкнутого мультипатча, т. е. внутри или вне теневого объекта.
Граница видимости обычно состоит из многих узких треугольников. Если наблюдатель слишком удален, треугольники становятся очень узкими, особенно около точки наблюдения. Если граница замыкается, полученный мультипатч может оказаться неполностью замкнутым. Эту проблему можно обойти с помощью опции Проекция на плоскость (последний параметр), а также выбрав расстояния, при которых замкнутый мультипатч не будет слишком длинным.
Более того, если не включить опцию Проекция на плоскость при нулевых значениях параметров Минимальный радиус и Максимальный радиус, граница будет проходить точно до линии горизонта. Обычно это сложная форма с большим количеством участков, направленных от наблюдателя или к наблюдателю. При этом создается сложный набор треугольников, которые в свою очередь делают правильное замыкание мультипатча маловероятным. Со включенной опцией Проекция на плоскость треугольники вдоль верха границы формируют полосу треугольников (или веер треугольников, если Минимальный радиус равен нулю). Если граница замкнута, передняя и задняя вертикальные грани будут представлять собой кольца.
Для построения отдельной границы (или объемного теневого объекта) для каждого здания, как правило, рекомендуется включить опцию Горизонт сегмента (Segment Skyline) в инструменте Линия горизонта перед построением линии горизонта. Каждая полилиния в линии горизонта имеет параметр FEATURE_ID. Значение 0 или больше означает, что эта полилиния проходит вдоль объекта с этим FID, а значение -1 ― что линия проходит вдоль поверхности. Значение -2 означает участок перехода, который проходит вдоль воображаемой радиальной линии, проходящей от наблюдателя, т. е. для наблюдателя этот участок выглядит как точка. Обычно полилинии с атрибутом меньше 0 игнорируются, если требуется построить границу (особенно объемный теневой объект), основанную на пространственном объекте.
Наблюдатель рассматривается как точка. Это означает, что от наблюдателя исходят расходящиеся лучи. Если наблюдатель достаточно далеко, лучи становятся почти параллельными.
Силуэты и анализ объемного теневого объекта
Инструмент Линия горизонта может использоваться для построения силуэтов пространственных объектов. Затем эти силуэты можно преобразовать в объемные теневые объекты с помощью инструмента Граница видимости. Силуэты используются как еще один метод построения объемных теневых объектов; также можно использовать линии горизонта, как описано выше.
Инструмент Граница видимости можно использовать, если вы задали класс объектов мультипатч для параметра Входные объекты (Input Features) (in_features). При обработке мультипатча инструмент будет действовать иначе, чем при обработке линий. Далее предполагается, что выполняется обработка мультипатча.
Параметр Минимальный радиус (min_radius_value_or_field) задает расстояние по горизонтали от центральной точки входного мультипатча до желаемого начала объемного теневого объекта. Положительные значения означают удаление от наблюдателя. Задание довольно большого отрицательного значения приведет к построению теневого объекта внутри или даже перед исходным объектом (зданием).
Параметр Максимальный радиус (max_radius_value_or_field) задает расстояние по горизонтали от центральной точки входного мультипатча до желаемого конца объемного теневого объекта. Положительные значения означают удаление от наблюдателя. Максимальный радиус должен быть больше Минимального радиуса.
Параметр Замкнутый (closed) игнорируется.
Параметр Высота базы (Base Elevation) (base_elevation) игнорируется.
Параметр Проекция на плоскость (project_to_plane) игнорируется.
Если оставить для всех трех параметров (Минимальный радиус, Максимальный радиус и Высота базы) значение по умолчанию, равное 0, инструмент сам вычислит начало и конец объемного теневого объекта. В этом случае теневой объект начнется сразу за пространственным объектом, представленным силуэтом, и, как правило, закончится достаточно далеко, чтобы оказаться ниже поверхности земли (предполагается, что наблюдатель находится над силуэтом).
Объемный теневой объект будет замкнутым объектом мультипатч.
Выходной класс объектов мультипатч будет содержать следующие поля:
- OID — код FID мультипатча.
- Shape — форма мультипатча.
- OBSV_PT_ID — код FID точки наблюдателя, используемый для создания линии горизонта, которая, в свою очередь, использовалась для создания этого мультипатча границы видимости.
- ORIGFTR_ID — код FID исходного объекта, например здания, представленного сегментом линии горизонта или силуэтом, который использовался для создания этого объемного теневого объекта.
- SILHOUE_ID — код FID объекта-мультипатча (силуэта), используемый для создания этого объемного теневого объекта (только для силуэтов).