diff --git a/src/routes/route_check/safety_check/codegen.py b/src/routes/route_check/safety_check/codegen.py new file mode 100644 index 0000000000..5bd544b196 --- /dev/null +++ b/src/routes/route_check/safety_check/codegen.py @@ -0,0 +1,30 @@ +import csv + +# Manually copy from Excel, naming the columns "Metric Mode ID Description +# Critical Red Amber Green" (with tabs). This is a one-off script; the source +# of truth becomes the Svelte files, which need to be manually edited to +# improve formatting. +with open("safety_check.tsv") as tsv: + idx = 0 + for row in csv.DictReader(tsv, delimiter=" "): + with open(row["ID"].lower() + "/+page.svelte", "w") as f: + f.write("""\n""") + f.write("""\n""") + + f.write("""\n""") + + f.write("""

{}

\n""".format(row["Description"])) + f.write("""\n""") + idx += 1 diff --git a/src/routes/route_check/safety_check/sa01/+page.svelte b/src/routes/route_check/safety_check/sa01/+page.svelte index e679ba1354..c0357702d9 100644 --- a/src/routes/route_check/safety_check/sa01/+page.svelte +++ b/src/routes/route_check/safety_check/sa01/+page.svelte @@ -13,7 +13,7 @@ ], [ "1", - "<2,500vpd cut across main walking, wheeling or cycling streams and side roads and priority junctions have entry treatments.", + "<2,500vpd cut across main walking, wheeling or cycling streams and side roads and priority junctions have entry treatments. ", ], [ "2", diff --git a/src/routes/route_check/safety_check/sa03/+page.svelte b/src/routes/route_check/safety_check/sa03/+page.svelte index 9bcfd22d1f..5325383b27 100644 --- a/src/routes/route_check/safety_check/sa03/+page.svelte +++ b/src/routes/route_check/safety_check/sa03/+page.svelte @@ -8,15 +8,15 @@ cases={[ [ "C", - "Cyclists are mixed with traffic in lanes between 3.25m and 3.9m wide. Or, cyclists are in unprotected cycle lanes and the combined width of the cycle lane and adjacent traffic lane is between 3.25m and 3.9m.", + "Cyclists are mixed with traffic in lanes between 3.25m and 3.9m wide. Or, cyclists are in unprotected cycle lanes and the combined width of the cycle lane and adjacent traffic lane is between 3.25m and 3.9m.", ], [ "0", - "Cyclists are mixed with traffic in lanes less than 3.25m wide or over 3.9m wide. Or, cyclists are in unprotected cycle lanes and the combined width of the cycle lane and adjacent traffic lane is under 3.25m or over 3.9m. Or cyclists are mixed with traffic on busy urban streets with no centre line. Or, there are speed cushions present.", + "Cyclists are mixed with traffic in lanes less than 3.25m wide or over 3.9m wide. Or, cyclists are in unprotected cycle lanes and the combined width of the cycle lane and adjacent traffic lane is under 3.25m or over 3.9m. Or cyclists are mixed with traffic on busy urban streets with no centre line. Or, there are speed cushions present.", ], [ "1", - "Cyclists are in cycle lanes with light protection or stepped cycle tracks under 1.8m wide (single direction). Or, cyclists are in a protected bidirectional cycle facility under 2.5m wide. Or, cyclists are mixed with traffic on quiet urban streets with no centre line.", + "Cyclists are in cycle lanes with light protection or stepped cycle tracks under 1.8m wide (single direction). Or, cyclists are in a protected bidirectional cycle facility under 2.5m wide. Or, cyclists are mixed with traffic on quiet urban streets with no centre line.", ], ["2", "Cyclists are protected from motor traffic or off-road entirely."], ]} diff --git a/src/routes/route_check/safety_check/sa05/+page.svelte b/src/routes/route_check/safety_check/sa05/+page.svelte index 1c9596b730..237e1486ff 100644 --- a/src/routes/route_check/safety_check/sa05/+page.svelte +++ b/src/routes/route_check/safety_check/sa05/+page.svelte @@ -3,14 +3,26 @@ -

+

Cyclist conflict with kerbside activity, including risk of 'dooring'

diff --git a/src/routes/route_check/safety_check/sa06/+page.svelte b/src/routes/route_check/safety_check/sa06/+page.svelte index 1c9596b730..a95ef0959d 100644 --- a/src/routes/route_check/safety_check/sa06/+page.svelte +++ b/src/routes/route_check/safety_check/sa06/+page.svelte @@ -3,14 +3,26 @@ 8,000vpd) controlled crossings (including zebra crossings) are not present or more than 400m apart. On quieter streets (<8,000vpd), desire lines are blocked by parking and loading. ", + ], + [ + "0", + "On very busy streets (>8,000vpd), controlled crossings (including zebra crossings) are provided every 200-400m. On quieter streets (<8,000vpd), loading/parking is formalised with gaps for pedestrians to cross.", + ], + [ + "1", + "On very busy streets (>8,000vpd), controlled crossings (including zebra crossings) are provided every 100-200m. On quieter streets (<8,000vpd), loading/parking is formalised with gaps for pedestrians to cross on desire lines.", + ], + [ + "2", + "On very busy streets (>8,000vpd), controlled crossings (including zebra crossings) are provided every 50-100m. On quieter streets (<8,000vpd), there are controlled crossings or only one lane of traffic to cross.", + ], ]} > -

+

Ability of pedestrians to cross the street safely on desire lines

diff --git a/src/routes/route_check/safety_check/sa07/+page.svelte b/src/routes/route_check/safety_check/sa07/+page.svelte index 1c9596b730..9b0d551ddc 100644 --- a/src/routes/route_check/safety_check/sa07/+page.svelte +++ b/src/routes/route_check/safety_check/sa07/+page.svelte @@ -3,14 +3,26 @@ 8,000vpd), there are uncontrolled crossings of two or more lanes with no gaps in traffic. At signal junctions there are arms with dropped kerbs and tactile paving but no green pedestrian symbol.", + ], + [ + "0", + "On very busy streets (>8,000vpd), there are uncontrolled crossings or zebra/parallel crossings. On quieter streets (<8,000vpd), crossing points have no implied priority or there are no crossing points.", + ], + [ + "1", + "On very busy streets (>8,000vpd), signal crossings are provided for pedestrians. On quieter streets (<8,000vpd), crossing points have effective implied priority for pedestrians.", + ], + [ + "2", + "On very busy streets (>8,000vpd), signal crossings rest on green for pedestrians or have rapid response. On quieter streets (<8,000vpd), crossing points are controlled crossings.", + ], ]} > -

+

Suitability of pedestrian crossings in context

diff --git a/src/routes/route_check/safety_check/sa08/+page.svelte b/src/routes/route_check/safety_check/sa08/+page.svelte index 1c9596b730..7af1cb1f93 100644 --- a/src/routes/route_check/safety_check/sa08/+page.svelte +++ b/src/routes/route_check/safety_check/sa08/+page.svelte @@ -3,14 +3,20 @@ -

+

+ 85th percentile speed of motor traffic (where cyclists are not protected or + pedestrians are crossing uncontrolled) +

diff --git a/src/routes/route_check/safety_check/sa09/+page.svelte b/src/routes/route_check/safety_check/sa09/+page.svelte index 1c9596b730..c1c4016563 100644 --- a/src/routes/route_check/safety_check/sa09/+page.svelte +++ b/src/routes/route_check/safety_check/sa09/+page.svelte @@ -3,14 +3,29 @@ 1,000 vehicles in the busiest hour. Or, over 5% of traffic is HGVs where there are over 500 vehicles in the busiest hour.", + ], + [ + "0", + "500-1,000 vehicles in the busiest hour. Or, 2-5% of traffic is HGVs where there are 200-499 vehicles in the busiest hour.", + ], + [ + "1", + "200-499 vehicles in the busiest hour. And, less than 2% of traffic is HGVs.", + ], + [ + "2", + "<200 vehicles in the busiest hour. Or, cyclists are protected from motor traffic or off-road entirely and controlled crossings are provided for pedestrians wherever needed.", + ], ]} > -

+

+ Volume of motor traffic at the busiest hour (where cyclists are not + protected or pedestrians cross uncontrolled) +

diff --git a/src/routes/route_check/safety_check/sa10/+page.svelte b/src/routes/route_check/safety_check/sa10/+page.svelte index 1c9596b730..096bce0e67 100644 --- a/src/routes/route_check/safety_check/sa10/+page.svelte +++ b/src/routes/route_check/safety_check/sa10/+page.svelte @@ -3,14 +3,29 @@ -

+

+ Required crossing speed at signal crossings (risk of pedestrians coming into + conflict with traffic). +

diff --git a/src/routes/route_check/safety_check/sa11/+page.svelte b/src/routes/route_check/safety_check/sa11/+page.svelte index 1c9596b730..cb34b3f182 100644 --- a/src/routes/route_check/safety_check/sa11/+page.svelte +++ b/src/routes/route_check/safety_check/sa11/+page.svelte @@ -3,14 +3,29 @@ 3m clear footway width and pedestrian comfort is poor (PCL of D-E). Where the footway is not next to the carriageway, the clear footway width is 1.5m-3m.", + ], + [ + "2", + ">3m clear footway width and pedestrian comfort is good (PCL of A-C).", + ], ]} > -

+

+ Clear walking and wheeling spaces free of permanent obstructions and + furniture, reducing risk of pedestrians walking in the carriageway. +

diff --git a/src/routes/route_check/safety_check/sa12/+page.svelte b/src/routes/route_check/safety_check/sa12/+page.svelte index 1c9596b730..1fa4f6c20c 100644 --- a/src/routes/route_check/safety_check/sa12/+page.svelte +++ b/src/routes/route_check/safety_check/sa12/+page.svelte @@ -3,14 +3,17 @@ 2.4m from tramline edge to kerb."], + ["2", "Physical protection is provided for cyclists."], ]} > -

+

Effective width next to tram line on a straight run or a curve

diff --git a/src/routes/route_check/safety_check/sa13/+page.svelte b/src/routes/route_check/safety_check/sa13/+page.svelte index 1c9596b730..3ffccce5f0 100644 --- a/src/routes/route_check/safety_check/sa13/+page.svelte +++ b/src/routes/route_check/safety_check/sa13/+page.svelte @@ -3,14 +3,20 @@ -

+

Crossing angle (between cyclist desire line and tram or train rails).

diff --git a/src/routes/route_check/safety_check/sa14/+page.svelte b/src/routes/route_check/safety_check/sa14/+page.svelte index 1c9596b730..e3933668fe 100644 --- a/src/routes/route_check/safety_check/sa14/+page.svelte +++ b/src/routes/route_check/safety_check/sa14/+page.svelte @@ -3,14 +3,18 @@ -

+

+ Cycling surface and maintenance defects: • sharp gradients (≥12.5%) • non + cycle friendly ironworks • raised/sunken covers or gullies • potholes • + loose/cracked surfaces • poor drainage or slip risks • overgrown vegetation +

diff --git a/src/routes/route_check/safety_check/sa15/+page.svelte b/src/routes/route_check/safety_check/sa15/+page.svelte index 1c9596b730..d227a614b7 100644 --- a/src/routes/route_check/safety_check/sa15/+page.svelte +++ b/src/routes/route_check/safety_check/sa15/+page.svelte @@ -3,14 +3,20 @@ -

+

+ Walking/wheeling surface and maintenance defects: • steep camber (horizontal + gradient >2.5% ) • steep longitudinal gradients (≥8% if under 1m, ≥5% if 1m + or over) • missing dropped kerbs • non flush tables • misleading tactile + information • loose/cracked surfaces • poor drainage or slip risks • + overgrown vegetation +

diff --git a/src/routes/route_check/safety_check/sa16/+page.svelte b/src/routes/route_check/safety_check/sa16/+page.svelte index 1c9596b730..905b5d2106 100644 --- a/src/routes/route_check/safety_check/sa16/+page.svelte +++ b/src/routes/route_check/safety_check/sa16/+page.svelte @@ -3,14 +3,20 @@ -

+

Presence of guard railing