Línea de visión (3D Analyst)

Resumen

Esta herramienta utiliza una clase de entidad de polilínea 2D o 3D de entrada junto con una superficie de ráster, de red irregular de triángulos (TIN) o de dataset del terreno para determinar la visibilidad entre los puntos de observador y de destino. Una clase de entidad multiparche puede suministrarse, opcionalmente, para participar en el análisis de visibilidad.

Más información sobre cómo funciona Línea de visión (3D Analyst)

Uso

Sintaxis

LineOfSight_3d (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ámetroExplicaciónTipo de datos
in_surface

El ráster de entrada, el TIN o la superficie de terreno en los que se basan los cálculos.

TIN Layer; Raster Layer; Terrain Layer
in_line_feature_class

La clase de entidad de polilínea de entrada a lo largo de la cual se calcula la visibilidad. Esta clase de entidad puede ser 2D o 3D.

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)

La clase de entidad del punto de salida que indica el primer punto de obstrucción a lo largo de la línea de visión si el destino no es visible.

Feature Class
use_curvature
(Opcional)

Indica si se debe tener en cuenta la curvatura de la tierra para el análisis de la línea de visión. Para habilitar esta opción, la superficie debe tener una referencia espacial definida en las coordenadas proyectadas con unidades z definidas.

  • CURVATURESe tendrá en cuenta la curvatura de la tierra.
  • NO_CURVATURENo se tendrá en cuenta la curvatura de la tierra. Esta es la opción predeterminada.
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.

  • NO_REFRACTION No se tendrá en cuenta la refracción atmosférica. Esta es la opción predeterminada.
  • REFRACTIONSe tendrá en cuenta la refracción atmosférica.
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, resolución completa.

Double
in_features
(Opcional)

Una clase de entidad de multiparches que puede obstruir las líneas de visión. El valor predeterminado es en blanco.

Feature Layer

Ejemplo de código

Ejemplo 1 de Línea de visión (ventana de Python)

La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función Línea de visión en el modo inmediato.

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 Línea de visión (secuencia de comandos independiente)

La siguiente secuencia de comandos de Python demuestra cómo utilizar la función Línea de visión en una secuencia de comandos independiente.

'''*********************************************************************
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)

Entornos

Temas relacionados

Información de licencia

ArcView: Requiere 3D Analyst
ArcEditor: Requiere 3D Analyst
ArcInfo: Requiere 3D Analyst

7/10/2012