Línea de visión (3D Analyst)
Resumen
Determina la visibilidad de las líneas de visión sobre una superficie definida por un dataset multiparche, ráster, TIN, terreno o LAS.
Uso
-
Solo los extremos de la línea de entrada se utilizan para definir el observador y el destino. Idealmente, las líneas de visión deberían ser simples, líneas rectas compuestas de dos vértices que representan el punto de observación y la ubicación de destino para la cual se determina la visibilidad.
Si la ubicación de observación está identificada por entidades de punto y ubicaciones de destino residen en una clase de entidad diferente, utilice Construir líneas de visión para generar la entrada de esta herramienta.
Considere especificar la entidad de punto de obstrucción opcional para identificar la ubicación del primer obstáculo que bloquea la visibilidad del objetivo para cada línea.
La tabla de atributos de la entidad de línea de salida contiene los siguientes campos:
- SourceOID: Id. único de la entidad de línea que se utiliza en el cálculo de la visibilidad.
- VisCode: la visibilidad a lo largo de la línea. Un valor de 1 indica visible y un valor de 2 indica no visible. El campo solo existirá si la geometría de salida es una línea.
- TarIsVis: la visibilidad del objetivo a lo largo de la línea. Un valor de 1 indica visible y un valor de 0 indica no visible. El campo solo existirá si la geometría de salida es una línea.
- OBSTR_MPID: Id. único del multiparche que obstruye la línea de visión. Si no hay ningún multiparche que obstruya la línea de visión, el campo contendrá el valor -1 o bien -9999. Si la superficie obstaculiza el objetivo, el valor será -1. Si el objetivo está visible, el valor será -9999.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_surface |
El dataset ráster, TIN, de terreno o LAS que define la superficie utilizada para determinar la visibilidad. | Raster Layer; Terrain Layer; TIN Layer |
in_line_feature_class |
Las entidades de línea cuyo primer vértice define el punto de observación y el último vértice identifica la ubicación de destino. La altura de la observación y las ubicaciones objetivo se obtienen de los valores Z de las entidades 3D y se interpolan a partir de la superficie para las entidades 2D. Las líneas 2D también tienen un desplazamiento predeterminado de 1 agregado a su elevación, para elevar los puntos sobre la superficie. Si la entidad tiene un campo OffsetA, su valor se agregará a la altura del punto de observación. Si existe el campo OffsetB, su valor se agregará a la altura de la posición de destino. | Feature Layer |
out_los_feature_class |
La clase de entidad de línea de salida a lo largo de la cual se ha determinado la visibilidad. Se crean dos atributos de campo. VisCode indica la visibilidad a lo largo de la línea, 1 para visible y 2 para no visible. TarIsVis indica la visibilidad del destino, 0 para no visible y 1 para visible. | Feature Class |
out_obstruction_feature_class (Opcional) |
Una clase de entidad de puntos opcional que identifica la ubicación de la primera obstrucción sobre la línea de visión del observador a su destino. | Feature Class |
use_curvature (Opcional) |
Indica si se debe considerar la curvatura de la tierra para el análisis de la línea de vista. Para habilitar esta opción, la superficie debe tener una referencia espacial definida en las coordenadas proyectadas con unidades z definidas.
| Boolean |
use_refraction (Opcional) |
Indica si se debe tener en cuenta la refracción atmosférica al generar una línea de visión a partir de una superficie funcional.
| Boolean |
refraction_factor (Opcional) |
Proporciona un valor que se utilizará en el factor de refracción. El factor de refracción predeterminado es 0,13. | Double |
pyramid_level_resolution (Opcional) |
La resolución del nivel de pirámide del dataset de terreno a utilizar para el geoprocesamiento. El valor predeterminado es 0, o resolución completa. | Double |
in_features (Opcional) |
Una clase de entidad multiparche opcional que puede definir elementos de obstrucción adicionales, como edificios. | Feature Layer |
Ejemplo de código
El siguiente ejemplo muestra cómo usar de esta herramienta en la ventana 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")
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python:
'''*********************************************************************
Name: Sight Line Visibility
Description: This script demonstrates how to calculate visibility
for sight lines against the obstructions presented by
terrain elevation & building models in a multipatch.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
env.workspace = 'C:/data'
obs_pts = "Observers.shp"
target = "Observation_Targets.shp"
sight_lines = "in_memory/sightlines"
surface = "sample.gdb/elevation/terrain"
buildings = "city_buildings.shp"
outLOS = arcpy.CreateUniqueName("Line_of_Sight.shp")
obstruction_pts = arcpy.CreateUniqueName("Obstruction_Points.shp")
arcpy.AddMessage("Constructing sight lines...")
arcpy.ddd.ConstructSightLines(obs_pts, target, sight_lines)
arcpy.AddMessage("Calculating line of sight...")
arcpy.ddd.LineOfSight(surface, sight_lines, outLOS, obstruction_pts,
"CURVATURE", "REFRACTION", 0.35, 0, buildings)
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)