I am building a multimodal network with 4 modes (Walking, bike, bus and metro) using ArcGIS Desktop 10.5.

Now i would like to use costs in $ as an impedance for the best (thus cheapest) route. However, I have a metro that uses a fare/km but a bus system with a flat rate. This means u pay for example 2$ to get onto the bus system and from then on can go wherever you want to go within the system. Now how do i model this in a correct way, without charging the fee multiple times for each transfer?

2 Answers 2


I finally solved this issue with the use of the transfer edges between the walking infrastructure and the Public Transport System.

When adding the half of the fee in the on board transfer and half in the off board transfer, the total trip will take into account the whole fee.

It is also possible to use one-way costs, but it would require an extra step, even though this might be more pure.


I'd do all of that work in the output attribute table with field calculator.

For the bus, you already know it's a flat fee so no matter the time/distance, it's $2, right? All your output would be 2, no matter what. Each line, no matter the length, = $2.

For the metro, you'd take your output paths' distances in the table, and use the field calculator in a new field to multiply the total accumulated km * the fare and voila you have your total cost.

  • I think the question is for the requests done through the analysis, how to manage the cost per segment. I think it should be via some code, which I haven't the slightest clue as how to write but instead of each segment having a fixed cost (fare/km, so calculated through these values) having a condition mentioning something in the lines of "If bus segment was taken, +2 but ignore all the others, else other calculations. Your suggestion would work if only 1 bus line segment was borrowed, if more were taken, I think the $2 would add up.
    – Louis
    May 8, 2017 at 19:30
  • with multiple modes, if bus is always $2 then divide 2 by the total # of nodes so with multiple rows in an attribute table they will always sum to $2. with metro, if it's a certain rate per 1 km, then multiply the rate per 1 km * the km distance for each row/segment, and sum. you could code that ahead of time or post-processing. either way you'd need a new field for the output. May 8, 2017 at 19:42
  • 1
    Thank you both a lot for your replies. I finally solved it by creating transfer lines to the bus network at which the flat fee was charged. The first half was charged at the tranfer edge when entering the bus infrastructure, the second half when leaving it.
    – Rogier
    May 9, 2017 at 21:45
  • @Rogier Please write that up as an answer - it is fine to self-answer (and encouraged)
    – PolyGeo
    Jun 1, 2017 at 10:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.