Resumen
Genera una clase de entidad multiparche que representa una barrera de horizonte o un volumen de sombra.
Ilustración
Uso
La barrera se asemeja a un abanico de triángulos formado al dibujar una línea desde el punto de observador hasta el primer vértice del horizonte y después recorrer la línea a través de todos los vértices del horizonte. Puede utilizar esta herramienta para determinar si las entidades, tales como multiparches que representan edificios, vulneran la barrera porque sobresalen de ella o si un edificio propuesto alterará el horizonte.
Utilice primero la herramienta Horizonte para generar un horizonte o una silueta. Una silueta producirá una representación volumétrica de la sombra proyectada por la luz que proviene del punto de observación.
Los parámetros Radio mínimo y Radio máximo definen la longitud de los bordes del triángulo que proviene del punto de observación. Si se especifica el valor predeterminado de 0 para Radio mínimo o Radio máximo, no se utilizará ninguna longitud mínima o máxima en el análisis.
Si crea un multiparche cerrado, la salida se extrudirá a la altura definida en el parámetro Elevación base y se creará un anillo horizontal para formar la parte inferior de la geometría cerrada. Si la elevación base especificada es mayor que el vértice más alto de la barrera de horizonte, la base será un techo.
La nueva clase de entidad multiparche contendrá los siguientes campos:
- OBSV_PT_ID: el FID del punto de observador utilizado para crear el horizonte que, a su vez, se usó para crear este multiparche de barrera de horizonte.
- ORIGFTR_ID: el FID de la entidad original, como un edificio, representada por el segmento del horizonte o la silueta que se usó para crear este volumen de sombra.
- SILHOUE_ID: el FID de la entidad multiparche (silueta) que se usó para crear este volumen (solo para siluetas).
Sintaxis
arcpy.ddd.SkylineBarrier(in_observer_point_features, in_features, out_feature_class, {min_radius_value_or_field}, {max_radius_value_or_field}, {closed}, {base_elevation}, {project_to_plane})
Parámetro | Explicación | Tipo de datos |
in_observer_point_features | La clase de entidad de punto que contiene los puntos de observador. | Feature Layer |
in_features | La clase de entidad de línea de entrada que representa los horizontes o la clase de entidad multiparche de entrada que representa las siluetas. | Feature Layer |
out_feature_class | La clase de entidad de salida en la que se ubicará la barrera de horizonte o el volumen de sombra. | Feature Class |
min_radius_value_or_field (Opcional) | El radio mínimo al que se extenderán las aristas del triángulo desde el punto de observador. Por ejemplo, el valor de 10 metros significa que todas las entidades de barrera de salida se extenderán al menos 10 metros desde su punto de origen. El valor predeterminado es 0, lo que significa que no se aplica ninguna distancia mínima. | Linear Unit; Field |
max_radius_value_or_field (Opcional) | El radio máximo que se extenderán las aristas del triángulo desde el punto de observador. El valor predeterminado es 0, lo que significa que no se aplica ninguna distancia máxima. | Linear Unit; Field |
closed (Opcional) | Especifica si se agregarán un borde y una base a la barrera de horizonte para que el multiparche resultante parezca un sólido cerrado.
| Boolean |
base_elevation (Opcional) | La elevación de la base del multiparche cerrado. Este parámetro no se tiene en cuenta si el parámetro closed tiene el valor NO_CLOSED. El valor predeterminado es 0. | Linear Unit; Field |
project_to_plane (Opcional) | Especifica si los extremos frontales (más cercanos al observador) y posterior (más lejano del observador) de la barrera deben proyectarse en un plano vertical. Por lo general, se le asigna el valor PROJECT_TO_PLANE para crear un volumen de sombra.
| Boolean |
Muestra de código
Ejemplo 1 de SkylineBarrier (ventana de Python)
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.SkylineBarrier_3d("observers.shp", "skyline_outline.shp", "barrier_output.shp")
Ejemplo 2 de SkylineBarrier (script independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''****************************************************************************
Name: Skyline Barrier Example
Description: This script demonstrates how to use the
Skyline Barrier 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'
inLine = 'skyline.shp'
outFC = 'output_barriers.shp'
minRadius = '0 METERS'
maxRadius = '200 METERS'
#Execute SkylineBarrier
arcpy.SkylineBarrier_3d(inPts, inLine, outFC, minRadius,
maxRadius, 'CLOSED')
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)
Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst