Cómo realizar cálculos de la ruta más corta en una red con FME Desktop

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (7 votos, media: 5,00 sobre 5)
Cargando…

El cálculo de la ruta más corta se pueden llevar a cabo en FME utilizando el transformador ShortestPathFinder. Este transformador calcula la ruta más corta desde un nodo de origen a un nodo de destino en una red determinada.

FMEEl inicio y el final de la ruta se define mediante una línea From-To. Se puede pasar cualquier número de líneas From-To a ShortestPathFinder para realizar múltiples cálculos en la misma red.

FMENo obstante se deben tener en cuenta algunas consideraciones:

  • El puerto de entrada From-To acepta entidades de línea, no entidades de punto.
  • Una ruta puede ser ponderada por un atributo que no sea la longitud; por ejemplo, a cada segmento de la red se le puede dar un coste relacionado con los límites de velocidad.
  • La línea From-To define el inicio y el final de la ruta, pero también puede contener puntos intermedios por los que la ruta debe pasar.
  • Los puntos en una línea From-To deben coincidir con una coordenada en la red. Si no lo hacen, entonces hay un parámetro disponible para establecer una tolerancia permitida.

Rutas por coste

Para evitar generar una ruta en el sentido contrario de una calle de sentido único se debe utilizar un coste en lugar de solamente la distancia. Es necesario que las calles de un solo sentido estén marcadas (generalmente con un atributo) y que su dirección (desde la primera coordenada hasta la última) coincida con la dirección de viaje permitida.

Para añadir un coste se deberá filtrar entre las calles de una dirección y las de doble sentido. Esto se puede realizar mediante un transformador Tester. De esta manera tendremos dos flujos, uno con las calles de un sentido, otros con las dobles. A cada uno de estos dos flujos se les puede añadir (por ejemplo) un AttributeManager.

FMEA estos AttributeManager se pueden añadir dos atributos ForwardCost y ReverseCost. En el flujo por donde pasarán las calles de un sentido se debe establecer en el atributo ForwardCost en un valor de 1 (que representa la dirección correcta en una calle de sentido único) y ReverseCost en un valor de 9999 (que representa la dirección incorrecta en una calle de sentido único).

En el otro AttributeManager se deben establecer ambos atributos como 1, ya que el coste en ambas direcciones sería el mismo.

Una vez aquí, abriendo el cuadro diálogo de parámetros para el transformador ShortestPathFinder. Se puede cambiar el parámetro Cost Type de By Length a By Two Attributes. Así, se puede establecer el atributo ForwardCost como el atributo de coste directo y ReverseCost como el atributo de coste inverso. Así, la ruta que se calculará siempre pasará por las calles de la red dónde menos coste se incremente. El resultado ahora se vería algo parecido al siguiente:

Observe la diferencia entre esta salida del primer ejemplo, ya que usaba incorrectamente las calles de un solo sentido, mientras que en este segundo se evita hacerlo.

Si quieres aprender más sobre cómo manejar en profundidad esta herramienta, no te pierdas nuestro Curso de FME que dará comienzo el 21 de Mayo.

Autor: Carles Martí Montolío

Fuente de información e imágenes:  https://knowledge.safe.com

Dejar respuesta

Please enter your comment!
Please enter your name here