A new challenge in UK resolving inconsistent highway classifications

Hi There, My apologies for the delay in getting back to you, combination of factors. I hope that the following helps to explain our objective and the process to generate these tasks.

Our goal was to detect places where the continuity of the road class is disrupted by a sudden change to another class, that did not logically appear correct by other conditions in the map, on a short or long section of the road, between two nodes or intersections.

The following is additional detail, that defines the process to achieve the tasks generated. Probably more detail than you may want but I want to be fully transparent about the process.

Elements are selected from the line layer which have values in the highway column: highway IN (motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,secondary_link,tertiary,tertiary_link,living_street,residential,road,raceway,service,track,unclassified).

Process

  1. The classes motorway, motorway_link, trunk, trunk_link, primary, primary_link, secondary, secondary_link, tertiary, tertiary_link, living_street, residential, road, raceway, service, track, unclassified are selected.

  2. On the selected group, mutual intersections are checked and nodes are extracted.

  3. Based on the calculation of roads in nodes, only those nodes that have more than one road are selected.

  4. In the next stage, nodes are selected whose incoming roads have at least two different types

  5. All relations of type are removed from the analysis
    || =VALUE(highway) = residential, service|
    |—|—|
    |Or| =VALUE(highway) = service, residential|
    |Or| =VALUE(highway) = residential, living_street|
    |Or| =VALUE(highway) = living_street, residential|
    |Or| =VALUE(highway) = residential, track|
    |Or| =VALUE(highway) = track, residential|
    |Or| =VALUE(highway) = service, living_street|
    |Or| =VALUE(highway) = living_street, service|
    |Or| =VALUE(highway) = service, track|
    |Or| =VALUE(highway) = track, service|
    |Or| =VALUE(highway) = service, unclassified|
    |Or| =VALUE(highway) = unclassified, service|
    |Or| =VALUE(highway) = residential, unclassified|
    |Or| =VALUE(highway) = unclassified,residential|
    |Or| =VALUE(highway) = living_street, unclassified|
    |Or| =VALUE(highway) = unclassified,living_street|
    |Or| =VALUE(highway) = track, unclassified|
    |Or| =VALUE(highway) = unclassified, street|
    |Or| =VALUE(highway) = track, living_street|
    |Or| =VALUE(highway) = living_street, track|

  6. Only points that have one of the listed types remain in the analysis for this initial pilot version:

=VALUE(highway) like %motorway
OR =VALUE(highway) like %trunk
OR =VALUE(highway) like %primary
OR =VALUE(highway) like %secondary
OR =VALUE(highway) like %tertiary
  1. Points are additionally checked and removed if they touch one of the geometry types: country’s border, military area, aerodrome/areaways areas and their duplicates in bridge/tunnel location are removed

Regards

Chris