Network Analyst - Slope Restrictions

2572
2
07-08-2010 10:12 AM
Highlighted
New Contributor
Hello everyone,

I have a polyline shapefile describing a road network where every road has a slope associated with it.  I'm trying to compute service areas using distance as the cost but also using slope as restrictions (i.e. A vehicle cannot travel a road if the slope is greater than the vehicle's max allowable climbing slope). 

My problem is that the slopes are all positive values (magnitudes) and the slope limit only applies if the vehicle is traveling uphill and not downhill.  I have also been able to add elevation values to all the junctions in the Network Dataset.

How should I go about creating the right type of attributes and parameters in order to compute the service area?

Thanks for your help!

Juan
Tags (2)
Reply
0 Kudos
2 Replies
Highlighted
Esri Contributor
Juan,
   Your requirement can be modeled by using a network cost attribute to store the directional slope values for streets and using a parameterized restriction attribute. In a network dataset each edge can have two cost values, one in the digitized direction (or From To) and another against the digitized direction (or To From). So to create the necessary restriction attribute use these steps
   

  1. Create two fields called FromToSlope and ToFromSlope in your streets shapefile.

  2. Calculate the necessary slope values for each feature. In your case since the slope is applicable in uphill direction you can assign a constant value of 0 for the downhill direction. It might help you adjust your streets such that they are all digitized in uphill to downhill direction or vice versa. That way you can easily calculate the slope values in FromToSlope and ToFromSlope.

  3. Once the field calculation is done, add a new cost attribute called "Slope" in your network dataset.

  4. Assign a field evaluator to Slope attribute and use the FromToSlope and to ToFromSlope for the evaluator value.

  5. Next, create a Restriction attribute called "SlopeRestriction".

  6. Create a parameter for this attribute called "MaxUpHillSlope". This is the parameter that you will provide based on vehicle type.

  7. Use a function evaluator for SlopeRestriction attribute.

  8. For the evaluator expression, set Slope <= MaxUpHillSlope

  9. Build your network dataset.

  10. Now when you perform the service area analysis, make sure you use the SlopeRestriction attribute and you should also specify the MaxUpHillSlope parameter value based on the vehicle for which you are calculating the service area.

Hope this helps
Deelesh
Reply
0 Kudos
Highlighted
Esri Contributor
Juan,
   Disregard my earlier post. I realized that you don't really have to use a cost attribute to store slope values and I also got the expression for restriction attribute reversed (true expression evaluates to Restricted and not traversable as I had initially thought :))... Here are the updated steps...
      Your requirement can be modeled by using a descriptor network attribute to store the directional slope values for streets and using a parameterized restriction attribute. In a network dataset each edge can have two values for descriptor attribute, one in the digitized direction (or From To) and another against the digitized direction (or To From). So to create the necessary restriction attribute use these steps

   1. Create two fields called FromToSlope and ToFromSlope in your streets shapefile.
   2. Calculate the necessary slope values for each feature. In your case since the slope is applicable in uphill direction you can assign a constant value of 0 for the downhill direction. It might help you adjust your streets such that they are all digitized in uphill to downhill direction or vice versa. That way you can easily calculate the slope values in FromToSlope and ToFromSlope.
   3. Once the field calculation is done, add a new descriptor attribute called "Slope" in your network dataset.
   4. Assign a field evaluator to Slope attribute and use the FromToSlope and to ToFromSlope for the evaluator value.
   5. Next, create a Restriction attribute called "SlopeRestriction".
   6. Create a parameter for this attribute called "MaxUpHillSlope". This is the parameter that you will provide based on vehicle type.
   7. Use a function evaluator for SlopeRestriction attribute.
   8. For the evaluator expression, set Slope >= MaxUpHillSlope
   9. Build your network dataset.
  10. Now when you perform the service area analysis, make sure you use the SlopeRestriction attribute and you should also specify the MaxUpHillSlope parameter value based on the vehicle for which you are calculating the service area.

Hope this helps
Deelesh
Reply
0 Kudos