Disponible con una licencia de 3D Analyst.
Resumen
Determina las ubicaciones de superficie ráster visibles para un conjunto de entidades de observador utilizando métodos geodésicos.
Más información sobre cómo funciona la herramienta Cuenca visual 2
Ilustración
Uso
Esta herramienta realiza dos tipos de análisis de visibilidad, Frecuencia y Observadores, que se pueden establecer usando el parámetro Tipo de análisis.
Para garantizar la exactitud de la salida, asigne un sistema de coordenadas verticales al ráster de entrada, en el caso de que todavía no lo tenga.
Cuenca visual 2 no requiere ningún parámetro de factor z. Calculará un factor z internamente usando la unidad vertical (Z) y las unidades (XY) del mapa a partir de la referencia espacial del ráster de entrada.
-
Los rásteres de entrada que contienen ruido, más frecuentes en los datos de alta resolución, pueden producir algunos resultados inesperados. Antes de ejecutar esta herramienta puede corregir los datos en un paso previo al procesamiento. Si la extensión Spatial Analyst de ArcGIS está disponible, puede suavizar el efecto del error usando primero las herramientas Estadísticas focalizadas o Filtro antes de realizar la operación de cuenca visual.
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.
Para mejorar el rendimiento, puede establecer explícitamente el parámetro Radio externo en un valor que represente la distancia de visualización máxima de interés para su análisis.
De manera predeterminada, el parámetro Método de análisis utiliza la opción ALL_SIGHTLINES, que ofrece la salida más exacta. Para mejorar el rendimiento de la herramienta en cuanto al tiempo de procesamiento, utilice la opción PERIMETER_SIGHTLINES.
Los parámetros de observador relacionados con la altura, como Desplazamiento de superficie, Elevación de observador y Desplazamiento de observador, pueden especificarse como una unidad lineal o como un campo. Durante el cálculo, el valor de la unidad lineal se convertirá internamente a la unidad Z del ráster de entrada. Sin embargo, si la unidad lineal no se conoce o se ha especificado un campo numérico, se supone que el valor estará en la unidad Z del ráster de entrada.
Los parámetros de observador relacionados con las distancias de visualización, como el Radio interno y el Radio externo, pueden especificarse como una unidad lineal o como un campo. Durante el cálculo, el valor de la unidad lineal se convertirá internamente a las unidades XY del ráster de entrada. Sin embargo, si la unidad lineal no se conoce o se ha especificado un campo numérico, se supone que el valor estará en la unidad XY del ráster de entrada.
El campo especificado para un parámetro de observador, como Desplazamiento de superficie o Desplazamiento de observador, puede ser un tipo de cadena de caracteres que contiene un valor numérico y una unidad. Por ejemplo, si el campo obs_height se ha especificado para Desplazamiento de observador, puede contener valores como «6 pies».
En las secuencias de comandos, los parámetros de observador como observer_offset se pueden especificar en varias formas de cadenas de caracteres. En cada forma, se analiza un valor y una unidad lineal para la cadena de caracteres. En la tabla siguiente se muestran algunos ejemplos de cadenas de caracteres de entrada y cómo se determina la unidad lineal en cada caso. Puede seguir el mismo patrón para otros parámetros.
Ejemplos de cadenas de caracteres de entrada y unidades lineales.Ejemplo de cadena de caracteres de entrada para Desplazamiento de observador Unidad lineal usada ' ' o '#'
Se usa el valor y la unidad predeterminados, que es 1 metro.
'6'
El Desplazamiento de observador es 6 y como no se especifica ninguna unidad, la herramienta usaría la unidad predeterminada, el metro.
'6 Feet'
El Desplazamiento de observador es 6 pies.
'6 Unknown'
El Desplazamiento de observador es 6 y como no se especifica ninguna unidad, la herramienta usaría la unidad predeterminada, el metro.
Esta herramienta se beneficiará automáticamente de una GPU (unidad de procesamiento de gráficos) para mejorar el rendimiento de la herramienta, si está disponible en el sistema y se ha configurado correctamente.
Encontrará más información sobre cómo configurar su dispositivo de GPU en la ayuda de la extensión Spatial Analyst en el tema de ayuda Procesamiento GPU con Spatial Analyst.
Si no desea que esta herramienta aproveche los dispositivos de GPU disponibles en el sistema, cree una variable de entorno de sistema CUDA_VISIBLE_DEVICES, establezca su valor en -1 y reinicie la aplicación. Así, la herramienta se ejecutará usando la CPU únicamente. Para permitir que la herramienta vuelva a usar un dispositivo GPU, elimine la variable de entorno de sistema CUDA_VISIBLE_DEVICES o establezca el valor de esta variable de entorno en el valor del índice (0 para el primero, 1 para el segundo y así sucesivamente) del dispositivo GPU que le gustaría utilizar y reinicie la aplicación.
Sintaxis
Viewshed2_3d (in_raster, in_observer_features, out_raster, {out_agl_raster}, {analysis_type}, {vertical_error}, {out_observer_region_relationship_table}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {inner_radius_is_3d}, {outer_radius}, {outer_radius_is_3d}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle}, {analysis_method})
Parámetro | Explicación | Tipo de datos |
in_raster | Ráster de entrada de superficie. El ráster puede ser un entero o punto flotante. El ráster de entrada se transforma en un sistema de coordenadas geocéntricas 3D durante el cálculo de la visibilidad. Las celdas NoData del ráster de entrada no bloquean la determinación de visibilidad. | Raster Layer |
in_observer_features | La clase de entidad de entrada que identifica las ubicaciones del observador. Pueden ser entidades de punto, multipunto o de polilínea. La clase de entidad de entrada se transforma en un sistema de coordenadas geocéntricas 3D durante el cálculo de la visibilidad. En el cálculo se ignorarán los observadores que estén fuera de la extensión del ráster de superficie o ubicados en celdas NoData. | Feature Layer |
out_raster | El ráster de salida. Para el tipo de análisis FREQUENCY, si el parámetro de error vertical es 0 o no se ha especificado, el ráster de salida registra el número de veces que cada ubicación de celda del ráster de superficie de entrada puede ser vista por los puntos de observación de entrada. Si el parámetro de error vertical es mayor que 0, cada celda del ráster de salida registrará la suma de probabilidades de que la celda sea visible para cualquiera de los observadores. Para el tipo de análisis de OBSERVERS, el ráster de salida registra los Id. de región únicos para las áreas visibles, que se pueden volver a relacionar con las entidades del observador mediante la tabla de relaciones observador-región de salida. | Raster Dataset |
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. Se asignará 0 a las celdas que ya estaban visibles en este ráster de salida. Cuando el parámetro de error vertical sea 0, el ráster AGL de salida será un ráster de una banda. Cuando el error vertical sea mayor que 0, para tener en cuenta los efectos aleatorios del ráster de entrada, el ráster AGL de salida se creará como un ráster de tres bandas. La primera banda representa los valores medios AGL; la segunda banda representa los valores mínimos AGL y la tercera banda representa los valores máximos AGL. | Raster Dataset |
analysis_type (Opcional) | Seleccione el tipo de análisis de visibilidad que desea realizar, ya sea determinando el grado de visibilidad de cada celda para los observadores, o bien identificando qué observadores estarán visibles para cada ubicación de la superficie.
| String |
vertical_error (Opcional) | La cantidad de incertidumbre (error cuadrático medio o RMSE) en los valores de elevación de superficie. Se trata de un valor de punto flotante que representa el error esperado en los valores de elevación de entrada. Cuando este parámetro tiene asignado un valor mayor que 0, el ráster de visibilidad de salida será de punto flotante. En este caso, cada uno de los valores de celda del ráster de visibilidad representará la suma de probabilidades de que la celda sea visible para cualquiera de los observadores. Cuando el tipo de análisis es OBSERVERS o el método de análisis es PERIMETER_SIGHTLINES, este parámetro se deshabilita. | Linear Unit |
out_observer_region_relationship_table (Opcional) | La tabla de salida para identificar las regiones que son visibles para cada observador. Esta tabla se puede relacionar con la clase de entidad de observador de entrada y con el ráster de visibilidad de salida para identificar las regiones visibles para determinados observadores. Esta salida solo se crea cuando el tipo de análisis es de OBSERVERS. | Table |
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. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. El valor predeterminado es 0. | Linear Unit; Field |
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. Si no se especifica este parámetro, la elevación del observador se obtendrá del ráster de superficie mediante interpolación bilineal. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. | Linear Unit; Field |
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. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. El valor predeterminado es 1 metro. | Linear Unit; Field |
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 seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. El valor predeterminado es 0. | Linear Unit; Field |
inner_radius_is_3d (Opcional) | Tipo de distancia del parámetro de radio interno.
| Boolean |
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 seleccionar un campo en el dataset de observadores de entrada o puede especificar un valor numérico. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. | Linear Unit; Field |
outer_radius_is_3d (Opcional) | Tipo de distancia del parámetro de radio externo.
| Boolean |
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. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. | Double; Field |
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. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. | Double; Field |
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. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. El valor predeterminado es 90. | Double; Field |
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. Si se establece un valor para este parámetro, ese valor se aplicará a todos los observadores. Para especificar valores diferentes para cada observador, establezca este parámetro con un campo del dataset de entidades de observador de entrada. El valor predeterminado es -90. | Double; Field |
analysis_method (Opcional) | Seleccione el método por el cual se calculará la visibilidad. Esta opción le permite restar cierto grado de precisión para aumentar el rendimiento.
| String |
Muestra de código
Ejemplo 1 de Viewshed2 (ventana de Python)
En este ejemplo se determinan las ubicaciones de superficie visibles para un conjunto de observadores sin usar ningún parámetro de observador.
import arcpy
from arcpy import env
env.workspace = "C:/data"
result = arcpy.Viewshed2_3d("elevation", "obser1.shp", "C:/output/outvwshd01",
"", "OBSERVERS", "", "C:/output/obstable01.dbf")
Ejemplo 2 de Viewshed2(secuencia de comandos independiente)
En este ejemplo se determinan las ubicaciones de superficie visibles para un conjunto de observadores usando los atributos de la clase de entidad de entrada como parámetros del observador.
# Name: Viewshed_3d_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
inRaster = "elevation"
inObservers = "obser2.shp"
outRaster = "c:/output/outvshd02"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/output/obser_region2.dbf"
refractCoeff = ""
surfaceOffset = "offsetb"
observerElevation = "spot"
observerOffset = "offseta"
innerRadius = "radius1"
innerIs3D = "False"
outerRadius = "radius2"
outerIs3D = "True"
horizStartAngle = "azimuth1"
horizEndAngle = "azimuth2"
vertUpperAngle = "vert1"
vertLowerAngle = "vert2"
analysisMethod = "ALL_SIGHTLINES"
# Execute Viewshed2
result = arcpy.Viewshed2_3d(inRaster, inObservers, outRaster, outAGL,
analysisType, verticalError,
outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere 3D Analyst o Spatial Analyst
- ArcGIS Desktop Standard: Requiere 3D Analyst o Spatial Analyst
- ArcGIS Desktop Advanced: Requiere 3D Analyst o Spatial Analyst