Asignación de la distancia de ruta (Spatial Analyst)
Resumen
Calcula la fuente más cercana a cada celda en función del coste acumulativo inferior sobre una superficie de coste a la vez que se tiene en cuenta la distancia de la superficie y los factores de coste vertical y horizontal.
Más información acerca del funcionamiento de las herramientas de distancia de ruta
Uso
Las herramientas de Distancia de ruta se comparan con las herramientas de Coste de distancia ya que ambas determinan el coste de viaje acumulativo mínimo desde un origen a cada ubicación de una superficie de ráster. Sin embargo, las herramientas de Distancia de ruta agregan más complejidad al análisis ya que son capaces de ajustar la distancia de superficie actual así como otros factores verticales y horizontales.
Los datos de origen de entrada pueden ser un ráster o una clase de entidad.
Cuando los datos de origen de entrada son un ráster, el conjunto de celdas de origen consta de todas las celdas del ráster de origen que tengan valores válidos. Las celdas con valores NoData no se incluyen en el conjunto de origen. El valor 0 se considera un origen legítimo. Se puede crear fácilmente un ráster de origen mediante las herramientas de extracción.
-
Cuando los datos de origen de entrada son una clase de entidad, las ubicaciones de origen se convierten internamente en un ráster antes de realizar el análisis. La resolución del ráster se puede controlar con el parámetro Tamaño de celda de salida o con el entorno de Tamaño de celda. Por defecto, la resolución se determinará por medio el valor más bajo del ancho o la altura de la extensión de las entidades de entrada, en la referencia espacial de entrada, dividido por 250.
Al utilizar datos de entidad poligonal para los datos de origen de entrada, se debe tener cuidado con la manera en que el tamaño de celda de salida se maneja cuando es grueso en relación con los detalles presentes en la entrada El proceso interno de rasterización emplea el mismo Tipo de asignación de celda por defecto que la herramienta Polígono a ráster, que es CELL_CENTER. Esto significa que los datos no ubicados en el centro de la celda no se incluirán en la salida de origen rasterizada intermedia, y por lo tanto no se representan en los cálculos de distancia. Por ejemplo, si sus orígenes son una serie de polígonos pequeños, como huellas de edificios, que son pequeñas en relación con el tamaño de la celda de salida, es posible que solo algunos de ellos caigan debajo de los centros de las celdas ráster de salida, ocasionando aparentemente que la mayor parte de los otros se pierdan en el análisis.
Para evitar esta situación, como un paso intermedio, puede rasterizar las entidades de entrada directamente con la herramienta Polígono a ráster y establecer un campo de Prioridad, y utilizar la salida resultante como entrada para la herramienta de distancia. Alternativamente, puede seleccionar un tamaño de celda lo suficientemente pequeña para capturar la cantidad adecuada de detalle de las entidades de entrada.
Para calcular la asignación, las ubicaciones de origen pueden tener un valor asociado, que se puede especificar mediante el parámetro Campo fuente. Si el origen de entrada es un ráster entero, el campo predeterminado es VALUE. Si es una entidad, será el primer campo entero de la tabla de atributos. Si los datos de origen de entrada son un ráster de punto flotante, se debe especificar un parámetro de ráster de valor entero.
Las celdas con NoData actúan como barreras en las herramientas de Distancia de ruta. El coste de distancia de las celdas detrás de los valores NoData se calcula mediante el coste acumulativo necesario para rodear la barrera NoData. Cualquier ubicación de celdas asignada como NoData en cualquiera de los rásteres de entrada recibirá NoData en todos los rásteres de salida.
Si los datos de origen de entrada y el ráster de costes son extensiones diferentes, la extensión de salida predeterminada es la intersección de los dos. Para obtener una superficie de distancia de costes para toda la extensión, seleccione la opción Combinación de entradas de la configuración del entorno de salida Extensión.
Si se ha establecido una Máscara en el entorno, todas las celdas con máscara se tratarán como valores NoData.
Cuando se ha definido una máscara en la ventana Análisis ráster y las celdas que serán enmascaradas crearán una máscara en el origen, los cálculos ocurrirán en las celdas de origen restantes. Las celdas de origen con máscaras no se considerarán en los cómputos. Las ubicaciones de estas celdas se asignarán como NoData en todos los rásteres de salida (distancia, asignación y vínculo anterior).
La salida de la herramienta Orientación se puede utilizar como entrada para el Ráster horizontal de entrada.
-
La Distancia máxima se especifica en las mismas unidades de coste que las del ráster de costes.
-
En el ráster de distancia de salida, la distancia de menor coste (o distancia de coste acumulativo mínimo) de una celda a un conjunto de ubicaciones de origen es el límite más bajo de las distancias de menor coste desde la celda hasta todas las ubicaciones de origen.
-
Los valores predeterminados para los modificadores del Factor horizontal son:
Keywords Zero factor Cut angle Slope Side value -------------- ----------- ----------- ----- --------- Binary 1.0 45 ~ ~ Forward 0.5 45 (fixed) ~ 1.0 Linear 0.5 181 1/90 ~ Inverse linear 2.0 180 -1/90 ~
-
Los valores predeterminados para los modificadores del Factor vertical son:
Keyword Zero factor Low cut Height cut Slope Power Cos Sec angle angle power power ------------------------ ----------- ------- ---------- ----- ----- ----- ----- Binary 1.0 -30 30 ~ ~ ~ ~ Linear 1.0 -90 90 1/90 ~ ~ ~ Symmetric linear 1.0 -90 90 1/90 ~ ~ ~ Inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Symmetric inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Cos ~ -90 90 ~ 1.0 ~ ~ Sec ~ -90 90 ~ 1.0 ~ ~ Cos_sec ~ -90 90 ~ ~ 1.0 1.0 Sec_cos ~ -90 90 ~ ~ 1.0 1.0
Sintaxis
Parámetro | Explicación | Tipo de datos | |
in_source_data |
Ubicaciones de origen de entrada. Esto es un dataset de entidades o ráster que identifica las celdas o las ubicaciones para las cuales se calcula la distancia de menor coste acumulado de cada ubicación de celda de salida. Para los rásteres, el tipo de entrada puede ser de tipo entero o punto flotante. Si el ráster de origen de entrada es de punto flotante, se debe establecer el {in_value_raster} y debe ser del tipo entero. El ráster de valores tendrá precedencia sobre cualquier configuración del {source_field}. | Raster Layer | Feature Layer | |
source_field (Opcional) | El campo que se utiliza para asignar los valores a las ubicaciones de origen. Debe ser de tipo entero. Si el {in_value_raster} se ha establecido, los valores de esa entrada tendrán precedencia sobre cualquier configuración para el {source_field}. | Field | |
in_cost_raster (Opcional) |
Ráster que define la impedancia o el coste de hacer un movimiento planimétrico por medio de cada celda. El valor de cada ubicación de celda representa la distancia de coste por unidad para moverse a través de la celda. Cada valor de ubicación de celda se multiplica por la resolución de la celda mientras que también se compensa por el movimiento diagonal para obtener el coste total de pasar por medio de la celda. Los valores del ráster de coste pueden ser enteros o de punto flotante, pero no pueden ser negativos o cero (no puede tener un coste negativo o cero). | Raster Layer | |
in_surface_raster (Opcional) |
Ráster que define los valores de elevación de cada ubicación de celda. Los valores se utilizan para calcular la distancia de la superficie actual cubierta al pasar entre las celdas. | Raster Layer | |
in_horizontal_raster (Opcional) |
Ráster que define la dirección horizontal de cada celda. Los valores del ráster deben ser enteros comprendidos entre 0 y 360 con 0 grados al norte o hacia la parte superior de la pantalla, y que aumentan en el sentido de las agujas del reloj. Se les debe dar un valor de -1 a las áreas planas. Los valores de cada ubicación se utilizarán en conjunto con el {horizontal_factor} para determinar el coste horizontal incurrido al realizar el movimiento de una celda hacia sus elementos próximos. | Raster Layer | |
horizontal_factor (Opcional) |
Los objetos de Factor horizontal definen la relación que existe entre el factor de coste horizontal y el ángulo de movimiento relativo horizontal. Existen varios factores con modificadores que se pueden seleccionar que identifican un gráfico de factor horizontal definido. Además, se puede utilizar una tabla para crear un gráfico personalizado. Los gráficos se utilizan para identificar el factor horizontal utilizado para calcular el coste total de realizar el movimiento hacia una celda próxima. En las siguientes explicaciones, se utilizan dos acrónimos: "HF" significa factor horizontal, lo que define la dificultad horizontal con la se encuentra al realizar un movimiento desde una celda a la siguiente; y "HRMA" que significa ángulo de movimiento relativo horizontal, que define el ángulo entre la dirección horizontal de una celda y la dirección del movimiento. El objeto se presenta de las siguientes maneras: Sus definiciones y parámetros son:
Los Modificadores para las palabras clave horizontales son:
| Horizontal factor | |
in_vertical_raster (Opcional) |
Ráster que define los valores z de cada ubicación de celda. Los valores se utilizan para calcular la pendiente utilizada para identificar el factor vertical incurrido al realizar un movimiento de una celda a otra. | Raster Layer | |
vertical_factor (Opcional) |
Los objetos del Factor vertical definen la relación que existe entre el factor de coste vertical y el ángulo de movimiento relativo vertical (VRMA). Existen varios factores con modificadores que se pueden seleccionar que identifican un gráfico de factor vertical definido. Además, se puede utilizar una tabla para crear un gráfico personalizado. Los gráficos se utilizan para identificar el factor vertical utilizado para calcular el coste total de realizar el movimiento hacia una celda próxima. En las siguientes explicaciones, se utilizan dos acrónimos: "VF" significa factor vertical, lo que define la dificultad vertical con la se encuentra al realizar un movimiento desde una celda a la siguiente; y "VRMA" que significa ángulo de movimiento relativo vertical, que identifica el ángulo de pendiente entre la FROM o celda de procesamiento y la celda TO. El objeto se presenta de las siguientes maneras:
Sus definiciones y parámetros son:
Los Modificadores de los parámetros verticales son:
| Vertical factor | |
maximum_distance (Opcional) | Define el umbral que los valores de coste acumulado no pueden superar. Si un valor de distancia de coste acumulado supera este valor, el valor de salida de la ubicación de la celda será NoData. La distancia máxima define la extensión por la cual se calculan las distancias de coste acumulado. La distancia predeterminada es hasta el borde del ráster de salida. | Double | |
in_value_raster (Opcional) |
Ráster entero de entrada que identifica los valores de la zona que se deben utilizar para cada ubicación de origen de entrada. En cada ubicación de origen (celda o entidad), el valor definido por el {in_value_raster} se asignará a todas las celdas asignadas a la ubicación de origen para el cómputo. El ráster de valores tendrá precedencia sobre cualquier configuración del {source_field}. | Raster Layer | |
out_distance_raster (Opcional) |
Ráster de distancia de ruta de salida. El ráster de distancia de ruta de salida identifica, para cada celda, la menor distancia de coste acumulado sobre una superficie hacia las ubicaciones de origen identificadas, mientras que representa la distancia de superficie así como los factores de superficie vertical y horizontal. Un origen puede ser una celda, un conjunto de celdas o una o más ubicaciones de entidades. El ráster de salida es de tipo de punto flotante. | Raster Dataset | |
out_backlink_raster (Opcional) |
Ráster de vínculo anterior de coste de salida. El ráster de vínculo anterior contiene valores de 0 a 8, que definen la dirección o identifican la celda próxima (la celda que sigue) a lo largo de la ruta con menor coste acumulativo desde una celda para alcanzar la fuente de menor coste, mientras que representa la distancia de superficie así como los factores de superficie vertical y horizontal. Si la ruta es pasar al elemento próximo derecho, se le asignará a la celda el valor 1, 2 para la celda diagonal derecha inferior y continuando en el sentido de las agujas del reloj. El valor 0 se reserva para las celdas de origen. | Raster Dataset |
Valor de retorno
Nombre | Explicación | Tipo de datos |
out_allocation_raster |
El ráster de asignación de la distancia de ruta de salida. Este ráster identifica la zona de cada ubicación de origen (celda o entidad) que podría alcanzarse con el menor coste acumulativo, teniendo en cuenta la distancia de la superficie y los factores de coste horizontal y vertical. El ráster de salida no es de tipo entero. | Raster |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la herramienta PathDistanceAllocation.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
pathAlloc = PathAllocation("observers.shp", "costraster", "elevation", "backlink2",
HfForward(0.5, 1.0), "focalcost.tif", VfBinary(1.0, -30, 30),
25000, "eucdirout", "FID", "c:/sapyexamples/output/optpathdist",
"c:/sapyexamples/output/optpathbl")
pathAlloc.save("c:/sapyexamples/output/allocpath")
Calcula la fuente más cercana a cada celda en función del coste acumulativo inferior sobre una superficie de coste a la vez que se tiene en cuenta la distancia de la superficie y los factores de coste vertical y horizontal.
# Name: PathAllocation_Ex_02.py
# Description: Calculates, for each cell, its nearest source based
# on the least accumulative cost over a cost surface,
# while accounting for surface distance and horizontal
# and vertical cost factors.
# 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
inSource = "observers.shp"
costRast = "costraster"
surfaceRast = "elevation"
# The horizontal factor
inHoriz = "backlink2"
# Create the HfForward Object
zeroFactor = 0.5
sideValue = 1.0
myHorizFactor = HfForward(zeroFactor, sideValue)
#The vertical factor
inVertical = "focalcost.tif"
# Create the VfBinary Object
zeroFactor = 1.0
lowCutAngle = -30
highCutAngle = 30
myVerticalFactor = VfBinary(zeroFactor, lowCutAngle, highCutAngle)
maxDist = 25000
valRaster = "eucdirout"
sourceField = "FID"
optPathDistOut = "c:/sapyexamples/output/optdistpath"
optPathBLOut = "c:/sapyexamples/output/pathblinkout"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute PathAllocation
pathAlloc = PathAllocation(inSource, costRast, surfaceRast,
inHoriz, myHorizFactor, inVertical, myVerticalFactor,
maxDist, valRaster, sourceField,
optPathDistOut, optPathBLOut)
# Save the output
pathAlloc.save("c:/sapyexamples/output/allocpath02")