Disponible con una licencia de Spatial Analyst.
Resumen
Calcula el menor coste de distancia acumulativo para cada celda desde o hasta el origen de menor coste por una superficie de coste.
Más información sobre el funcionamiento de las herramientas de Distancia de coste
Ilustración
Uso
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 entorno Tamaño de celda. De forma predeterminada, la resolución se establece como la resolución del ráster de coste de entrada.
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 de rasterización interno emplea el mismo Tipo de asignación de celdas predeterminado que la herramienta De polígono a ráster, que es el método de centro de la celda. 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 tanto no se representarán 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ños en relación con el tamaño de la celda de salida, es posible que solo algunos de ellos estén debajo de los centros de las celdas ráster de salida, lo que haría probablemente que la mayor parte de los otros se perdiera en el análisis.
Para evitar esta situación, como paso intermedio, podría rasterizar las entidades de entrada directamente con la herramienta De polígono a ráster y establecer un campo de Prioridad. A continuación, utilice la salida resultante como entrada de la herramienta de distancia que desee usar. Alternativamente, puede seleccionar un tamaño de celda pequeño para capturar la cantidad adecuada de detalle de las entidades de entrada.
Cuando la entrada de la fuente es una entidad, de manera predeterminada, se utilizará el primer campo disponible válido. Si no existen campos válidos, se utilizará el campo ObjectID (por ejemplo, OID o FID, dependiendo del tipo de entrada de entidad).
Las ubicaciones de las celdas NoData en el Ráster de entrada de costes actúan como barreras en las herramientas de superficie de costes. Cualquier ubicación de celdas a la que se le asigne NoData en la superficie de coste de entrada recibirá NoData en todos los rásteres de salida (coste de distancia, asignación y vínculo).
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.
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, el menor coste de distancia (o coste de distancia acumulativo mínimo) de una celda desde o hasta un conjunto de ubicaciones de origen es el límite más bajo de los menores costes de distancia desde la celda hasta todas las ubicaciones de origen.
El ráster de costes no puede contener valores de cero debido a que el algoritmo es un proceso multiplicativo. Si el ráster de costes contiene valores de cero y estos valores representan las áreas de más bajo coste, cambie los valores de cero a un valor positivo pequeño (tal como 0,01) antes de ejecutar Coste de distancia, ejecutando primero la herramienta Evaluación condicional. Si las áreas con un valor de cero representan áreas que deberían excluirse del análisis, estos valores deberían cambiarse a NoData antes de ejecutar Coste de distancia, ejecutando primero la herramienta Establecer nulos.
Las características del origen, o los elementos que se mueven desde o hasta un origen, se pueden controlar por medio de parámetros específicos. El parámetro Multiplicador del coste en origen determina el modo de viaje o la magnitud en el origen, Coste de inicio en origen define el coste inicial antes de que empiece el movimiento, Tasa de resistencia en origen es un ajuste dinámico que refleja el impacto del coste acumulado, por ejemplo, simulando cuánto se cansa un senderista y Capacidad en origen define cuánto coste puede asimilar un origen antes de alcanzar su límite. La Dirección del viaje identifica si el elemento en movimiento parte de un origen y se mueve a ubicaciones distintas del origen o parte de ubicaciones distintas del origen y regresa a un origen.
Si se especifica Coste de inicio en origen y la Dirección del viaje es Viaje desde el origen, las ubicaciones de origen de la superficie de coste de distancia de salida se establecerán en el valor de Coste de inicio en origen; de lo contrario, las ubicaciones de origen de la superficie de coste de distancia de salida se establecerán en cero.
Si alguno de los parámetros de las características del origen se especifica usando un campo, la característica del origen se aplicará para cada origen en función de la información del campo dado para los datos del origen. Cuando se especifica una palabra clave o un valor constante, se aplica a todos los orígenes.
Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento válidos para esta herramienta.
Sintaxis
CostDistance (in_source_data, in_cost_raster, {maximum_distance}, {out_backlink_raster}, {source_cost_multiplier}, {source_start_cost}, {source_resistance_rate}, {source_capacity}, {source_direction})
Parámetro | Explicación | Tipo de datos |
in_source_data | Ubicaciones de origen de entrada. Es un dataset de entidades o ráster que identifica las celdas o las ubicaciones desde o hasta las cuales se calcula el menor coste de distancia acumulado para cada ubicación de celda de salida. Para los rásteres, el tipo de entrada puede ser de tipo entero o punto flotante. | Raster Layer; Feature Layer |
in_cost_raster | 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 |
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 |
out_backlink_raster (Opcional) | Ráster de vínculo de coste de salida. El ráster de vínculo contiene valores de 0 a 8 que definen la dirección o identifican la siguiente celda vecina (la celda que sigue) a lo largo de la ruta con menor coste acumulativo desde una celda para llegar al origen de menor coste. 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 |
source_cost_multiplier (Opcional) | Multiplicador que se debe aplicar a los valores de coste. Permite controlar el modo de viaje o la magnitud en un origen. Cuanto mayor sea el multiplicador, mayor será el coste de moverse a través de cada celda. Los valores deben ser mayores que cero. El valor predeterminado es 1. | Double; Field |
source_start_cost (Opcional) | El coste de inicio a partir del cual empezarán los cálculos del coste. Permite especificar el coste fijo asociado a un origen. En lugar de empezar con un coste cero, el algoritmo de coste empezarán con el valor establecido en el source_start_cost. Los valores deben ser mayores o iguales que cero. El valor predeterminado es 0. | Double; Field |
source_resistance_rate (Opcional) | Este parámetro simula el aumento del esfuerzo para sobreponerse a los costes a medida que aumenta el coste acumulado. Se utiliza para modelar el cansancio del viajero. El coste acumulado que aumenta para llegar a una celda se multiplica por la tasa de resistencia y se agrega al coste de moverse a la celda siguiente. Es una versión modificada de una fórmula de tasa de interés compuesto que se usa para calcular el coste aparente de moverse por una celda. A medida que aumenta el valor de la tasa de resistencia, aumenta el coste de las celdas que se visitan más tarde. Cuando mayor sea la tasa de resistencia, más coste se agregará a la celda siguiente, que se calcula para cada movimiento posterior. Como la tasa de resistencia es similar a una tasa compuesta y normalmente los valores del coste acumulado son muy grandes, es recomendable usar tasas de resistencia pequeñas, como 0,02 o 0,005, o incluso menores, dependiendo de los valores del coste acumulado. Los valores deben ser mayores o iguales que cero. El valor predeterminado es 0. | Double; Field |
source_capacity (Opcional) | Define la capacidad de coste del viajero para un origen. Los cálculos de coste continúan para cada origen hasta que se alcanza la capacidad especificada. Los valores deben ser mayores que cero. La capacidad predeterminada es hasta el borde del ráster de salida. | Double; Field |
source_direction (Opcional) | Define la dirección del viajero cuando se aplica la tasa de resistencia en origen y el coste inicial en origen.
Especifique la palabra clave FROM_SOURCE o TO_SOURCE, que se aplicará a todos los orígenes o especifique un campo de los datos de origen que contenga las palabras clave para identificar la dirección de viaje para cada origen. Ese campo debe contener las cadenas de caracteres FROM_SOURCE o TO_SOURCE. | String; Field |
Valor de retorno
Nombre | Explicación | Tipo de datos |
out_distance_raster | Ráster de distancia de coste de salida. El ráster de distancia de coste identifica, para cada celda, la menor distancia de coste acumulado sobre una superficie de coste hacia las ubicaciones de origen identificadas. 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 |
Muestra de código
Ejemplo 1 de CostDistance (ventana de Python)
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la herramienta CostDistance.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCostDist = CostDistance("source.shp", "elevation", "", "backlink", "Multiplier", "StartCost", "Resistance", 500000)
outCostDist.save("C:/sapyexamples/output/costdist")
Ejemplo 2 de CostDistance (secuencia de comandos independiente)
Calcula el ráster de distancia de menor coste acumulado desde ubicaciones de origen del archivo de forma de puntos.
# Name: CostDistance_Ex_02.py
# Description: Calculates for each cell the least accumulative cost distance
# to the nearest source over a cost surface.
# 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
inSourceData = "source.shp"
inCostRaster = "elevation"
maxDistance = ""
outBkLinkRaster = "C:/sapyexamples/output/outbklink"
multiplier = "Multiplier"
startCost = "StartCost"
resistance = "Resistance"
capacity = 500000
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CostDistance
outCostDistance = CostDistance(inSourceData, inCostRaster, maxDistance, outBkLinkRaster, multiplier, startCost,
resistance, capacity)
# Save the output
outCostDistance.save("C:/sapyexamples/output/outcostdist")
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere Spatial Analyst
- ArcGIS Desktop Standard: Requiere Spatial Analyst
- ArcGIS Desktop Advanced: Requiere Spatial Analyst