Как работает инструмент Линия взгляда (Line Of Sight)

Инструмент Линия взгляда (Line Of Sight) вычисляет взаимную видимость между первой и последней вершиной каждого линейного объекта с заданным положением в 3D пространстве относительно препятствий, создаваемых поверхностью или классом объектов-мультипатчей. Первая вершина определяет точку наблюдения, а последняя – цель наблюдения. Видимость определяется вдоль линии взгляда между этими точками. Любые промежуточные вершины у линий, имеющих больше двух вершин, игнорируются.

Высота наблюдения и целевые точки для линий 2D интерполируются с поверхности со смещением, заданным по умолчанию равным 1, это смещение применяется к местоположению наблюдателям, чтобы оно было выше поверхности. Для линейных 3D объектов высота наблюдателя и цели извлекается исключительно из геометрии объекта. К точкам наблюдения и целевым точка можно применять дополнительное смещение, добавляя поля с названиями OffsetA и OffsetB. Значение поля OffsetA будет добавлено к высоте наблюдателя, а значение поля OffsetB – к высоте цели.

Если класс объектов-мультипатчей не указан, выходная линия драпируется на поверхности. Если класс объектов-мультипатчей указан, его объекты будут учитываться при анализе видимости вместе с поверхностью, и итоговые линии протянутся непосредственно от наблюдателя к местоположению цели.

Выходные 3D линии хранят по одному объекту для каждой линии взгляда, которая полностью видима или невидима, и по два объекта для каждой линии взгляда, которая видна частично. Поле SourceOID показывает входной объект, используемый для определения линии взгляда, а значения в поле VisCode показывает видимость этой линии, при этом значение 1 означает, что линию видно, а 2 – что ее не видно. Поле TarIsVis описывает, видна ли целевая точка с позиции наблюдателя. Значение 1 означает, что точка видна, а значение 0 – что она не видна. Также добавлено поле OBSTR_MPID, которое позволяет определить мультипатч, создающий препятствие на линии взгляда. Если цель скрыта поверхностью, значение этого поля будет равно -1. Если цель видима, используется значение -9999.

Можно создать дополнительный класс точечных объектов препятствий, чтобы отобразить первое местоположение вдоль линии взгляда, мешающее наблюдателю увидеть цель. Если линия взгляда заслоняется какой-либо частью поверхности перед тем, как попасть на объект, то точка препятствия расположена на поверхности. Если линия взгляда задевает объект перед тем, как попасть на любую часть поверхности, то точка препятствия является фактической точкой пересечения, а остальную линию взгляда можно считать невидимой. Она содержит поле SourceOID, которое определяет входную линию, связанную с препятствием.

Поправки на кривизну поверхности и атмосферную рефракцию

Опция кривизны позволяет внести корректировки для учета кривизны земной поверхности при вычислении линии взгляда. Ее можно использовать, только если пространственная привязка входной поверхности произведена в системе координат проекции и заданы единицы измерения координаты z.

Использование опции рефракции внесет поправку на атмосферную рефракцию, которая искажает свет, когда он проходит через атмосферу. Степень этого искажения зависит от атмосферного давления, плотности атмосферы, влажности, температуры и высоты. Как и в случае с кривизной, для коррекции с учетом атмосферной рефракции необходимо, чтобы пространственная привязка поверхности была произведена в системе координат проекции и имела заданные единицы измерения координаты z.

Коррекция выполняется по следующей формуле:

Z = Z0 + D2(R - 1) ÷ d

, где:

9/10/2013