conveyal / r5

Developed to power Conveyal's web-based interface for scenario planning and land-use/transport accessibility analysis, R5 is our routing engine for multimodal (transit/bike/walk/car) networks with a particular focus on public transit
https://conveyal.com/learn
MIT License
286 stars 73 forks source link

Teleportation for walk-only trips #360

Closed ansoncfit closed 6 years ago

ansoncfit commented 6 years ago

Note the small area of reachability near Little Nahant (northeast quadrant):

image

image

Is an int overflowing somewhere?

ansoncfit commented 6 years ago

The erroneously reachable areas seem to be near the borders of graphs.

A possibly related example, west of Portland:

image

image

ansoncfit commented 6 years ago

Linking also seems suspect.

Reasonable: image

Questionable: image

ansoncfit commented 6 years ago

Starting from the middle of a racetrack: image

ansoncfit commented 6 years ago

These latest examples may be unrelated to the original issue. But Marco has reported something resembling the original issue for bikes:

image

abyrd commented 6 years ago

@ansoncfit your original image and Marco's do look like they could be overflow. Since in the UI we use single bytes for travel times in minutes, anything over about 2 hours is subject to overflow so maybe we should add some additional checks.

ansoncfit commented 6 years ago

The Portland International Raceway examples above (not int overflow issues) can be addressed with the FIXME here: https://github.com/conveyal/r5/blob/701916ee71d9f51f7115118569c648370e52bff2/src/main/java/com/conveyal/r5/streets/StreetRouter.java#L324. The time to reach the two vertices of an origin split edge is not set, so both ends can be reached in 0 travel time (teleportation!)