Power networks/Quality Assurance

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page gather quality assurance processes concerning power networks.

Tools

Osmose

Osmose has several analysers on power networks:

On some countries, there are also suggestion to add missing power features (substation, poles, etc). You can find them by using the power tag on Osmose GUI.

JOSM

JOSM validators already contains some checks about the power lines.

You can have some more by adding Power QA ruleset to JOSM:

  • Preferences
  • Data Validator
  • Tag checker rules tab
  • search for "Power QA" and add it

iD

iD validation already includes some basic rules to validate data for power grids.

Some work is still needed to implement further processes and additional checks.

Errors

Geometry affinity

Geometry types
Concept Tag Node Way Area Relation
Segments power=line - way - -
power=minor_line - way - -
power=cable - way - -
Sections power=line_section - - - relation
Circuits power=circuit - - - relation
Supports power=tower node - - -
power=pole node - - -
power=portal node way - -
power=insulator node - - -
power=terminal node - - -
Generation power=plant - - area relation
power=generator node - area -
power=heliostat node - area -
Substations power=substation node - area -
power=transformer node - - -
power=switchgear - - area -

power=line must be a way

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none implemented
warning warning none warning

power=minor_line must be a way

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none implemented
warning warning none warning

power=cable must be a way

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none implemented
warning warning none warning

power=plant must be an area or a relation

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented implemented implemented
warning warning warning warning

power=heliostat must be a node or an area

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented to be implemented
warning - error warning

power=generator must be a node or an area

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented implemented
warning - error warning

power=substation must be a node or an area

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented implemented implemented
warning warning warning warning

power=switchgear must be an area

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented implemented
warning - error warning

power=tower must be a node

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none implemented
warning warning - warning

power=pole must be a node

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none implemented
warning warning - warning

power=terminal must be a node

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none implementation in progress
warning warning - warning

power=portal must be a node or a way

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented non implemented implemented
warning none warning warning

power=transformer must be a node

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 9100/91001 (list, map, stats) implemented none implemented
warning warning none warning

power=insulator must be a node or a way

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented none
warning none warning none

power=line_section must be a relation

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented in #24457 implemented none
waring warning warning none

power=circuit must be a relation

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented in #24456 implemented none
waring error warning none

Geometry validity

Lone power tower or pole

Each power=tower should be connected to a power line.

Exception: disused power features could be disconnected from the network. In which case make use of the lifecycle prefix disused:

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 7040/1 (list, map, stats) none implemented none
info none warning none

Unfinished power transmission line

The line ends in a vacuum, and should be connected to another line or a transformer (power=transformer), a generator (power=generator) or marked as transitioning into ground (location:transition=yes).

Exception: disused power features could be disconnected from the network. In which case make use of the lifecycle prefix disused:

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 7040/2 (list, map, stats) none implemented none
info none warning none

Unfinished power distribution line

The line ends in a vacuum, and should be connected to another line or a transformer (power=transformer), a generator (power=generator) or marked as transitioning into ground (location:transition=yes).

Exception: disused power features could be disconnected from the network. In which case make use of the lifecycle prefix disused:

implementation in tools
Osmose JOSM
text-middle 7040/6 (list, map, stats) none implemented none
info none warning none

Non power node on power way

Power lines can only form a straight line between supports and therefore shouldn't have additional nodes that aren't tagged as a power feature.

If this node is a tower or pole, use the tag power=tower or power=pole. Otherwise remove it.

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 7040/4 (list, map, stats) implemented none none
info warning none none

See also following tickets:

Missing power tower or pole

Based on the statistical frequency of the poles on this power line, there's likely an unmapped pole nearby.

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 7040/5 (list, map, stats) implemented none none
info warning none none

Line connection with portal

If power=portal is a way, the end node that connect a power=line must be power=insulator

implementation in tools
Osmose JOSM core JOSM power QA iD
none none implemented none
none none warning none

Connection between power line & highway line

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 1250/1 (list, map, stats) implemented none PR #11200 in progress
warning warning none warning

See also following tickets:

Power tower on non power line way

A power=tower is a node on a power=line or power=minor_line way. A power tower on any other type of way is probably wrong.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented none
warning none warning none

Power pole/tower inside buildings

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 1070/6 (list, map, stats) none implemented none
warning none warning none

Duplicate or nested substation

Substations are usually mutually exclusive. We shall not find a substation within an other one: This can be two way-mapped substations that overlap, or a multipolygon-relation substation where a subpart is also a substation.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented for node substation inside area substation implemented none
warning warning error none

Overpass query

try it yourself in overpass-turbo
try it yourself in overpass-turbo
/* This query requests all duplicates substations (2 substations in the same place) */
[out:json][timeout:180];
way[power=substation]({{bbox}})->.substations; 
foreach.substations->.substation
( way[power=substation](area.substation)->.connectedsub
  ((.connectedsub; - .substation;);.duplicatesub;) -> .duplicatesub; );
.duplicatesub; out geom;
try it yourself in overpass-turbo
try it yourself in overpass-turbo
/* This query requests all substation within a relation substation */
[out:json][timeout:1000];
relation["power"="substation"]({{bbox}})->.subRel;
(way(r.subRel)["power"="substation"];rel(r.subRel)["power"="substation"];);
out geom;

Power support line management suggestion

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 7040/8 (list, map, stats) none none none
info none none none

Physical consistency

Valid tagging but dysfunctional power infrastructure

Connection between different voltages

If one power line is connected with other power lines, both lines must have the same voltage.

Check if the voltages are really different.

Add a transformer using power=transformer (standalone transformers) or power=pole + transformer=* (pole-mounted transformers) or define a suitable line_management=* situation to explain how different voltages remain unconnected.

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 7040/3 (list, map, stats) none implemented none
warning none warning none

Overpass query

try it yourself in overpass-turbo
try it yourself in overpass-turbo
/* Identify nodes where one end-line node of a power line is connected, on a power tower, to a line with different voltage  */
/* Warning : it is not managing case where several-voltages-line are connected to the same tower (theses nodes are raised)
neither managing the presence of a transformer (concerned nodes are raised too) */
[out:json][timeout:180];
way["power"="line"]({{bbox}})->.power_line;
for.power_line->.voltage_power_line_group (t["voltage"]) {
  (.power_line; - .voltage_power_line_group;);>->.rest_power_line;
  node.rest_power_line["power"="tower"]->.rest_power_tower;
  node(w.voltage_power_line_group:1,-1)->.voltage_group_power_tower;
  (node.rest_power_tower.voltage_group_power_tower;.voltage_set_gap;)->.voltage_set_gap;
}
.voltage_set_gap; out geom;

Cables consistency at connection

  • Two end-to-end connected power line or minor_line must have same number of cables (except if line_management=* allows other configuration).
  • For 3 or more end-to-end connected power line or minor_line on a single node, the sum of cables of each line must be even (except if line_management=* allows other configuration).
  • :todo: Case for end-to-middle connection to specify
implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented none
warning none warning none

Circuits consistency at connection

  • Two end-to-end connected power line or minor_line must have same number of circuits (except if line_management=* allows other configuration).
  • For 3 or more end-to-end connected power line or minor_line on a single node, the sum of circuits of each line must be even (except if line_management=* allows other configuration).
  • :todo: Case for end-to-middle connection to specify
implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented none
warning none warning none

Unmatched voltage of line near of substation

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 7040/7 (list, map, stats) none none none
warning none none none

Wrong power line type

power=minor_line should mostly have power=pole while power=line should mostly have power=tower

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none none
warning warning none none

Voltage consistency in a section

When building a power=line_section relation, it should involves several segments with their own voltage.
The section's voltage should be >= of each segment's voltage.
Difficulty is to be able to check this constraint among segments supporting several circuits with different voltages. Voltages lists are strings unsuitable for math comparing without a split.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented none To be implemented
warning warning none none

Voltage consistency in a circuit

When building a power=circuit relation, it should involves one or several sections with their own voltage.
The circuit's voltage should be >= of each section's voltage.
Difficulty is to be able to check this constraint among sections merged with segments supporting several circuits with different voltages. Voltages lists are strings unsuitable for math comparing without a split.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented none To be implemented
warning warning none none

Line_management consistency at end of lines

line_management=cross should not be on end node

line_management=cross is supposed to explicit that two line sharing a common support are not connected. It have sense only if the lines on the support are not ending on this support, otherwise it is not possible to understand the crossing concept.

However, there are certain exceptions, such as lines with different construction dates (see example on cross node node 11479594725), which require the line to be cut at the line_management=cross. In this case, a power=circuit or power=line_section relation must be associated with the concerned lines.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented implemented To be implemented
warning warning warning none

line_management=split must be at end node

line_management=split means a change of topology in the number and direction of circuit. It explicitly design a break on a power line way. Thus this should be also topologically coherent, such tag should be only present at a end node of a line way, not as intermediate node.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented implemented To be implemented
warning warning warning none

line_management=termination must be at end node

If a line terminates, this must be also topologically the case. So theses tags can be only on an end node of a power line, minor_line ou cable.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented implemented To be implemented
warning warning warning none


line_management=transition must be at end node

If a line makes a transition, this must be also topologically the case. So theses tags can be only on an end node of a power line, minor_line ou cable.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented implemented To be implemented
warning warning warning none

Tagging validity

Unsuitable value for "power" tag

Example of unsuitable values : power=transition ; yes ; station ; roof_pole ; proposed ; "tower;pole" ; "pole;transformer"

Valid values : https://wiki.openstreetmap.org/wiki/Template:Map_Features:power

See also Taginfo : https://taginfo.openstreetmap.org/keys/power#values

Especially, power=station is deprecated value and should be replaced either with plant, with generator or with substation.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented] By default in JOSM core for power=station implemented none
warning warning warning none

Overpass query

try it yourself in overpass-turbo
try it yourself in overpass-turbo
/* Identify features with invalid power tag value */
[out:json][timeout:180];
nwr["power"!~"^(cable|catenary_mast|circuit|compensator|connection|converter|generator|heliostat|insulator|inverter|line|minor_line|plant|pole|portal|substation|switch|switchgear|terminal|tower|transformer)$"]["power"]({{bbox}});
out geom;
try it yourself in overpass-turbo
try it yourself in overpass-turbo
/* Generated by the overpass-turbo wizard for: “power=station” */
[out:json][timeout:25];
nwr["power"="station"]({{bbox}});
out geom;

Unsuitable value for "transformer" tag

Valid values are documented in transformer=*. Anything else should be discouraged.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented implemented To be implemented
warning warning warning none

Unsuitable value for "generator:source" tag

Valid values are documented in generator:source=* key. Anything else should be discouraged.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented implemented To be implemented
warning warning warning none

Some are discussed for iD presets, like in #762.

Non numeric value for voltage

Voltage should be entered in volts, without the unit or thousand delimiter. For example, for a 15 kV line, the value should be voltage=15000, neither "15 kV", nor "15,000" nor combinations of this.

When multiple voltages are in use, for example on a power line carrying two circuits, or a substation converting between two voltages, the voltages should be separated by semicolons with the highest voltage listed first: voltage=275000;132000.

On a power segment like power=line or power=cable, the number of circuits must be an integer greater or equal to the number of voltage values (if only one voltage and circuit, circuits tag is not necessary). In an ideal case, the number of voltages is equal to the value of circuits, with duplicate voltage value if needed (e.g. voltage=132000;132000;66000).

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none To be implemented
warning warning none warning

Non numeric value for circuit

The number of circuits=* must be an integer if exists.

implementation in tools
Osmose JOSM core JSOM power QA iD
To be implemented none implemented none
warning none warning none

Some countries use to use ;-lists to provide the number of circuits per voltage in this key.

Non numeric value for cables

The number of cables=* must be an integer if exists.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented none
warning none warning none

On Power Transformers use voltage:primary=* and voltage:secondary=* in place of voltage

implementation in tools
Osmose JOSM core JOSM power QA iD
text-middle 9100/91002 (list, map, stats) implemented none To be implemented in #9200
waring warning none warning

See also following tickets

confusion between termination and transition

line_management=termination cannot be preset alongside with location:transition=yes

implementation in tools
Osmose JOSM core JOSM power QA iD
to be implemented in 7040 / class 8 To be implemented in #24114 implemented none
warning warning warning none

Wrong topology for circuit

power=circuit only expects either linear or branched for topology=*

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented in #24456 implemented none
warning warning warning none

Power relation with power=* tag

Relation with type=power is either a power=circuit or a power=line_section

implementation in tools
Osmose JOSM core JOSM power QA iD
to be implemented To be implemented in #24456 implemented none
warning warning warning none

Power Transformers should have a frequency tag

implementation in tools
Osmose JOSM core JOSM power QA iD
not suitable for Osmose not suitable for JOSM core implemented none
none none warning none

Power lines should have a voltage tag

power=line, power=minor_line and power=cable should have a voltage=*.

implementation in tools
Osmose JOSM core JOSM power QA iD
not suitable for Osmose not suitable for JOSM core implemented none
none none warning none

Power substations should have a substation tag

power=substation should have a substation=*.

implementation in tools
Osmose JOSM core JOSM power QA iD
not suitable for Osmose not suitable for JOSM core implemented none
none none warning none

Power substations should have a voltage tag

power=substation should have a voltage=*.

implementation in tools
Osmose JOSM core JOSM power QA iD
not suitable for Osmose not suitable for JOSM core implemented none
none none warning none

Obsolete tags to be replaced

Tag tower:type=power

See : Tag:power=tower#Possible_mistakes

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented implemented none implemented
none warning none warning

Overpass query

try it yourself in overpass-turbo
try it yourself in overpass-turbo
/* Identify obslet tower:type=power tagging */
[out:json][timeout:25];
nwr["tower:type"="power"];
out geom;

construction=yes

construction=yes has been labeled as deprecated.

For example power=substation + construction=yes should not be used and prefer construction:power=substation

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented none To be implemented
info warning none warning

route=power

route=power has been replaced by power=circuit.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented #24456 implemented none
warning warning warning none

power=branch

power=branch has been replaced by power=line_section .

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented #24457 implemented none
warning warning warning none

power_source=*

power_source=* has been replaced by generator:source=*

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented none implemented none
info none error none

transformer=traction

transformer=traction are best described with transformer=main, inside a substation=traction.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented #20421 implemented implemented
warning warning warning warning

transformer=minor_distribution

transformer=minor_distribution are best described with transformer=main, inside a substation=minor_distribution.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented #20421 implemented implemented
warning warning warning warning

iD currently proposes to change transformer=minor_distribution with transformer=distribution which corresponds to a standalone transformer outside of a substation. Surrounding or combining it with power=substation doesn't change the recommendation but it should proposes transformer=main.

transformer=auto

An auto-transformer is not a transformer role but a particular transformer architecture.
Many actual roles could require auto architecture and this property should be combined with proper transformer=* value, mainly transformer=main.

Use windings:auto=yes to state a given transformer is an auto-transformer.

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented #20421 implemented implemented
warning warning warning warning

iD currently proposes to move transformer=auto to transformer=yes + windings:auto=yes, mainly because it can't choose between transformer=main or transformer=auxiliary.

wires on power circuits or sections

Bundles arrangement only regard power segments. A given circuit can go through several line segments with different bundles. Use wires only on power segments.

implementation in tools
Osmose JOSM core JOSM power QA iD
to be implemented To be implemented in #24456 implemented none
warning warning warning none

Frequency on power segments or sections

Frequency is an operational value independent from physical conductors.
It only matters for circuits so we should not put it on power segments

implementation in tools
Osmose JOSM core JOSM power QA iD
To be implemented To be implemented in #24456 implemented none
warning warning warning   none

Relation validity

Unsuitable role for power=circuit relation

power=circuit : valid roles: section/tap/substation

implementation in tools
Osmose JOSM core JOSM power QA iD
to be implemented To be implemented in #24456 implemented none
warning warning warning none

Unsuitable role for power=line_section relation

valid role: line

implementation in tools
Osmose JOSM core JOSM power QA iD
to be implemented To be implemented in #24457 implemented none
warning warning warning none

Incorrect correspondence between the object type and its role in circuit

implementation in tools
Osmose JOSM core JOSM power QA iD
to be implemented To be implemented in #24456 implemented none
warning warning warning none

Power generation

Everything regarding generation will be impacted by Proposal:Power_generation_storage and roadmap will be updated after its review
This section should furthermore be moved to Power_generation/Quality_Assurance

Unsuitable value for generator:method


implementation in tools
Osmose JOSM
To be implemented available via Power QA ruleset
info error

Unsuitable value for plant:method


implementation in tools
Osmose JOSM
To be implemented available via Power QA ruleset
info error

Incompatibility between generator:source and generator:method

implementation in tools
Osmose JOSM
To be implemented available via Power QA ruleset
info error

Incompatibility between plant:source and plant:method

implementation in tools
Osmose JOSM
To be implemented available via Power QA ruleset
info error

Voltage values by country

Each country has its own voltage set used for electricity transmission. For example, in Jordan, only 132 kV and 400 kV voltages are used.

Any other value used for the voltage=* tag is therefore an error.

implementation in tools
Osmose JOSM
To be implemented available via Power QA ruleset
info error

The list of authorized voltages by country is hard-coded in the "Power QA" validator for JOSM.

If you notice an error and want to update this list, you should: