Resumen
Determina la visibilidad de las líneas de visión por encima de obstáculos que constan de una superficie y un dataset multiparche opcional.
Ilustración
Uso
Solo los extremos de la línea de entrada se utilizan para definir el observador y el destino. Las líneas de visión deberían ser líneas rectas compuestas por dos vértices que representan el punto de observación y la ubicación de destino para la cual se determina la visibilidad.
Considere la posibilidad de crear líneas de visión con la herramienta Construir líneas de visión si la ubicación del observador está identificada por entidades de punto y los destinos de visibilidad residen en una clase de entidad diferente.
Las líneas de salida se dividirán a lo largo de las partes visibles e invisibles de la línea de visión de entrada. Si solo se utiliza una superficie para determinar la visibilidad de la línea de visión, las líneas de salida seguirán el perfil de la superficie. Si se proporciona una entidad multiparche al calcular la línea de visión, las líneas de salida seguirán la trayectoria de las líneas de visión de entrada.
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: 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: 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
arcpy.ddd.LineOfSight(in_surface, in_line_feature_class, out_los_feature_class, {out_obstruction_feature_class}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {in_features})
Parámetro | Explicación | Tipo de datos |
in_surface | Dataset LAS, ráster, TIN o superficie de terreno utilizado para determinar la visibilidad. | LAS Dataset Layer; Mosaic Layer; 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 ubicaciones de destino se obtienen de los valores z de entidades 3D y se interpolan desde la superficie para 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 objetivo, 0 para no visible y 1 para visible. | Feature Class |
out_obstruction_feature_class (Opcional) | Una clase de entidad de punto 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. Esta opción no se aplica si se utilizan entidades multiparche.
| 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 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 |
in_features (Opcional) | Una entidad multiparche que puede definir elementos de obstrucción adicionales, como edificios. Las opciones de refracción no se respetan para esta entrada. | Feature Layer |
Muestra de código
Ejemplo 1 de LineOfSight (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.LineOfSight_3d("tin", "line.shp", "los.shp", "buldings_multipatch.shp",
"obstruction.shp")
Ejemplo 2 de LineOfSight (secuencia de comandos independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''*********************************************************************
Name: Sight Line Visibility of Parade Path
Description: This script demonstrates how to create a sight line feature class
from a pair of observer and target points.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Checking out 3D Analyst Extension:
arcpy.CheckOutExtension('3D')
# Set Local Variables:
env.workspace = 'C:/data'
# Setting up input and output variables:
obs = "observer_pts.shp"
tar = "parade_path.shp"
sightlines = "output_sightlines.shp"
height = "<None>"
join_field = "#"
sampling = 0.5
direction = "OUTPUT_THE_DIRECTION"
surface = 'elevation.tif'
bldgs = 'buildings.shp'
arcpy.AddMessage("Building sightlines...")
arcpy.ddd.ConstructSightLines(obs, tar, sightlines, height, height,
join_field, sampling, direction)
arcpy.ddd.LineOfSight(surface, sightlines, "Parade_LOS.shp",
"Obstructions.shp", in_features=bldgs)
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)
Entornos
- Espacio de trabajo actual
- Extensión
- Sistema de coordenadas de salida
- Transformaciones geográficas
- Resolución XY
- Tolerancia XY
- Dominio XY de salida
- Resolución Z
- Tolerancia Z
- Dominio Z de salida
- Palabra clave CONFIG de salida
- Auto ejecución
- Cuadrícula espacial de salida 1
- Cuadrícula espacial de salida 2
- Cuadrícula espacial de salida 3
- Uso de memoria de terreno
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst