Краткая информация
Определяет видимость вдоль линий взгляда через препятствия, состоящие из поверхности и дополнительного набора данных мультипатча.
Дополнительные сведения о том, как работает инструмент Линия видимости
Рисунок
Использование
Для определения наблюдателя и цели используются только конечные точки входной линии. Линии взгляда должны представлять собой простые прямые линии с двумя вершинами, представляющими точку наблюдения и местоположение цели, для которой определяется видимость.
Если местоположение наблюдателя определяется точечными объектами, а местоположения целей хранятся в другом классе пространственных объектов, необходимо использовать инструмент Построить линии взгляда, чтобы создать линии взгляда.
Выходные линии будут разделены на две категории: видимые и невидимые части входной линии взгляда. Если только поверхность используется для определения видимости линий взгляда, то выходные линии будут следовать профилю поверхности. Если при вычислении линии взгляда указан объект мультипатч, выходные линии будут следовать траектории входных линий взгляда.
В таблице атрибутов выходного линейного объекта содержатся следующие поля:
- SourceOID – уникальный ID линейного объекта, используемого при вычислении видимости.
- VisCode – видимость вдоль линии. Значение 1 – видимый, значение 2 – невидимый. Это поле существует, только если полученная геометрия представляет собой линию.
- TarIsVis – видимость цели вдоль линии. Значение 1 – видимый, значение 0 – невидимый. Это поле существует, только если полученная геометрия представляет собой линию.
- OBSTR_MPID – уникальный ID мультипатча, являющегося помехой на линии видимости. Если мультипатч не препятствует линии видимости, в поле содержится значение -1 или -9999. Если цель скрыта поверхностью, используется значение -1. Если цель видима, используется значение -9999.
Синтаксис
LineOfSight_3d (in_surface, in_line_feature_class, out_los_feature_class, {out_obstruction_feature_class}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {in_features})
Параметр | Объяснение | Тип данных |
in_surface | Набор данных LAS, растр, Terrain или TIN, использованный при определении видимости. | LAS Dataset Layer; Raster Layer; Terrain Layer; TIN Layer |
in_line_feature_class | Линейные объекты, первая которых вершина определяет точку наблюдения, а последняя – местоположение цели. Высота наблюдения и местоположений цели берутся из z-значений для 3D объектов и интерполируются с поверхности для 2D объектов. Линии 2D также имеют смещение со значением по умолчанию 1, добавляемое к их высоте, чтобы поднять точки над поверхностью. Если объект имеет поле OffsetA, значение из этого поля будет добавлено к высоте точки наблюдения. Если имеется поле OffsetB, значение из этого поля будет добавлено к высоте местоположения цели. | Feature Layer |
out_los_feature_class | Выходной класс линейных объектов, для которого определяется видимость. Создаются два атрибутивных поля. VisCode обозначает видимость вдоль линии, 1 – видимость есть, 2 – видимости нет. TarIsVis обозначает видимость цели, 0 – видимости нет, 1 – видимость есть. | Feature Class |
out_obstruction_feature_class (дополнительно) | Дополнительный класс точечных объектов, определяющий местоположение первого препятствия на линии взгляда наблюдателя до цели. | Feature Class |
use_curvature (дополнительно) |
Показывает, учитывается ли в анализе линии взгляда кривизна поверхности Земли. Для включения этих параметров необходимо, чтобы поверхность имела заданную пространственную привязку в координатах проекции и заданные z-единицы.
| Boolean |
use_refraction (дополнительно) |
Показывает, будет ли учитываться атмосферная рефракция при создании линии видимости из функциональной поверхности. Этот параметр не применяется, если используются объекты мультипатча.
| Boolean |
refraction_factor (дополнительно) | Предоставляет значение, которое используется в коэффициенте рефракции. Значение коэффициента рефракции по умолчанию равно 0,13. | Double |
pyramid_level_resolution (дополнительно) | z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться этим инструментом. Значением по умолчанию является 0, полное разрешение. | Double |
in_features (дополнительно) | Дополнительный объект мультипатча, который может определять дополнительные препятствующие элементы, например, здания. Параметры рефракции не учитываются для этих входных данных. | Feature Layer |
Пример кода
Пример LineOfSight 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LineOfSight_3d("tin", "line.shp", "los.shp", "buldings_multipatch.shp",
"obstruction.shp")
Пример LineOfSight 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''*********************************************************************
Name: Sight Line Visibility of Parade Path
Description: This script demonstrates how to create a sight line feature class
from a pair of observer and target points.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Checking out 3D Analyst Extension:
arcpy.CheckOutExtension('3D')
# Set Local Variables:
env.workspace = 'C:/data'
# Setting up input and output variables:
obs = "observer_pts.shp"
tar = "parade_path.shp"
sightlines = "output_sightlines.shp"
height = "<None>"
join_field = "#"
sampling = 0.5
direction = "OUTPUT_THE_DIRECTION"
surface = 'elevation.tif'
bldgs = 'buildings.shp'
arcpy.AddMessage("Building sightlines...")
arcpy.ddd.ConstructSightLines(obs, tar, sightlines, height, height,
join_field, sampling, direction)
arcpy.ddd.LineOfSight(surface, sightlines, "Parade_LOS.shp",
"Obstructions.shp", in_features=bldgs)
arcpy.GetMessages(0)
arcpy.CheckInExtension("3D")
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)
Параметры среды
- Текущая рабочая область (Current Workspace)
- Временная рабочая область (Scratch Workspace)
- Экстент (Extent)
- Выходная система координат (Output Coordinate System)
- Географические преобразования (Geographic Transformations)
- Разрешение XY (XY Resolution)
- Допуск XY (XY Tolerance)
- Выходной XY домен (Output XY Domain)
- Разрешение Z (Z Resolution)
- Допуск Z (Z Tolerance)
- Выходной домен Z (Output Z Domain)
- Выходное ключевое слово CONFIG (Output CONFIG Keyword)
- Автоподтверждение (Auto Commit)
- Выходная пространственная сетка 1
- Выходная пространственная сетка 2
- Выходная пространственная сетка 3
- Использование памяти Terrain (Terrain Memory Usage)
Информация о лицензировании
- ArcGIS for Desktop Basic: Требует 3D Analyst
- ArcGIS for Desktop Standard: Требует 3D Analyst
- ArcGIS for Desktop Advanced: Требует 3D Analyst