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

Diff conflate roundabout mangling #3580

Closed
bwitham opened this issue Oct 28, 2019 · 9 comments
Closed

Diff conflate roundabout mangling #3580

bwitham opened this issue Oct 28, 2019 · 9 comments

Comments

@bwitham
Copy link
Contributor

bwitham commented Oct 28, 2019

very strange and nasty bug found while working on #3387:

hoot conflate -C DifferentialConflation.conf -C NetworkAlgorithm.conf ~/hoot/tmp/3387/NOME_data_NGOR.osm ~/hoot/tmp/3387/OSM_data_NGOR.osm ~/hoot/tmp/3387/out.osm --differential --include-tags

If you add in the following, you can avoid the issue: -D conflate.post.ops-="hoot::ReplaceRoundabouts" -D conflate.pre.ops-="hoot::RemoveRoundabouts"

@bwitham
Copy link
Contributor Author

bwitham commented Oct 28, 2019

3580

@bwitham
Copy link
Contributor Author

bwitham commented Oct 28, 2019

will do work in 3387 branch

@bwitham
Copy link
Contributor Author

bwitham commented Oct 28, 2019

Actually, taking out either the remove OR the replacement of the roundabouts, gets rid of the mangling, but the output is slightly different than when both are taken out.

@bwitham
Copy link
Contributor Author

bwitham commented Oct 28, 2019

If you leave out the tags option, only the roundabouts get mangled and not also the roads connected to them.

@bwitham
Copy link
Contributor Author

bwitham commented Oct 29, 2019

Removal of roundabouts seems to work correctly. Replacement is where the mangling of the roundabouts themselves occur. When the tag changes are added back to the map, the roads are re-connected to the mangled roundabouts...that part is probably ok.

@bwitham
Copy link
Contributor Author

bwitham commented Oct 29, 2019

Thought the problem might be with way snapping but have verified that it isn't even run when replacing the mangled roundabouts in question. The roundabout removed has nodes that match the roundabout when it is added back into the map. This is a pain...

Going to look at some older versions to see if it does or doesn't occur with them, as the original screenshots sent by Tradecraft around 8/8/19 aren't showing the problem.

@bwitham
Copy link
Contributor Author

bwitham commented Oct 30, 2019

Older versions of the software also exhibit this bug, so the problem is caused by something fairly unique to this data...or maybe we haven't done much diff conflating with roundabouts.

There's almost definitely something bad happening in the roundabout replacement...just haven't been able to figure out what yet.

@bwitham
Copy link
Contributor Author

bwitham commented Oct 30, 2019

Interesting to note that the same issue does not occur when running ref conflate with this data, as I found out after I fixed an NPE caused by the network merging. So, focusing more on DiffConflator now.

@bwitham
Copy link
Contributor Author

bwitham commented Oct 30, 2019

So for diff conflate, not removing roundabouts before conflation makes sense to me. The whole point of removing them when using Reference Conflation is b/c aren't able to conflate them together very well. Since all matches are thrown out with Differential, we'll never actually be merging roundabouts between the ref and secondary data...only keeping the ref roundabout if they matched or both roundabouts if they didn't match (after applying the diff to the ref data). Therefore, we can't really screw up any existing roundabouts running DC.

bwitham added a commit that referenced this issue Oct 31, 2019
…#3588)

* Added an option, `differential.treat.reviews.as.matches`, that allows for not treating reviews as matches in Differential Conflation, which will let them pass to the diff output. The use case for this was a situation where a one to many POI review was preventing several secondary POIs from being added to the diff. Since some of these reviews were questionable, the longer term solution to this is some reworking of POI reviews (#3579). In the meantime, this config option may be useful.
* Disabled the removal/replacement of roundabouts during Differential Conflation. in #3580 there was a situation where roundabouts were being mangled badly during roundabout replacement. The original point of roundabout removal/replacement was to preserve them, since we don't conflate them very well some of the time. However with diff conflate, there's no chance to mangle them since we're only keeping non-matches in the secondary data and not actually trying to merge ref and secondary roundabouts...so removing the logic was the simplest solution.
* Downgraded warning logged when diff conflate w/ tags encounters a relation to a debug statement, since that is normal operation for now. #3449 can be re-opened to handle relations if need be.
* Fixed a NPE in the Network alg when running ref conflate with the same data from #3387
* Fixed issue where diff conflate case tests were not actually running diff conflate
* Fxied handling of output size limit in `MapComparator::_printIdDiff`
* Added in some utilities to `Roundabout`, `OsmUtils`, `Node`, and `Way` that make debugging roundabout conflate problems easier
@bwitham bwitham closed this as completed Oct 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant