gravitystorm / openstreetmap-carto

A general-purpose OpenStreetMap mapnik style, in CartoCSS
Other
1.53k stars 819 forks source link

Render `power=line` like `power=minor_line` when the `voltage=*` value is below a threshold #3019

Closed Penegal closed 6 years ago

Penegal commented 6 years ago

Hello, there.

I hope this will not start a flamewar: for power lines, the distinction between power=line and power=minor_line is not the same for everyone: some look at the structures supporting it, others look at voltage, with different thresholds, or at the distribution/transport duality. Some, like around here, assume that the threshold between power=line and power=minor_line lies it the IEC definition of high voltage, 1000 V for AC.

My point is not to judge the relevance of doing so, but, in order to prevent cluttering the map with minor landmarks, could power=line be rendered like power=minor_line when the voltage=* value is below a threshold, when there is such a value? This way, as long as the voltage is given –and that would be up to contributors to make sure it is, as it is a basic electrical data–, lines like this one French won't be confuded with lines like these ones lignes_ht001

Regards.

matkoniecz commented 6 years ago

Can you give en example of a correctly tagged power=line with low voltage that should be rendered like power=minor_line?

mboeringa commented 6 years ago

This also raises the question of what would be an appropriate threshold? According to the main power=line Wiki page:

https://wiki.openstreetmap.org/wiki/Tag:power%3Dline

local distribution systems can be up to about 45 kV, would that be a sensible threshold?

matkoniecz commented 6 years ago

Can you give en example of a correctly tagged power=line with low voltage that should be rendered like power=minor_line?

mboeringa commented 6 years ago

Can you give en example of a correctly tagged power=line with low voltage that should be rendered like power=minor_line?

Overpass Turbo to the rescue: All power=line tagged objects in Austria with voltages less than 50kV:

{{geocodeArea:Austria}}->.searchArea;  
way["power"="line"]["voltage"]
    (if:number(t[voltage])<50000)
     (area.searchArea);
/*added by auto repair*/
(._;>;);
/*end of auto repair*/
out meta;

All power=line objects with a voltage >= 50kV

{{geocodeArea:Austria}}->.searchArea;  
way["power"="line"]["voltage"]
    (if:number(t[voltage])>50000)
     (area.searchArea);
/*added by auto repair*/
(._;>;);
/*end of auto repair*/
out meta;

Looking at these results, it actually seems the few objects tagged with power=line and a voltage of less than 50kV, are likely mis-tagged. They are not interconnected and appear local, suggesting they belong to the distribution system, not the transmission system. Compare the first result with the interconnected lines with voltages over 50kV.

Other observations:

{{geocodeArea:Switzerland}}->.searchArea;  
way["power"="line"]["voltage"]
    (if:number(t[voltage])<50000)
     (area.searchArea);
/*added by auto repair*/
(._;>;);
/*end of auto repair*/
out meta;
{{geocodeArea:Great Britain}}->.searchArea;  
way["power"="line"]["voltage"]
    (if:number(t[voltage])<50000)
     (area.searchArea);
/*added by auto repair*/
(._;>;);
/*end of auto repair*/
out meta;
matkoniecz commented 6 years ago

Overpass Turbo to the rescue:

Finding power=line with low voltage is easy, the hard part is distinguishing correctly tagged ones from badly tagged ones (especially as power infrastructure is not my primary interest during mapping/using OSM data).

@mboeringa It seems that rendering lov woltage power=line as power=minor_line will mostly hide tagging mistakes - is my intepretation correct?

mboeringa commented 6 years ago

Another interesting region by the way is the Auvergne-Rhone-Alpes in France, it appears a large number of lines have been (probably unjustly), tagged as power=line in the eastern part of the region, even though all less than 50kV;

Note that this is a big query result (>10MB), and may bog down your browser:

{{geocodeArea:Auvergne-Rhone-Alpes}}->.searchArea;  
way["power"="line"]["voltage"]
    (if:number(t[voltage])<50000)
     (area.searchArea);
/*added by auto repair*/
(._;>;);
/*end of auto repair*/
out meta;
mboeringa commented 6 years ago

@mboeringa It seems that rendering lov woltage power=line as power=minor_line will mostly hide tagging mistakes - is my intepretation correct?

@matkoniecz Well, that is where the "flame war" starts that @Penegal feared... but in general, I think this appears so. Most of these objects could or should carry power=minor_line, but there may be odd cases of power=line with low voltage (< 50kV) where power=line is justified as the line is more in a kind of transmission role. As I wrote, the most obvious examples seem to be the ones starting directly at a power plant.

mboeringa commented 6 years ago

Hmm, now see a page on the OSM Wiki I had missed: https://wiki.openstreetmap.org/wiki/Classification_of_Powerlines With a quite clear recommendation to tag anything up to medium voltage (45-50kV max) as power=minor_line.

Penegal commented 6 years ago

@matkoniecz Here is the example you asked: https://www.openstreetmap.org/way/429960823 AFAIK, the west part of Auvergne-Rhone-Alpes 20kV lines has been modeled by a single contributor; for honesty, as I already exchanged with this contributor, and specifically about this modelling specificity, I preferred to warn him of these exchanges about his work.

flacombe commented 6 years ago

Hello,

I get in this discussion thanks to Penegal. I'm the one who contributes over eastern Auvergne-Rhone Alpes distribution network. Since distinction between power=line and minor_line isn't clear, pretty irrelevant and doesn't get consensus I prefered to use power=line with accurate voltage values. This won't prevent any consumer to choose which voltage threshold or support type (mostly poles) he wants to select or render.

50kV threshold won't suit everyone views since at least in France we have 42kV lines which are part of transmission network, carried by same towers like so called major or standard lines.

mboeringa commented 6 years ago

50kV threshold won't suit everyone views since at least in France we have 42kV lines which are part of transmission network, carried by same towers like so called major or standard lines.

@gustavecha But do these 42kV lines run on their own towers - with no other voltages - or are they in this case always combined with high voltage transmission lines (> 100kV)? That might make a difference for potential rendering decisions.

mboeringa commented 6 years ago

Since distinction between power=line and minor_line isn't clear, pretty irrelevant and doesn't get consensus I prefered to use power=line with accurate voltage values.

As to this decision: while there is truth in your words, it is also clear that the rest of France has been tagged differently, just look at the results of the Overpass Turbo query I posted in the image below. For consistency reasons, sticking with the general tagging practices in your country, might be preferred.

By the way: good you consistently add voltage. This is useful.

afbeelding

flacombe commented 6 years ago

Hi @mboeringa Yes, 42kV power lines have their own towers : https://www.google.fr/maps/@45.7215664,6.5217399,3a,64y,326.6h,101.54t/data=!3m6!1e1!3m4!1s2o0hdmwZS8z4NxtvIlHy7w!2e0!7i13312!8i6656 (sorry, no Mapillary there)

Regarding tagging, it's true that Auvergne-Rhone Alpes got a large part of distribution networks tagged as power=line, while it's not the only single place. What additional information bring the power=minor_line that power=line doesn't?

matkoniecz commented 6 years ago

What additional information bring the power=minor_line that power=line doesn't?

It allows distinguishing minor power lines and major power lines.

@mboeringa It seems that rendering lov woltage power=line as power=minor_line will mostly hide tagging mistakes - is my intepretation correct?

@matkoniecz Well, that is where the "flame war" starts that @Penegal feared... but in general, I think this appears so.

At this moment I am inclined to decline this proposal as it will mostly hide power=line mistaggings.

From looking at https://wiki.openstreetmap.org/wiki/Proposed_features/Power_transmission_refinement it is clear that there is no consensus to deprecate power=minor_line and rely on a voltage tagging.

flacombe commented 6 years ago

It allows distinguishing minor power lines and major power lines.

While there is no consensus on what is major or what is minor and, how minor is understood by consumers.

As we start to talk about power=line mistagging, I'm starting to wonder if it's not a tagging for render matter.

matkoniecz commented 6 years ago

While there is no consensus on what is major or what is minor and, how minor is understood by consumers.

Maybe this tagging should be changed but it is not a good place to discuss that.

flacombe commented 6 years ago

Things are so clear that we can't get a single definition for such a common term like minor.

Even if everyone use power=line and power=minor_line you can't be sure everyone put the threshold at the same level. This is worse than no data, don't you ? If render could also (not exclusively) adapt on objective values like voltage, height, colour or whatever, it would solve the issue for ever. This would also encourage many people to look and find missing data in a positive way. Anyway, there are tools like Osmose to look for possible mistakes. There was no warning at all on this particular contribution.

matkoniecz commented 6 years ago

There was no warning at all on this particular contribution.

This is not a place to report missing validation warnings.

If render could also (not exclusively) adapt on objective values like voltage, height, colour or whatever, it would solve the issue for ever.

This is not a place to start tagging changes.

matkoniecz commented 6 years ago

In general: this is not a place to initiate promotion of preferred tagging schemes.

Especially ones that are generally rejected - power=minor_line deprecation attempt was clearly rejected both by wiki voting https://wiki.openstreetmap.org/wiki/Proposed_features/Power_transmission_refinement and more importantly by continued use of this value - https://taginfo.openstreetmap.org/keys/power#values

See also https://wiki.openstreetmap.org/wiki/Talk:Proposed_features/Power_paths_refinement#Why_deprecate_power.3Dminor_line.3F for reaction to the next attempt to reject power=minor_line

matkoniecz commented 6 years ago

One more note:

how minor is understood by consumers

this one is quite obvious - as minor power line, less important than power=line

flacombe commented 6 years ago

this one is quite obvious - as minor power line, less important than power=line

This is not a place to make fool of people

dieterdreist commented 6 years ago

2018-01-15 16:42 GMT+01:00 Gustave notifications@github.com:

this one is quite obvious - as minor power line, less important than power=line

This is not a place to make fool of people

I don't think this was making a fool of someone (nor did it IMHO intend to do so), it seems to be a sincere and correct answer IMHO: the only thing we can know for sure about a minor line, is that it is less important than a "power=line".

matkoniecz commented 6 years ago

I don't think this was making a fool of someone (nor did it IMHO intend to do so)

I was not attempting to be sarcastic/taunting/ironic and I assumed that https://github.com/gravitystorm/openstreetmap-carto/issues/3019#issuecomment-357692437 with

While there is no consensus on what is major or what is minor and, how minor is understood by consumers.

is also not sarcastic/taunting/ironic and explained part where I was certain that my answer is correct.

flacombe commented 6 years ago

Neither I intent to report QA issues or start a discussion about prefered tagging.

Given problem is importance of power line in which way? Technology of construction, visibility in landscape, date of construction, power transit capacity, voltage, sensibility to climate incidents ? Even we want to classify power line doesn't mean we can do so with only two power=* values. Then, we can't be sure everyone will understand "less important" the same way and render won't be accurate if it doesn't rely on objective values, that's my point

dieterdreist commented 6 years ago

2018-01-15 17:45 GMT+01:00 Gustave notifications@github.com:

Given problem is importance of power line in which way? Technology of construction, visibility in landscape, date of construction, power transit capacity, voltage, sensibility to climate incidents ?

I would say the most common interpretation is "visibility in landscape", which loosely relates also to the other factors you mention. It is a layman classification, suitable for who uses power lines for orientation.

Even we want to classify power line doesn't mean we can do so with only two power=* values.

That's why the "pros" and "freaks" can use additional tags to make a pro classification.

flacombe commented 6 years ago

Why a particular (even most common one) interpretation out of plenty should be asked to mappers ? Start point of this discussion is my interpretation is surely different from yours (not worse or better than yours) and I was lost to choose between minor or not.

Things would be so simpler without this little 'minor or not'.

mboeringa commented 6 years ago

@gustavecha

One thing in your reasoning of not wanting to differentiate power=line and power=minor_line I don't understand. Given you wrote:

50kV threshold won't suit everyone views since at least in France we have 42kV lines which are part of transmission network, carried by same towers like so called major or standard lines.

isn't this all the more reason to use your own judgement to differentiate lines and actually tag them line or minor_line? You say "voltage is objective"... but given the fact that transmissions lines as you also illustrate in the above quote can have wildly varying voltage ranges, how "objective" a measure is this if the main desire is to differentiate long distance from local lines?...

This last bold sentence is important, as, although I fully agree with you that the tagging practices and interpretation somewhat differ between countries or even regions in countries, I think the general or majority real world tagging practice tends to be:

I think, with all its flaws, this is still a useful distinction: most, but not all, power=line objects are clear landmarks, seen from a distance, and can represent serious low flying hazards for helicopters and such (not that I recommend using OSM for that).

Anyway, I actually think the main issue in the current rendering may not be so much the distinction between high voltage transmission lines and medium voltage (local) distribution lines, but the fact that there is no separate rendering for the utilization voltage / secondary distribution (110/230V). The latter can really clutter up the map in some regions where each above ground individual house connection is tagged / digitized. And yes, there are a few places with each house connected in some streets, although I can't recall a specific one now. A more common case is utilization voltage lines from a nearby substation to a clusters of houses / buildings, those can be readily found (use Overpass Turbo with a <1000V query).

I think the biggest win would in fact be to separate out these utilization voltages and put those in their own dedicated rendering at Z19/20 only, sharply reducing clutter in Z16/17/18 rendering in specific regions with detailed tagging.

matkoniecz commented 6 years ago

Given problem is importance of power line in which way?

Place to discuss it is on wiki and tagging mailing list and other places. For purposes of this style it is not important how exactly mappers differ between power=line and power=minor_line, in the same way as we do not discuss here how to distinguish waterway=river from waterway=stream, highway=motorway from highway=trunk, surface=dirt from surface=ground etc.

Again, please stop asking here how power=line and power=minor_line is/should/can/shouldn't/can't be distinguished. For this map style it is enough that mappers use two classes of power line (power=line and power=minor_line) and power=minor_line is less important.

but the fact that there is no separate rendering for the utilization voltage / secondary distribution (110/230V)

Sounds like a good idea if such lines are tagged with voltage data (there is no reason to spend time to improve rendering of 50 lines, but if it affects say 5k it is worth spending time on it), I remember areas with every power line, even the most minor ones mapped. But it should be discussed in a separate issue.

mboeringa commented 6 years ago

Sounds like a good idea if such lines are tagged with voltage data (there is no reason to spend time to improve rendering of 50 lines, but if it affects say 5k it is worth spending time on it),

If you use Overpass Turbo, you can find lots of them in some regions tagged with their voltage.

Of course, in a country like the Netherlands, where almost all - if not all - medium and low voltage lines are underground cables, you won't find any. But the Netherlands is a rare exception.

flacombe commented 6 years ago

@mboeringa

how "objective" a measure is this if the main desire is to differentiate long distance from local lines?...

Voltage is often written on poles/tower, it doesn't come from a measure. Opendata can gives us such information. It sounds more reliable than major/minor

I'm not against any distinction. Just how it's done. The point you give about domestic distribution is ok for me.

@matkoniecz Then please don't say it's mistagging to use power=line + voltage=20000.

Sounds like a good idea if such lines are tagged with voltage data (there is no reason to spend time to improve rendering of 50 lines, but if it affects say 5k it is worth spending time on it)

It would be fine, and make the render better at medium zoom levels. Sismic or developping countries have a lot of overhead domestic lines. Lines won't be more largely tagged with voltage data if mappers aren't encouraged to. Many lines are still with power=line or minor_line because more complete tagging haven't effect on render (not the only reason but it contributes to).