Линия горизонта (3D Analyst)

Уровень лицензии:BasicStandardAdvanced

Резюме

Создает класс объектов линий или мультипатчей, содержащий результаты анализа очертаний линии горизонта.

Более подробно о том, как работает инструмент Линия горизонта (Skyline)

Рисунок

Линия горизонта

Использование

Синтаксис

Skyline_3d (in_observer_point_features, out_feature_class, {in_surface}, {virtual_surface_radius}, {virtual_surface_elevation}, {in_features}, {feature_lod}, {from_azimuth_value_or_field}, {to_azimuth_value_or_field}, {azimuth_increment_value_or_field}, {max_horizon_radius}, {segment_skyline}, {scale_to_percent}, {scale_according_to}, {scale_method}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {create_silhouettes})
ПараметрОбъяснениеТип данных
in_observer_point_features

3D точки, которые представляют наблюдателей; для каждого создается отдельная линия горизонта.

Feature Layer
out_feature_class

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

Feature Class
in_surface
(дополнительно)

Функциональная поверхность для определения горизонта.

LAS Dataset Layer; Raster Layer; TIN Layer; Terrain Layer
virtual_surface_radius
(дополнительно)

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

Linear Unit
virtual_surface_elevation
(дополнительно)

Высота виртуальной поверхности для определения горизонта вместо действительной поверхности. Если действительная поверхность указана, игнорируется. Значение по умолчанию равно 0.

Linear Unit
in_features
(дополнительно)

Класс пространственных объектов для использования в анализе линии горизонта. Обычно пространственные объекты обозначают препятствия, например, городские здания.

Feature Layer
feature_lod
(дополнительно)

Уровень прорисовки, на котором следует изучить каждый пространственный объект при анализе линии горизонта.

  • FULL_DETAILКаждое ребро в пределах объекта рассматривается в анализе линии горизонта (рассматриваются только ребра треугольников и внешних колец). Это наиболее медленно, но и наиболее точно. Это значение используется по умолчанию.
  • CONVEX_FOOTPRINTВ анализе линии горизонта участвует верхний периметр выпуклого полигона, который представляет выпуклую оболочку контура пространственного объекта, поднятую на высоту самой высокой вершины в пределах этого объекта.
  • ENVELOPE В анализе линии горизонта участвует верхний горизонтальный прямоугольный периметр тела с прямоугольными гранями, огибающего пространственный объект (вертикальные грани перпендикулярны осям X и Y).
String
from_azimuth_value_or_field
(дополнительно)

Азимут в градусах, от которого должен начинаться анализ линии горизонта. Анализ начинается с точки наблюдения и идет направо, от начального азимута (From Azimuth) к конечному (To Azimuth). Должен быть больше -360 и меньше 360. По умолчанию равен 0.

Double; Field
to_azimuth_value_or_field
(дополнительно)

Направление в градусах, в котором должен быть завершен анализ линии горизонта. Анализ начинается с точки наблюдения и идет направо, от начального азимута (From Azimuth) к конечному (To Azimuth). Должен превышать начальный азимут (From Azimuth) не больше, чем на 360. Значение по умолчанию равно 360.

Double; Field
azimuth_increment_value_or_field
(дополнительно)

Угловой интервал в градусах, при котором должен быть вычислен горизонт при проведении анализа линии горизонта между начальным азимутом (From Azimuth) и конечным (To Azimuth). Должно быть не больше, чем конечный азимут (To Azimuth) минус начальный (From Azimuth). Значение по умолчанию равно 1.

Double; Field
max_horizon_radius
(дополнительно)

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

Double
segment_skyline
(дополнительно)

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

  • NO_SEGMENT_SKYLINEВыходные результаты 3D полилиний не будут сегментированы. Это значение используется по умолчанию.
  • SEGMENT_SKYLINEВыходные результаты линии будут сегментированы согласно различным пространственным объектам, обнаруженным во время анализа.
Boolean
scale_to_percent
(дополнительно)

Указывает, какой процент исходного вертикального угла (угла над горизонтом, или угла высоты) или высоты каждой вершины линии горизонта должен быть размещен. При вводе значения 0 или 100 масштабирование не будет выполнено. По умолчанию используется 100.

Double
scale_according_to
(дополнительно)

Значения, согласно которым должно определяться масштабирование.

  • VERTICAL_ANGLEМасштабирование выполняется с учетом вертикального угла каждой вершины относительно точки наблюдения. Это значение используется по умолчанию.
  • ELEVATIONМасштабирование выполняется с учетом высоты каждой вершины относительно точки наблюдения.
String
scale_method
(дополнительно)

Вершина, относительно которой будет выполнен расчет.

  • SKYLINE_MAXIMUMВершины будут масштабированы относительно вертикального угла (или высоты) вершины с наибольшим вертикальным углом (или высотой). Это значение используется по умолчанию.
  • EACH_VERTEXВершины будут масштабированы относительно исходного вертикального угла (или высоты) каждой вершины.
String
use_curvature
(дополнительно)

Указывает, должна ли учитываться кривизна Земли во время создания хребта из функциональной поверхности.

  • CURVATUREКривизна земной поверхности учитывается.
  • NO_CURVATUREКривизна земной поверхности не учитывается. Это значение используется по умолчанию.
Boolean
use_refraction
(дополнительно)

Указывает, должна ли учитываться атмосферная рефракция во время создания хребта из функциональной поверхности. Если действительная поверхность не указана, то установка этой отметки (или передача значения REFRACTION на Python) приведет к созданию очертаний вместо линий горизонта.

  • NO_REFRACTION Атмосферная рефракция не учитывается. Это значение используется по умолчанию.
  • REFRACTIONАтмосферная рефракция учитывается.
Boolean
refraction_factor
(дополнительно)

Если атмосферная рефракция учитывается, будет применено скалярное значение. Значение по умолчанию равно 0,13.

Double
pyramid_level_resolution
(дополнительно)

Если для функциональной поверхности указан набор данных Terrain, то этот параметр заполняется разрешениями, находящимися в наборе данных Terrain. Для создания линии горизонта должно быть выбрано одно из разрешений. Значением по умолчанию является 0, полное разрешение.

Double
create_silhouettes
(дополнительно)

Определите, будут ли выходные объекты представлять видимые с точки наблюдения очертания.

  • NO_CREATE_SILHOUETTESСнят – итоговые полилинии будут составлять линию горизонта. Это значение используется по умолчанию.
  • NO_CREATE_SILHOUETTESИтоговые полилинии будут представлять очертания.
Boolean

Пример кода

Пример линии горизонта 1 (окно Python)

В следующем примере показано использование этого инструмента в окне Python:

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
Пример линии горизонта 2 (автономный скрипт)

В следующем примере показано использование этого инструмента в автономном скрипте Python:

'''****************************************************************************
Name: Skyline Example
Description: This script demonstrates how to use the 
             Skyline 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"
    # Make sure output has a unique name
    outFC = arcpy.CreateUniqueName("skyline_output.shp")
    inSurface = "sample.gdb/featuredataset/terrain"
    obstructionFCs = "buildings.shp; billboards.shp"
    surfRad = "1000 meters"
    surfElev = "100 meters"
    LOD = "FULL_DETAIL"
    fromAzim = 0
    toAzim = 360
    incAzim = 1
    maxHorizRad = 0
    segSky = "SEGMENT_SKYLINE"
    scale = 100
    scaleAcc = "ELEVATION"
    scaleMethod = "SKYLINE_MAXIMUM"
    
    # Execute Skyline
    arcpy.Skyline_3d(inPts, outFC, inSurface, surfRad, surfElev, 
                     obstructionFCs, LOD, fromAzim, toAzim, incAzim, 
                     maxHorizRad, segSky, scale, scaleAcc, scaleMethod)


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)

Параметры среды

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Требует 3D Analyst
ArcGIS for Desktop Standard: Требует 3D Analyst
ArcGIS for Desktop Advanced: Требует 3D Analyst
9/10/2013