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

[Check Improvement] RoadLinkCheck #598

Open
nelli-a opened this issue Aug 9, 2021 · 7 comments
Open

[Check Improvement] RoadLinkCheck #598

nelli-a opened this issue Aug 9, 2021 · 7 comments
Labels
new integrity check Any new Integrity Check

Comments

@nelli-a
Copy link
Contributor

nelli-a commented Aug 9, 2021

This was initially meant to be a new check, however, after a discussion (look at the comments), this has been turned into a check improvement for RoadLinkCheck. Please find the BadHighwayLinkCheck at the end of the issue.

All the description is still relevant from the BadHighwayLinkCheck. However, there are two additions:

  1. The highways that do not have an enter or an exist point are flagged. Way: 517427092
    image

  2. The highways that are connecting roads that do not have a link equivalent. I.e., the start is a footway and the end is a service road. Way: 4839936 example is a bit odd, however, after research I found that the end node has been modified, with its coordinates being elsewhere. In the AWS data I was using, the Way started with a service road and ended with a footway.
    image

BadHighwayLinkCheck

description
**Description** Flagging the highway links that are labeled improperly or are too long (over 1000 meters).

Requirements

  • Type way
  • Has one of the following highway tags: ["motorway_link", "trunk_link", "primary_link", "secondary_link", "tertiary_link"]
  • Case 1: Highway link too long: over 4 nodes AND over 1000 m in length
  • Case 2: Highway link tag doesn't correspond to the higher priority highway on either side of the link.

Use Cases

Example:

Case 1: [Highway too long.]

  • A highway with a link tag that is over 4 nodes and 1000 meters long
  • TP: Way: 265460906
    image
    image

Case 2: [Highway link named inappropriately.]

  • A highway link is connected to a highway that is higher priority than the link. In this example, a tertiary_link is connecting a trunk highway. Trunk is higher priority than tertiary, therefore the way needs to have a highway=trunk_link tag.
  • TP: Way: 41716786
    image

Supported regions
No Restrictions

References
OSMOSE Wiki
OSMOSE Backend

@nelli-a nelli-a added the new integrity check Any new Integrity Check label Aug 9, 2021
@Bentleysb
Copy link
Collaborator

@nelkapelmenka
This looks to be doing mostly the same thing as RoadLinkCheck. I think this would make sense as an enhancement for for that check, updating the default minimum to 1km, and adding the higher priority highway logic to the existing highway connection logic.

@nelli-a
Copy link
Contributor Author

nelli-a commented Aug 10, 2021

@Bentleysb
I have looked into RoadLinkCheck. You are right, it seems to be a quite similar check, in fact, checking the length is exactly the same, just different max variable. However, checking for the connections of the _links, it seems to be doing the same thing but following different principles.
RoadLinkCheck first check if the link is long enough and if it is it flags it as is and doesn't check connections. However, for my check I was working under the assumption that links should usually be less than 1 km, but it should be checked if it is a check. Hence, I am checking for both the length and the connections.
The next discrepancy is that this check only looks if any connections are of equal classification as the link which would cause a few issues for me.
First issue example, is the fact that the function .isOfEqualClassification() is true if the _link has a connection to another _link. I.e., Way: 435208174, the way is tertiary_link and it is on one end connected to a different "tertiary_link". This second _link isn't the actual proper highway connection, it is just a different _link that happens to be sharing the end node. While it is not true for this example, this could be an issue that a way isn't being flagged if the real connecting highways are of different classification.
Second issue example is the classification itself. In the Wiki page it says "The link roads (sliproads/ramps) leading to/from a X road from/to a X road or lower class highway," where X is a type of highway based on X_link. Therefore, I want to not only check if one of the connections is equal classification but also if the other connection isn't of higher priority. As in, I would flag a primary_link if it is connecting primary and trunk highways, since trunk is of higher priority than primary.
Additionally, I have come across a _link that only had connections one side (oddly), which made me think of another edge case scenario, where links don't have an enter or an exit. This isn't ordinary, but could potentially be existent in some countries. I was planning (after talking to Kyle today) on adding another flag for these cases for the editors to confirm if this is actually a link, or if it has been misnamed.
At this point, I am not sure if it makes sense to add all these to the RoadLinkCheck, or to create a separate check altogether.

@Bentleysb
Copy link
Collaborator

It sounds to me like your logic is an improvement on what is already in RoadLinkCheck. So I would say just go ahead and modify road link to use your logic for ramp connections. If the one sided link turn out to be a real issue then feel free to add that as well.

@nelli-a
Copy link
Contributor Author

nelli-a commented Aug 10, 2021

@Bentleysb sounds good, thank you for looking over this!

@nelli-a nelli-a changed the title [New Check] BadHighwayLinkCheck [Check Improvement] RoadLinkCheck Aug 12, 2021
@nelli-a
Copy link
Contributor Author

nelli-a commented Aug 12, 2021

@Bentleysb I have also added a couple more edge cases that I have found while working on this check.

@atiannicelli
Copy link
Collaborator

@nelkapelmenka are you still working on this issue?

@nelli-a
Copy link
Contributor Author

nelli-a commented Dec 22, 2021

@atiannicelli no, I hit a lot of obstacles with this improvement that resulted in a significantly high FP rate (I believe it was about 30%). This branch is my latest experimental version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new integrity check Any new Integrity Check
Projects
None yet
Development

No branches or pull requests

3 participants