Disponible con una licencia de Spatial 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
Uso
Esta herramienta admite dos tipos de análisis de visibilidad, Frecuencia y Observadores, que se controlan mediante el parámetro de la 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 válidos para 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ámetro | Explicación | Tipo 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.
| String |
nonvisible_cell_value (Opcional) | Valor asignado 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.
| Boolean |
refractivity_coefficient (Opcional) | Coeficiente de la refracción de la luz visible en el aire. El valor predeterminado es 0.13. | Double |
surface_offset (Opcional) | Este valor indica una distancia vertical que se añadirá 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 usa un 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. | String |
observer_elevation (Opcional) | Este valor se usa para definir 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 usa un 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. | String |
observer_offset (Opcional) | Este valor indica una distancia vertical que se añadirá 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 usa un 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. | String |
inner_radius (Opcional) | Este valor define 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étric bidimensional. Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico. De forma predeterminada, se usa un 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. | String |
outer_radius (Opcional) | Este valor define 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étric bidimensional. Puede seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico. De forma predeterminada, se usa un 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. | String |
horizontal_start_angle (Opcional) | Este valor define 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 usa un 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. | String |
horizontal_end_angle (Opcional) | Este valor define 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 usa un 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. | String |
vertical_upper_angle (Opcional) | Este valor define el límite del ángulo vertical superior del escaneo sobre un plano horizontal. El valor debe especificarse en grados de 0 a 90 y puede ser un entero o un número 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 usa un 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. | String |
vertical_lower_angle (Opcional) | Este valor define el límite del ángulo vertical inferior del escaneo debajo de un plano horizontal. El valor debe especificarse en grados de -90 a 0 y puede ser un entero o un número 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 usa un 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. | String |
Valor de retorno
Nombre | Explicación | Tipo 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 de 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 (secuencia de comandos 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")
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere Spatial Analyst o 3D Analyst
- ArcGIS Desktop Standard: Requiere Spatial Analyst o 3D Analyst
- ArcGIS Desktop Advanced: Requiere Spatial Analyst o 3D Analyst