Disponible con una licencia de 3D Analyst.
Resumen
Calcula la visibilidad del cielo y genera una tabla opcional y un gráfico polar.
La tabla y el gráfico representan los ángulos horizontal y vertical que van desde el punto de observador hasta cada uno de los vértices en el horizonte.
Ilustración
Uso
- Se requiere un punto de observador y un horizonte (línea 3D) como entrada.
- Se calcula el acimut y el ángulo vertical desde el punto de observador hasta cada vértice.
- La herramienta siempre devuelve la relación entre el cielo visible (entre 0 y 1; por ejemplo: 0,8 si el cielo está visible al 80%).
- Opcionalmente, la herramienta puede generar como salida una tabla de ángulos. Si la tabla es la salida, entonces un gráfico polar también puede ser una salida opcionalmente.
- La herramienta siempre muestra el porcentaje del cielo visible en la ventana Resultados (o en la información de resultados, si la ventana no se visualiza), junto con los ángulos verticales mínimo y máximo.
- Si una tabla es la salida, incluirá filas de dos o más números de precisión doble. Cada fila contiene por lo menos un ángulo horizontal aritmético y un ángulo cénit y los dos están expresados en grados.
- Si se selecciona Campos adicionales, se generarán columnas adicionales que incluyen información como el origen del borde que sigue el vértice en el horizonte (FEATURE_ID), la distancia desde el punto de observador hasta el vértice y las coordenadas del vértice. (El origen podría ser el FID de la entidad que participa en el horizonte o un código para indicar que el horizonte está en la superficie.)
Los campos que aparecen siempre en la tabla son:
- HORIZ_ANG: el ángulo horizontal.
- ZENITH_ANG: el ángulo cénit.
Los campos adicionales son:
- VERTEX_X: la coordenada X del vértice.
- VERTEX_Y: la coordenada Y del vértice.
- VERTEX_Z: la coordenada Z del vértice.
- DIST_2D: la distancia horizontal desde el observador hasta el vértice.
- DIST_3D: la distancia de pendiente desde el observador hasta el vértice.
Los campos adicionales no son necesarios para generar el gráfico.
El ángulo horizontal aritmético es igual a 90 menos el acimut y el ángulo cénit es 90 menos el ángulo vertical. (Un ángulo horizontal aritmético de 0 tiene dirección este y uno de 90 tiene dirección norte; un ángulo cénit de 90 es horizontal y uno de 0 es recto hacia arriba).
- El gráfico opcional es un gráfico polar, que aparecería si el horizonte (polilínea 3D) se proyectara sobre la superficie de una esfera y el observador del gráfico estuviera observando hacia abajo desde muy arriba del centro de la esfera (el centro de la esfera está en el punto de observador).
- El gráfico polar es lineal mientras sale de su centro, lo que significa que el anillo/círculo que representa el ecuador tiene dos veces el radio de anillo que representa un ángulo de elevación de 45 grados, suponiendo que el centro del gráfico representa un ángulo de elevación de 90 grados (ángulo cénit de cero).
- El porcentaje del cielo visible siempre se incluye en los resultados. Este valor es igual al área por encima del horizonte, dividido por el área por encima del ángulo visible base (uno de los parámetros, con el valor predeterminado de cero, lo que implica la misma elevación que el observador) y se calcula sólo dentro del rango de acimut del horizonte.
El gráfico solo se visualizará si la herramienta se ejecuta en ArcMap, ArcGlobe o ArcScene.
Sintaxis
SkylineGraph_3d (in_observer_point_features, in_line_features, {base_visibility_angle}, {additional_fields}, {out_angles_table}, {out_graph})
Parámetro | Explicación | Tipo de datos |
in_observer_point_features | Las entidades de entrada que contienen uno o más puntos de observador. | Feature Layer |
in_line_features | La clase de entidad de línea que representa el horizonte. | Feature Layer |
base_visibility_angle (Opcional) | El ángulo vertical que se utiliza como la línea base para calcular el porcentaje del cielo visible; 0 es el horizonte, 90 es la recta hacia arriba; -90 es la recta hacia abajo. El valor predeterminado es 0. | Double |
additional_fields (Opcional) | Determina si generar campos adicionales para la tabla, en lugar de generar sólo los dos valores de ángulo.
| Boolean |
out_angles_table (Opcional) | La tabla que se creará para generar los ángulos de salida. La opción predeterminada es en blanco, lo que significa que no hay tabla. | Table |
out_graph (Opcional) | El nombre del gráfico opcional. Se debe generar una tabla para que se cree el gráfico. El gráfico se visualizará y puede guardarse y/o editarse. La opción predeterminada es en blanco, lo que significa que no hay gráfico. | Graph |
Ejemplo de código
Ejemplo 1 de SkylineGraph (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.SkylineGraph_3d("observers.shp", "skyline_outline.shp", 0, "ADDITIONAL_FIELDS", "table.dbf")
Ejemplo 2 de SkylineGraph (secuencia de comandos independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en una secuencia de comandos independiente de 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"
inLines = "skyline_outline.shp"
baseVisibility = 25
# Ensure output table has unique name
outTable = arcpy.CreateUniqueName("angles_table.dbf")
#Execute SkylineGraph
arcpy.SkylineGraph_3d(inPts, inLines, 0, "ADDITIONAL_FIELDS", outTable)
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 sobre licencias
- ArcGIS for Desktop Basic: Requiere 3D Analyst
- ArcGIS for Desktop Standard: Requiere 3D Analyst
- ArcGIS for Desktop Advanced: Requiere 3D Analyst