atorger / nvdb2osm

The Unlicense
9 stars 3 forks source link

small_road_resolve setting by municipality #30

Closed matthiasfeist closed 2 years ago

matthiasfeist commented 2 years ago

Hi.

I had a vague memory of the parameter small_road_resolve that it can be useful to configure for different areas but I don't remember anymore how exactly this works.

As I am rewriting my Nvdb2Osm pipeline, I was contemplating if it would make sense to have a lookup list in the code that would run certain "kommun" with a certain parameter. This would be a manual effort of course. For kommun that we know are very urban (I'm thinking Stockholm, Malmö, Sundbyberg, Solna etc) there could be a config that would run the script with the "better" algo. This could also be included directly in your code and does not need to live in my pipeline code.

What do you think?

atorger commented 2 years ago

Could be worth trying out, but I'm not sure if it will make a significant difference.

In densely urban places this is not a non-issue, as this problem of differing between service/track is rare. The problem occurs especially in semi-urban areas, just spread out enough to not have residential roads. There are currently these modes for --small_road_resolve:

'default', 'prefer_track', 'prefer_track_static', 'prefer_service', 'prefer_service_static'

default is prefer_track, which actually means that if it's not possible to differ between track and service based on NVDB tags, track will be picked, but then there's an elaborate algorithm to upgrade track to service and unclassified based on variout properties.

Prefer_service is the same, but service is picked in the tag pass when track/service is unresolvable.

The static modes doesn't do any guesswork at all to reduce track.

NKA's favorite was prefer_service_static, but I did not agree with him. In any case whatever you choose you will need to change the types often, and quite often split and make half the road unclassified the other service based on where the houses are etc.

It's not really clearcut where which mode will perform better, so one would have to test. Parameters could be put in a configuration file just like the split files we have now.

matthiasfeist commented 2 years ago

Ah ok. That means it's not quite simple. So I guess this would be something that should probably not live in my code but rather somewhere in your codebase.

Another question about parameters: should I run your script in the pipeline with the skip_self_test parameter or without? It's almost quicker with the Param set but I'm not sure exactly what the implications are

atorger commented 2 years ago

Run with self test for now, there's been some changes to NVDB data so code have gone through some changes and some failures are expected to happen when we go through all municipalities again.

matthiasfeist commented 2 years ago

Good. Will do 👍