Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 Feature: Simplify Roadway Network and Remove very Short Links #139

Open
9 tasks
DavidOry opened this issue Mar 1, 2024 · 4 comments
Open
9 tasks

Comments

@DavidOry
Copy link
Collaborator

DavidOry commented Mar 1, 2024

User Story

The existing TM2 roadway network is highly detailed, including every street, bicycle path, and sidewalk. When the roadway network is extracted from this network, it contains numerous nodes that are unnecessary for roadway assignment. Ideally, the Emme software would suppress these nodes, conducted the assignment, and then return the loaded, full network. But Emme does not yet have this feature. Emme does have a feature to remove the excess nodes, but not in a way that is reversible (i.e., it does not record which links have been simplified). Because it's not reversible, this breaks the connection between the roadway network and the other networks (non-motorized and transit).

These excess nodes in the roadway network have two negative outcomes. First, the runtime of the assignment is increased. Second, the Akcelik volume delay functions are sensitive to link distance and for very short links, the estimated congested travel time becomes unreasonably long. See the this spreadsheet as an illustration of this effect.
akcelik example.xlsx

Progress:

  • Sufficiently defined
  • Approach determined
  • Tests developed
  • User story satisfied
  • Doc strings
  • General documentation
  • Passing tests

Priority

Medium

Level of Effort

Medium

Resolution Ideas

Create two methods in either tm2py or Lasso to first simplify and then expand the roadway network. The simplification would remove the excess nodes and create a dictionary tracking which links have been removed (and log their shapes). The expansion step would then recreate the complete network, placing the assignment outcomes on links that are added back in during the expansion.

Project

Task Order 5

Who should be involved?

Users: @gregerhardt, @FlaviaTsang, @lmz
Reviewers: @i-am-sijia, @DavidOry

Risk

We need to test that the simplified network is completely connected and routable. We need to make sure the expansion results in the same network as the starting network and the volumes are recorded directly.

Tests

  • Test that the simplification and expansion results in an accurate "round trip" that matches the starting network
  • Test that the simplified network is routable.
@i-am-sijia
Copy link
Collaborator

i-am-sijia commented May 15, 2024

RE: remove the excessive nodes. Would it make sense to do so for transit network as well? So that the model networks in EMME for roadway and transit are consistent and do not have excessive nodes. I'm guessing it would also help transit assignment run time? @DavidOry

Update:
One challenge to do so for transit is that there are probably transit stops at those "excessive" nodes.

@i-am-sijia
Copy link
Collaborator

More on removing the excessive nodes. Are we imaging users to perform network coding in EMME with the simplified network? I think we shall still create and apply project cards based on the complete network. That means when we create project cards, we need to translate the edits on simplified network to complete network, i.e., in EMME .ems user edit: link A-C, project card should be created for link A-B and link B-C.

@i-am-sijia
Copy link
Collaborator

i-am-sijia commented May 15, 2024

I think the approaches differ in when we create and how long we keep the simplified network.

Option Pros Cons
Option 1: Temporarily created and exist in roadway assignment Changes tm2py roadway modules, no need to change Lasso or the EMME network generation part. The EMME network is consistent with the standard network. The EMME networks still have excessive nodes. Bi-County (Cube) cannot benefit from this work.
Option 2: Model (EMME) networks are created in simplified version Changes in Lasso. No need to change tm2py assignment modules. The EMME networks do not have excessive nodes. Bi-County can benefit from this work (because they use Lasso). More overhead to maintain the consistency between EMME network and standard network. More overhead to generate project cards. (see my previous two comments ⬆️ )

@DavidOry
Copy link
Collaborator Author

My mistake on the previous comment. I thought you were commenting on the other issue. We are going to hold off on this until we get the new version of EMME to see if this is necessary with the improved assignment algorithms.

I think for the points you mention, it would be good to do this in a way that the user doesn't notice, so Option 1. I think we could write the code such that:

  1. One method converts an EMME network to the Network Wrangler Standard.
  2. One method does the simplification.

This way, for bi-county and other Cube networks, we would just need to add Method 1. to cube_wrangler and we could then use the same Method 2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants