I am using ArcMap 10.4.1 with NA. I generate 2 routes with the exact same start and end points, network dataset and restrictions. In the first case I use Length as an impedance and in the second case I use Exposure. This is the only difference. For some reason, however, the exposure in the second is significantly higher than the first. In other similar instances (with different start and end points) the exposure in the second may be lower than the first, but the length is actually greater for the route where length is set as impedance than it is where exposure is set as an impedance.
How is this possible? Am I using impedance incorrectly?
When you solve on Length, the route is minimized for that attribute. It can additionally report the sum of another attribute like exposure along that path. But it is not trying to minimize exposure. When you switch to solving on exposure, it will find a different path based on minimizing exposure and honoring whatever other things you may set like restrictions, etc. You cannot compare the two paths for the "accumulated" attributes and infer that something is wrong.
The question is, given that you solved on length, is the path returned correct? Similarly, if you solved it on exposure, is the resulting path correct? If not, make sure you are setting up the impedances, restrictions and connectivity policy correctly.
Thanks Jay, but I politely disagree. If I am solving for length it means that there is no other route (given the same network and parameters) that is shorter. Yet, when I change the impedance characteristic to exposure and solve (with the same network and parameters) it produces a shorter route. Technically the path is correct in that it get you from A to B but it is clearly not optimal as there is another one that produces a lower aggregate impedance. I think this is a problem.
Upon further sleuthing I found the culprit to be the avoid/prefer restrictions. When they were turned off the router works as expected - routes generated with a length impedance were shorter than those with an exposure impedance and routes generated with an exposure impedance had lower cumulative exposures than routes with a length impedance. In general, I find the avoid/prefer restrictions to be a bit "black boxy." Instead I have started to create my own cost attributes and modify them to reflect the avoid/prefer restrictions and turned off those restrictions when solving. For example, you can create a cost attribute based on length but multiply it by some constant less than 1 (say .9) for segments that you would prefer. Similarly, you could multiply the cost attribute by a constant greater than 1 (say 1.1) for avoid segments. If you want to increase preference or avoidance either decrease or increase the constant accordingly. This gives you greater transparency and granularity of control.
The route solver when used with "heuristics" such as use hierarchy or use the avoid/prefer restrictions is no longer solving the shortest path. So I am glad you verified that you do get the shortest path when these things are not being used. Avoid/prefer have their use in cases like avoid a certain area unless that is the only way to get to it such as a gated community. You can obviously scale the costs as well. If you only have a few edges to scale, then another way is to use scaled cost line barriers. You can scale them above or below 1. The use case there is slow downs due to weather conditions or accidents. The advantage is that you do not have to edit/rebuild the network as these are applied to the route analysis layers.