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

SignPostCheck Overhaul #154

Merged
merged 9 commits into from
May 8, 2019
Merged

Conversation

Bentleysb
Copy link
Collaborator

@Bentleysb Bentleysb commented Apr 24, 2019

Description:

This is a major overhaul of the SignPostCheck, to fix a few bugs and make an enhancements.

The major reason for the overhaul was to fix a bug where multiple edges would end up in the same flag, even though they were geographically separate (sometimes by over a kilometer). This occurred because these items were connected to the same motorway or trunk edge, but on different ends, and the edge was used as the starting object for the check. Now the starting object is the ramp edges themselves, so the starting object is always the only item that is flagged. As part of this change, the configurables ramp.max.edges and arterial.minimum were removed. The logic these supported is no longer in the check.

Previously these three items, that are about 2km apart, were part of the same flag. Now they would all be separate flags.
Screen Shot 2019-04-23 at 9 21 01 AM

The second bug that was fixed was that this check assumed it was always working with one way roads. This meant that edges/ways would sometimes be flagged multiple times. The check now accounts for reverse edges and way sectioning.

The final bug fix was to look for destination relations, instead of just destination tags, and to add the tags destination:backward and destination:forwards to the destination_tag.filter configurable. This fixed a few false positive flags where items were flagged for not having destination tags.

The one enhancement was to add an optional part of the check for branching ramps. This is to catch where a ramp has a single entrance, but multiple exits. In these cases, when the ramp branches towards the different exits there usually should be destination tags. However, some locations may not use road signs for these instances. So, this feature is controlled by a configurable, and can be turned on or off as needed.

An example of a ramp branch with a destination tag:
Screen Shot 2019-04-23 at 9 33 08 AM

Potential Impact:

None

Unit Test Approach:

Updated the unit test configurations to match the new design of the check. Also updated existing unit tests, and created a new one to test the new branching logic.

Test Results:

Ran on 6 countries and sampled 540 out of 1792 flags. All flags appeared valid.

@Bentleysb Bentleysb changed the title DNM - SignPostCheck Overhaul SignPostCheck Overhaul May 1, 2019
@danielduhh danielduhh requested a review from jklamer May 3, 2019 16:40
@danielduhh danielduhh added the new integrity check Any new Integrity Check label May 6, 2019
danielduhh
danielduhh previously approved these changes May 6, 2019
Copy link
Collaborator

@danielduhh danielduhh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice. Thanks for simplifying this checks code @Bentleysb !

config/configuration.json Outdated Show resolved Hide resolved
@chrushr chrushr requested a review from yiqingj May 7, 2019 20:45
@danielduhh danielduhh self-requested a review May 8, 2019 06:44
@chrushr chrushr merged commit 0a5823c into osmlab:dev May 8, 2019
seancoulter pushed a commit to seancoulter/atlas-checks that referenced this pull request Dec 12, 2019
Sync open source atlas checks
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

Successfully merging this pull request may close these issues.

None yet

4 participants