Select to view content in your preferred language

Bring Back Include Restricted Portions of Network When Adding Locations

796
5
04-28-2023 09:56 AM
Status: Already Offered
RussellProvost1
Occasional Contributor

The ability to include restricted portions of the network when loading locations was imperative to our work at Montgomery Planning. We heavily rely on Network Analyst to measure changes in bike connectivity by leveraging the level of traffic stress methodology. We build restrictions using the LTS values to be able to modify the traversability of the network according to a desired LTS. We use a "weakest link" methodology where if there is any portion of the route that is above a desired LTS value, the connection cannot be made. Forcing locations (in our case parcels) to "jump over" adjacent uncomfortable bike facilities defeats the purpose of this methodology. You cannot just pick your bike up and cross several lanes of high stress roads to reach the nearest comfortable street. This has caused an abrupt error in my latest analysis. Is it my understanding that even if I set the "exclude_restricted_elements" parameter to "INCLUDE" in the add locations tool, ArcGIS Pro will ignore it This is VERY problematic. Network analyst is not just used for vehicle routing. Please bring back the option to INCLUDE restricted portions of the network when adding locations!

5 Comments
JaySandhu
Status changed to: Needs Clarification

In ArcGIS Pro, we honor the restricted edges and do not locate on them.

Can you clarify what you need to do? For example, you can turn off the restrictions on a network analysis layer before loading locations and locations will be located on the closest edge.

Jay Sandhu

 

 

RussellProvost1

This is all done via a python script. I create my OD Matrix, set my initial LTS restriction (high stress), load my locations, and solve my matrix. I post process the results and then update my LTS restriction (low stress) and solve the matrix again. I then compare these results to the high stress routes to summarize our connectivity results. This always worked prior to Pro. Now with Pro, when I go to resolve my low stress matrix, my origins are moved to the nearest network location that is not restricted. With your solution, I would need to rebuild my matrix and re-add all of my locations when I rerun the analysis. This is very inefficient. 

I have found that if I set the "allow_auto_relocate" parameter to "NO_ALLOW" in the add locations tool, my results make more sense. What is frustrating is that Esri decided to keep the  "exclude_restricted_elements" parameter in the add locations tool but ignore if an "INCLUDE" value is provided! That is not helpful for "backwards compatibility". We have spent the last week processing our data (we have several hundred destinations to analyze across 6 different scenarios/points in time) only to find out our results are erroneous because of this change. What is worrisome is that the latest add locations tool says the "allow_auto_relocate" parameter "is not used when the network analysis layer's network data source is a portal running a version of ArcGIS Enterprise older than 11.0." If network analyst insists on relocating origins to locations that are not routable in our low stress network, we will be forced to find another solution. 

MelindaMorang

Hi Russel.  I think I can help you out with this.  I think there are ways to accomplish what you're trying to do, although they may require adjusting your scripts.

First, you are highly encouraged to migrate your scripts to use the Python solver objects in arcpy.nax instead of continuing to use Make Layer, Add Locations, and Solve in Python scripts.  You can still do the workflow that way (and I'm assuming you're migrating from ArcMap), but this is slower and generally harder to work with.

Either way, I believe this is generally the workflow you need to do:

  1. Use the Calculate Locations tool to precalculate the network locations of your inputs using a travel mode where the edges aren't restricted.  This will be to determine the specific, authoritative locations you want to use for all inputs.
  2. Set up your analysis and settings (by creating a layer or instantiating a solver object).
    1. If using arcpy.nax, set the allowAutoRelocate property to False.
  3. Load locations using the precalculated network location fields.
    1. If using a layer, set the Allow automatic relocating at solve time parameter in the Add Locations tool to False.  This updates the layer's properties to turn off the auto-relocate behavior.  The tool will use the exact locations it is given, even if the edges are restricted.
  4. Solve the analysis.
  5. Change the travel mode and solve again as needed.

The last section on this page may help you understand what's going on: https://pro.arcgis.com/en/pro-app/latest/help/analysis/networks/precalculate-network-locations.htm#E...

Please keep asking questions if you have them.  I'm pretty sure we can figure this out with the software as implemented, but if it turns out not, we are definitely open to considering some changes or enhancements.

MelindaMorang

@RussellProvost1 Were you able to get your scripts working, or do you still have an enhancement request or questions?  Thank you.

MelindaMorang
Status changed to: Already Offered

We provided information to the user, and he hasn't responded back four months after we asked him if he needed further help or if his needs weren't satisfied by the existing functionality.  Closing this issue under the assumption that the software already does what the user needs.