Visibilidad (Spatial Analyst)

Disponible con una licencia de Spatial Analyst.

Disponible con una licencia de 3D Analyst.

Resumen

Determina las ubicaciones de superficie de ráster visibles para un conjunto de entidades de observador, o identifica qué puntos de observador son visibles desde cada ubicación de superficie de ráster.

Ilustración

Ilustración de Visibilidad con la opción Frecuencia
Salida de Visibilidad con la opción Frecuencia, mostrada en una superficie de elevación sombreada
Ilustración de Visibilidad con la opción Observadores
Salida de Visibilidad con la opción Observadores, mostrada en una superficie de elevación sombreada

Uso

  • Esta herramienta admite dos tipos de análisis de visibilidad, Frecuencia y Observadores, que se controlan mediante el parámetro de herramienta Tipo de análisis. Para el primer tipo, la herramienta determina qué ubicaciones de superficie de ráster están visibles para un conjunto de observadores. Para el otro, identifica qué observadores están visibles desde cada ubicación de superficie de ráster.

  • Si en el ráster de entrada hay ruido no deseado causado por los errores de muestreo, puede suavizar el ráster con un filtro de paso bajo, como la opción Media de Estadísticas focalizadas, antes de ejecutar esta herramienta.

  • La visibilidad de cada centro de celda se calcula comparando el ángulo de altitud hacia el centro de celda con el ángulo de altitud hacia el horizonte local. El horizonte local se obtiene teniendo en cuenta el terreno que interviene entre el punto de observación y el centro de la celda actual. Si el punto se encuentra por encima del horizonte local, se considera visible.

  • La herramienta proporciona un ráster de salida sobre el nivel del suelo (AGL) opcional. Cada celda del ráster de salida AGL registra la altura mínima que se debe agregar a esa celda para que resulte visible al menos para un observador.

    Cuando las entidades de observador de entrada contienen varios observadores, el valor de salida es el mínimo de los valores de AGL de todos los observadores individuales.

  • Utilice los parámetros de observador para tener más control sobre el proceso de análisis de visibilidad. Por ejemplo, mediante el parámetro de desplazamiento del observador, puede especificar un desplazamiento para la elevación de observador en el análisis de visibilidad.

  • Cuando el ráster de entrada se deba remuestrear, se utilizará la técnica bilineal. Un ejemplo en el que se debe remuestrear un ráster de entrada se produce cuando el sistema de coordenadas de salida, la extensión o el tamaño de celda es diferente del de entrada.

  • Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento que se aplican a esta herramienta.

Sintaxis

Visibility(in_raster, in_observer_features, {out_agl_raster}, {analysis_type}, {nonvisible_cell_value}, {z_factor}, {curvature_correction}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {outer_radius}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle})
ParámetroExplicaciónTipo de datos
in_raster

Ráster de entrada de superficie.

Raster Layer
in_observer_features

La clase de entidad que identifica las ubicaciones del observador.

La entrada puede ser entidades de punto o polilínea.

Feature Layer
out_agl_raster
(Opcional)

El ráster de nivel sobre el suelo (AGL) de salida.

El resultado del AGL es un ráster en el que cada valor de celda es la altura mínima que se debe agregar a una celda por lo demás no visible para que resulte visible al menos para un observador.

Las celdas que ya estaban visibles tendrán un valor de 0 en este ráster de salida.

Raster Dataset
analysis_type
(Opcional)

El tipo de análisis de visibilidad.

  • FREQUENCYLa salida registra el número de veces que cada ubicación de celda en el ráster de superficie de entrada puede ser vista por las ubicaciones de observación de entrada (como puntos o como vértices para entidades de observador de polilínea). Esta es la opción predeterminada.
  • OBSERVERSLa salida identifica exactamente qué puntos de observador son visibles desde cada ubicación de superficie de ráster.
String
nonvisible_cell_value
(Opcional)

Valor asignado a las celdas no visibles.

  • ZEROSe asigna 0 a las celdas no visibles. Esta es la opción predeterminada.
  • NODATASe asigna NoData a las celdas no visibles.
Boolean
z_factor
(Opcional)

Cantidad de unidades x,y de suelo en una unidad z de superficie.

El factor z ajusta las unidades de medida para las unidades z cuando son diferentes de las unidades x, y de la superficie de entrada. Los valores z de la superficie de entrada se multiplican por el factor z al calcular la superficie de salida final.

Si las unidades z y las unidades x,y están en las mismas unidades de medida, el factor z es 1. Esta es la opción predeterminada.

Si las unidades z y las unidades x,y están en diferentes unidades de medida, el factor z se debe establecer en el factor adecuado o los resultados serán incorrectos. Por ejemplo, si las unidades z son pies y las unidades x, y son metros, debe utilizar un factor z de 0,3048 para convertir las unidades z de pies a metros (1 pie = 0,3048 metros).

Double
curvature_correction
(Opcional)

Permite correcciones en la curvatura de la tierra.

  • FLAT_EARTHNo se aplicará ninguna corrección de la curvatura. Esta es la opción predeterminada.
  • CURVED_EARTHSe aplicará la corrección de la curvatura.
Boolean
refractivity_coefficient
(Opcional)

El coeficiente de la refracción de la luz visible en el aire.

El valor predeterminado es 0.13.

Double
surface_offset
(Opcional)

Una distancia vertical que se agregará al valor z de cada celda según se considere para la visibilidad. Debe ser un entero positivo o un valor de punto flotante.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico OFFSETB si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado 0.

Double; Field
observer_elevation
(Opcional)

Las elevaciones de superficie de los vértices o puntos de observador.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico SPOT si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, se estimará mediante interpolación bilineal con los valores de elevación de superficie en las celdas vecinas de la ubicación del observador.

Double; Field
observer_offset
(Opcional)

Una distancia vertical que se agregará a la elevación de observador. Debe ser un entero positivo o un valor de punto flotante.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico OFFSETA si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado 1.

Double; Field
inner_radius
(Opcional)

La distancia inicial desde donde se determina la visibilidad. Las celdas que están más cerca que esta distancia no están visibles en la salida, pero pueden seguir bloqueando la visibilidad de las celdas entre el radio interior y el radio exterior.

Puede ser un entero positivo o negativo o un valor de punto flotante. Si es un valor positivo, se interpreta como una distancia de línea de visión tridimensional. Si es un valor negativo, se interpreta como una distancia planimétrica bidimensional.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico RADIUS1 si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado 0.

Double; Field
outer_radius
(Opcional)

La distancia máxima desde donde se determina la visibilidad. Las celdas más allá de esta distancia se excluyen del análisis.

Puede ser un entero positivo o negativo o un valor de punto flotante. Si es un valor positivo, se interpreta como una distancia de línea de visión tridimensional. Si es un valor negativo, se interpreta como una distancia planimétrica bidimensional.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico RADIUS2 si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado infinito.

Double; Field
horizontal_start_angle
(Opcional)

El ángulo inicial del rango de escaneo horizontal. El valor debe especificarse en grados de 0 a 360, ya sea como un entero o como un punto flotante, con 0 orientado al norte. El valor predeterminado es 0.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico AZIMUTH1 si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado 0.

Double; Field
horizontal_end_angle
(Opcional)

El ángulo final del rango de escaneo horizontal. El valor debe especificarse en grados de 0 a 360, ya sea como un entero o como un punto flotante, con 0 orientado al norte. El valor predeterminado es 360.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico AZIMUTH2 si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado 360.

Double; Field
vertical_upper_angle
(Opcional)

El límite del ángulo vertical superior del escaneo en relación con el plano horizontal. El valor está especificado en grados y puede ser un entero o punto flotante. El rango permitido es a partir de -90 hasta 90 inclusive.

Este valor de parámetro debe ser mayor que el valor del parámetro Ángulo inferior vertical.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico VERT1 si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado 90.

Double; Field
vertical_lower_angle
(Opcional)

El límite del ángulo vertical inferior del escaneo en relación con el plano horizontal. El valor está especificado en grados y puede ser un entero o punto flotante. El rango permitido es desde -90 hasta 90, no inclusive.

Este valor de parámetro debe ser menor que el valor del parámetro Ángulo superior vertical.

Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico.

De forma predeterminada, se utiliza el campo numérico VERT2 si existe en la tabla de atributos de entidades del observador de entrada. Se puede sobrescribir especificando otro campo numérico o un valor.

Si no se especifica este parámetro y el campo predeterminado no existe en la tabla de atributos de entidades del observador de entrada, asumirá el valor predeterminado -90.

Double; Field

Valor de retorno

NombreExplicaciónTipo de datos
out_raster

El ráster de salida.

La salida registrará el número de veces que cada ubicación de celda del ráster de superficie de entrada puede ser vista por las ubicaciones de observación de entrada (tipo de análisis de frecuencia), o registrará las ubicaciones de observador que se ven desde cada celda en la superficie del ráster (tipo observadores).

Raster

Muestra de código

Ejemplo 1 de visibilidad (ventana de Python)

En este ejemplo se determinan las ubicaciones de superficie visibles para un conjunto de observadores definidos en un shapefile.

import arcpy
from arcpy import env
from arcpy.sa import *

env.workspace = "c:/sapyexamples/data"

outvis = arcpy.sa.Visibility("elevation", "observers.shp", "c:/sapyexamples/output/aglout1",
                            "FREQUENCY", "NODATA", "1", "CURVED_EARTH", "0.13",
                            "OFFSETB", "SPOT", "OFFSETA", "RADIUS1", "RADIUS2",
                            "AZIMUTH1", "AZIMUTH2", "VERT1", "VERT2")

outvis.save("c:/sapyexamples/output/visiout1")
Ejemplo 2 de visibilidad (script independiente)

En este ejemplo se determina qué observadores están visibles en cada ubicación de superficie.

# Name: Visibility_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
#                     observer features.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "c:/sapyexamples/data"

# set local variables
inRaster = "elevation"
inObserverFeatures = "observers.shp"
aglOutput = "c:/sapyexamples/output/aglout1"
analysisType = "OBSERVERS"
nonVisibleValue = "ZERO"
zFactor = 1
useEarthCurvature = "CURVED_EARTH"
refractivityCoefficient = 0.13
surfaceOffset = 500
observerElevation = 2000
observerOffset = 500
innerRadius = 20000
outerRadius = 100000
horizStartAngle = 45
horizEndAngle = 215
vertUpperAngle = 5
vertLowerAngle = -5

# Check out the ArcGIS Spatial Analyst extension license
arcpy.checkOutExtension("Spatial")

# Execute Visibility
outvis = arcpy.sa.Visibility(inRaster, inObserverFeatures, algOutput, analysisType,
                            nonVisibleValue, zFactor, useEarthCurvature,
                            refractivityCoefficient, surfaceOffset, observerElevation,
                            observerOffset, innerRadius, outerRadius, horizStartAngle,
                            horizEndAngle, vertUpperAngle, vertLowerAngle)

# Save the output
outvis.save("c:/sapyexamples/output/visiout1")

Información de licenciamiento

  • Basic: Requiere Spatial Analyst o 3D Analyst
  • Standard: Requiere Spatial Analyst o 3D Analyst
  • Advanced: Requiere Spatial Analyst o 3D Analyst

Temas relacionados