Cómo funcionan las herramientas de distancia de ruta

Todas las herramientas de distancia de ruta utilizan esencialmente el mismo algoritmo para calcular la salida. La diferencia esencial esta determinada por la salida primaria de cada herramienta.

La herramienta Distancia de ruta es la principal herramienta para el análisis de coste-distancia teniendo en cuenta los factores de coste horizontales y verticales así como la verdadera distancia de superficie. La herramienta Asignación de la distancia de ruta emplea el mismo algoritmo que devuelve como salida principal a un ráster que denota el origen más cercano de cada celda para cada ubicación. La herramienta Vínculo de menor distancia de ruta identifica la direccionalidad del elemento próximo que es la próxima celda en la ruta de menor coste acumulativo hasta el origen más cercano.

Cálculo de la distancia de ruta

Las herramientas de distancia de ruta crean un ráster de salida en el que a cada celda se le asigna el coste acumulativo de la celda de origen de menor coste. El algoritmo utiliza la representación de celda de nodo/vínculo. En esta representación, el centro de una celda se considera un nodo y cada nodo se conecta, mediante vínculos, a los nodos adyacentes.

Cada vínculo tiene una impedancia asociada. La impedancia se deriva de los costes asociados con las celdas en cada extremo de vínculo (desde la superficie de coste) y desde la dirección de movimiento.

Para simplificar el debate, las fórmulas de la siguiente sección identifican cómo el coste de viaje se acumula entre celdas a lo largo de la superficie de coste. La modificación del coste para dar cuenta de la distancia de la superficie y los factores horizontales y verticales se abordará en una sección posterior.

Costes del viaje entre nodos

El coste de viajar de un nodo al siguiente depende de la orientación espacial de los nodos. La forma en que están conectadas las celdas también afecta el coste del viaje.

Coste del nodo adyacente

Cuando se mueve desde una celda hasta uno de sus cuatro elementos próximos directamente conectados, el coste para moverse a través de los vínculos hasta el nodo vecino es 1 por la celda 1, más la celda 2, dividido por 2:

 a1 = (cost1 + cost2) / 2
  • donde:

    cost1 es el coste de viajar hasta la celda 1.

    cost2 es el coste de viajar hasta la celda 2.

    a1 es el coste asignado al vínculo desde la celda 1 hasta la celda 2

    Cómputo del coste para celdas adyacentes

Coste perpendicular acumulativo

El coste acumulativo se determina mediante la siguiente fórmula:

 accum_cost = a1 + (cost2 + cost3) / 2
  • donde:

    cost2 es el coste de viajar hasta la celda 2.

    cost3 es el coste de viajar hasta la celda 3.

    accum_cost es el coste acumulativo para moverse hasta la celda 3 desde la celda 1.

    Nota: en la siguiente imagen, a2 es el coste para moverse desde la celda 2 hasta la celda 3.

Cómputo del coste para celdas no adyacentes

Coste del nodo diagonal

Si el movimiento es diagonal, el coste para viajar por el vínculo es 1,414214 (la raíz cuadrada de 2), multiplicado por el coste del viaje hasta la celda 1 más el coste del viaje hasta la celda 2, dividido por 2:

 a1 = 1.414214(cost1 + cost2) / 2
Cómputo del coste para celdas diagonales

Cuando se determina el coste acumulativo para el movimiento diagonal, se utiliza la siguiente fórmula:

 accum_cost = a1 +1.414214(cost2 + cost3) / 2

Lista de celdas de coste acumulativo

La creación de un ráster de coste de distancia acumulativo mediante la teoría de grafos se puede visualizar como un intento de identificar la celda de menor coste y agregarla a una lista de salida. Es un proceso iterativo que comienza con las celdas de origen. El objetivo de cada celda es ser asignada rápidamente al ráster de coste de distancia de salida.

Comparación de la distancia de ruta con el coste de distancia

El proceso que se lleva a cabo para la distancia de ruta es similar al proceso del coste de distancia (consulte Cómo funcionan las herramientas de coste de distancia). Primero, se identifican las celdas de origen. Después se determina el coste para viajar hacia cada elemento próximo contiguo a las celdas de origen. A continuación, cada una de las celdas próximas se enumeran desde la menos costosa hasta la más costosa. La ubicación de celda con el menor coste se quita de la lista. Finalmente, se determina el coste acumulativo más bajo hacia cada elemento próximo de la celda que se quitó de la lista.

Procesamiento de la lista de valores de coste acumulativo (3)

El proceso se repite hasta que se haya asignado un coste acumulativo a todas las celdas en el ráster. La diferencia entre las herramientas de coste de distancia y distancia de ruta es cómo se calcula el coste del movimiento desde una celda hacia la próxima.

Fórmula de distancia de ruta

Desde la perspectiva de la celda, el objetivo de las herramientas de distancia de ruta es que cada ubicación de celda en la extensión del análisis determine la ruta menos costosa para llegar a la celda desde el origen menos costoso. Cada celda deberá determinar la ruta de menor coste acumulativo desde un origen, el origen que permite la ruta de menor coste y la ruta de menor coste propiamente dicha.

Distancia de ruta

El coste para moverse entre las celdas a lo largo de la superficie de coste se determina por medio de las fórmulas que se trataron anteriormente. En la herramienta Distancia de ruta, estos costes (identificados como Cost_Surface en las ecuaciones a continuación) se pueden modificar por medio de la distancia de superficie (Surface_distance) y los factores horizontales y verticales. La fórmula utilizada para calcular el coste total del viaje desde la celda a hasta la celda b depende de si la dirección del viaje es perpendicular o diagonal:

  • Perpendicular:
    Cost_distance = (((Cost_Surface(a) * Horizontal_factor(a)) + (Cost_surface(b) * Horizontal_factor(b)))/2)
                    * Surface_distance(ab) * Vertical_factor(ab)
  • Diagonal:
    Cost_distance = (((Cost_Surface(a) * Horizontal_factor(a)) + (Cost_surface(b) * Horizontal_factor(b)))/2)
                    * 1.414214 * Surface_distance(ab) * Vertical_factor(ab)

Tenga en cuenta que la división por 2 de la fricción de los segmentos se posterga hasta que se integra el factor horizontal.

Si no se especifica una superficie de coste, se utilizará un coste de 1 de distancia por unidad (igual que aplicar un ráster de costes con valores que son todos 1). Tanto los factores horizontales como los verticales se aplican a una distancia por unidad. Los factores horizontales y verticales negativos no están permitidos. Sin embargo, como ambos factores son multiplicadores para el coste acumulado para cada celda, un factor inferior a 1 pero superior a 0 reduce el coste total de esa celda. Un factor vertical de cero, o ceros para ambos segmentos de los factores horizontales, tiene como resultado un coste cero para la celda.

Coste de distancia acumulativo

A continuación, se muestra el coste acumulativo para viajar desde la celda a hasta la celda c pasando por la celda b:

Accum_cost_distance = a1 + (((Cost_Surface(b) * Horizontal_factor(b)) + (Cost_surface(c) 
                      * Horizontal_factor(c)))/2) * Surface_distance(bc) * Vertical_factor(bc)
  • donde:

    a1 es el coste total para viajar desde la celda a hasta la celda b.

Parámetros horizontales y verticales

Hay varios tipos de parámetros que se pueden utilizar para controlar los factores de fricción horizontales y verticales. Para cada uno de estos factores, hay varios modificadores que se pueden utilizar para controlar más aún el análisis.

Para obtener más detalles sobre estos parámetros, consulte la siguiente sección:

Temas relacionados

5/10/2014