Resumen
Genera una clase de entidad de línea o multiparche que contiene los resultados de un análisis de horizonte o silueta.
Ilustración
Uso
La herramienta Horizonte se puede utilizar para crear siluetas de entidades que se pueden extrudir en volúmenes de sombra con la herramienta Barrera de horizonte. Ver más información en Cómo funciona Horizonte.
Los siguientes campos se agregarán a la clase de entidad de salida que contiene los horizontes:
- OBSV_PT_ID: FID del punto del observador que se utilizó para crear este horizonte.
- ORIGFTR_ID: FID de la entidad, por ejemplo, un edificio.
Los siguientes campos se agregarán a la clase de entidad de salida que contiene las siluetas:
- OBSV_PT_ID: FID del punto del observador que se utilizó para crear esta silueta.
- ORIGFTR_ID: FID de la entidad original, por ejemplo, un edificio, representada por esta silueta.
- DIR_VECT_X: componente X del vector unitario que representa la dirección de los rayos de luz desde el observador.
- DIR_VECT_Y: componente Y del vector unitario que representa la dirección de los rayos de luz desde el observador.
- DIR_VECT_Z: componente Z del vector unitario que representa la dirección de los rayos de luz desde el observador.
- FEAT_CTR_X: componente X del centro del sobre de la entidad original (por ejemplo, edificio).
- FEAT_CTR_Y: componente Y del centro del sobre de la entidad.
- FEAT_CTR_Z: componente Z del centro del sobre de la entidad.
- BHND_CTR_X: componente X del centro del sobre de la entidad, que se movió detrás de la entidad.
- BHND_CTR_Y: componente Y del centro del sobre de la entidad, que se movió detrás de la entidad.
- BHND_CTR_Z: componente Z del centro del sobre de la entidad, que se movió detrás de la entidad.
- USED_PARLL: indica si la silueta se creó usando rayos de luz paralelos (1 para sí, 0 para no).
- MADE_VERT: indica si la silueta se hizo vertical, en lugar de perpendicular, respecto de los rayos de luz (1 para sí, 0 para no).
- MOVED_BHND: indica si la silueta se movió detrás de la entidad, en lugar de mantenerse en el centro (1 para sí, 0 para no).
Sintaxis
Skyline(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})
Parámetro | Explicación | Tipo de datos |
in_observer_point_features | Los puntos 3D que representan los observadores. Cada entidad tendrá su propia salida. | Feature Layer |
out_feature_class | Las entidades 3D que serán líneas que representan el horizonte o multiparches que representan siluetas. | Feature Class |
in_surface (Opcional) | La superficie topográfica que se utilizará para definir el horizonte. Si no se indica una superficie, se utilizará una superficie virtual empleando los parámetros virtual_surface_radius y virtual_surface_elevation. | LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer |
virtual_surface_radius (Opcional) | El radio de la superficie virtual que se utilizará para definir el horizonte cuando no se indica una superficie topográfica. El valor predeterminado es 1,000 metros. Se admiten las siguientes unidades:
| Linear Unit |
virtual_surface_elevation (Opcional) | La elevación de la superficie virtual para definir el horizonte en lugar de una superficie real. Se ignora si se proporciona una superficie real. El valor predeterminado es 0. Se admiten las siguientes unidades:
| Linear Unit |
in_features [in_features,...] (Opcional) | Las entidades utilizadas para determinar el horizonte. Si no se especifican las entidades, el horizonte constará solamente de la línea de horizonte tal y como se haya definido en la superficie topográfica o virtual. | Feature Layer |
feature_lod (Opcional) | El nivel de detalle en el que se debe examinar cada entidad en el análisis de horizonte.
| String |
from_azimuth_value_or_field (Opcional) | El acimut, en grados, desde el cual debe comenzar el análisis del horizonte. El análisis comienza en el punto del observador y se mueve hacia la derecha, desde el valor de Acimut de origen hasta que llega al valor de Acimut de destino. Debe ser mayor que menos 360 y menor que 360. El valor predeterminado es 0. | Double; Field |
to_azimuth_value_or_field (Opcional) | La dirección, en grados, en la que debe completarse el análisis del horizonte. El análisis comienza en el punto del observador y se mueve hacia la derecha, desde el valor de Acimut de origen hasta que llega al valor de Acimut de destino. No debe ser más de 360 mayor que el Acimut de origen. El valor predeterminado es 360. | Double; Field |
azimuth_increment_value_or_field (Opcional) | El intervalo angular, en grados, en el que se debe evaluar el horizonte mientras se realiza el análisis del horizonte entre el Acimut de origen y el Acimut de destino. No debe ser mayor que el resultado del Acimut de destino menos el Acimut de origen. El valor predeterminado es 1. | Double; Field |
max_horizon_radius (Opcional) | La distancia máxima a la cual se debe buscar un horizonte desde la ubicación de observador. Un valor de cero indica que no debe haber límite impuesto. El valor predeterminado es 0. Se admiten las siguientes unidades:
| Linear Unit |
segment_skyline (Opcional) | Determina si el horizonte resultante tendrá una entidad para cada punto del observador o si el horizonte de cada observador se segmentará según los elementos únicos que contribuyen al horizonte. Si se generan siluetas, este parámetro indicará si deben usarse rayos divergentes; para las sombras del sol, por lo general, este valor debe ser NO_SEGMENT_SKYLINE
| Boolean |
scale_to_percent (Opcional) | Indica a qué porcentaje del ángulo vertical (ángulo por encima del horizonte o ángulo de elevación) o la elevación original debe ubicarse cada vértice del horizonte. Si se escribe 0 o 100, no se realizará ningún ajuste. El valor predeterminado es 100. | Double |
scale_according_to (Opcional) | Los valores según los cuales deben determinarse las escalas.
| String |
scale_method (Opcional) | El vértice contra el que se realizará el cálculo.
| String |
use_curvature (Opcional) | Indica si se debe tener en cuenta la curvatura de la tierra al generar el cordón montañoso a partir de una superficie funcional.
| Boolean |
use_refraction (Opcional) | Indica si se aplicará la refracción atmosférica al generar el cordón montañoso a partir de una superficie funcional.
| Boolean |
refraction_factor (Opcional) | El coeficiente de refracción que se va a utilizar si se va a tener en cuenta la refracción atmosférica. El valor predeterminado es 0,13. | Double |
pyramid_level_resolution (Opcional) | La tolerancia Z o la resolución del tamaño de la ventana del nivel de pirámide de terreno que utilizará esta herramienta. El valor predeterminado es 0, o resolución completa. | Double |
create_silhouettes (Opcional) | Especifica si las entidades de salida representarán horizontes o siluetas.
| Boolean |
Muestra de código
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
arcpy.env.workspace = "C:/data"
arcpy.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''****************************************************************************
Name: Skyline Example
Description: This script demonstrates how to use the
Skyline tool.
****************************************************************************'''
# Import system modules
import arcpy
# Set environment settings
arcpy.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)
Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst