Skip to content

Commit db46fa0

Browse files
momocursoragent
authored andcommitted
Processing: derive width from width/est_width with confidence
- Roads show measured vs estimated width confidence in the inspector - Width metadata stays in tags (no extra DB columns or export hacks) - Reuse existing parse_length and TagsTableRowValueSourceConfidence patterns Ping #289 Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 6af4b24 commit db46fa0

20 files changed

Lines changed: 263 additions & 545 deletions

app/src/data/generated/topicDocs/byTableName.gen.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,6 +1212,25 @@ const data = {
12121212
},
12131213
],
12141214
},
1215+
{
1216+
key: 'width_confidence',
1217+
type: 'string',
1218+
label: 'Konfidenz Breite',
1219+
purpose: 'qa',
1220+
values: [
1221+
{
1222+
value: 'high',
1223+
label: 'Direkt gemessen',
1224+
description: 'Wert stammt aus dem OSM-Tag `width`.',
1225+
},
1226+
{
1227+
value: 'low',
1228+
label: 'Geschätzt',
1229+
description:
1230+
'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
1231+
},
1232+
],
1233+
},
12151234
{
12161235
key: 'oneway',
12171236
type: 'string',
@@ -9938,6 +9957,25 @@ const data = {
99389957
},
99399958
],
99409959
},
9960+
{
9961+
key: 'width_confidence',
9962+
type: 'string',
9963+
label: 'Konfidenz Breite',
9964+
purpose: 'qa',
9965+
values: [
9966+
{
9967+
value: 'high',
9968+
label: 'Direkt gemessen',
9969+
description: 'Wert stammt aus dem OSM-Tag `width`.',
9970+
},
9971+
{
9972+
value: 'low',
9973+
label: 'Geschätzt',
9974+
description:
9975+
'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
9976+
},
9977+
],
9978+
},
99419979
{
99429980
key: 'oneway',
99439981
type: 'string',
@@ -11297,6 +11335,25 @@ const data = {
1129711335
},
1129811336
],
1129911337
},
11338+
{
11339+
key: 'width_confidence',
11340+
type: 'string',
11341+
label: 'Konfidenz Breite',
11342+
purpose: 'qa',
11343+
values: [
11344+
{
11345+
value: 'high',
11346+
label: 'Direkt gemessen',
11347+
description: 'Wert stammt aus dem OSM-Tag `width`.',
11348+
},
11349+
{
11350+
value: 'low',
11351+
label: 'Geschätzt',
11352+
description:
11353+
'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
11354+
},
11355+
],
11356+
},
1130011357
{
1130111358
key: 'surface',
1130211359
type: 'string',

app/src/data/generated/topicDocs/inspectorDescriptions.gen.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ const data = {
2626
'Seitlicher Versatz der Liniengeometrie in Metern. Der Wert wird im Processing aus der halben Straßenbreite berechnet; positive Werte liegen links der Referenzlinie, negative rechts.',
2727
},
2828
values: {
29+
width_confidence: {
30+
high: 'Wert stammt aus dem OSM-Tag `width`.',
31+
low: 'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
32+
},
2933
oneway: {
3034
assumed_no:
3135
'Keine explizite OSM-Angabe zur Verkehrsrichtung vorhanden. Aus Führungsform und Umfeld wird hier beide Richtungen als wahrscheinlich angenommen.',
@@ -108,7 +112,12 @@ const data = {
108112
mapillary_traffic_sign:
109113
'Mapillary-Bild-IDs für Verkehrszeichen (technisch bereinigt). Mehrere IDs sind als semikolongetrennte Liste möglich. Im Inspector wird pro ID ein Link erzeugt, z. B. `https://www.mapillary.com/app/?pKey=<ID>&focus=photo&z=15`.',
110114
},
111-
values: {},
115+
values: {
116+
width_confidence: {
117+
high: 'Wert stammt aus dem OSM-Tag `width`.',
118+
low: 'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
119+
},
120+
},
112121
},
113122
atlas_roadsPathClasses: {
114123
keys: {
@@ -125,7 +134,12 @@ const data = {
125134
mapillary_traffic_sign:
126135
'Mapillary-Bild-IDs für Verkehrszeichen (technisch bereinigt). Mehrere IDs sind als semikolongetrennte Liste möglich. Im Inspector wird pro ID ein Link erzeugt, z. B. `https://www.mapillary.com/app/?pKey=<ID>&focus=photo&z=15`.',
127136
},
128-
values: {},
137+
values: {
138+
width_confidence: {
139+
high: 'Wert stammt aus dem OSM-Tag `width`.',
140+
low: 'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
141+
},
142+
},
129143
},
130144
atlas_trafficSigns: {
131145
keys: {

app/src/data/generated/topicDocs/inspectorTranslations.gen.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,12 @@ const data = {
462462
'atlas_bikelanes--traffic_sign=none': 'Unbeschildert',
463463
'atlas_bikelanes--tunnel--key': 'Tunnel',
464464
'atlas_bikelanes--tunnel=yes': 'Ja',
465+
'atlas_bikelanes--width_confidence--key': 'Konfidenz Breite',
466+
'atlas_bikelanes--width_confidence=high': 'Direkt gemessen',
467+
'atlas_bikelanes--width_confidence=high--description': 'Wert stammt aus dem OSM-Tag `width`.',
468+
'atlas_bikelanes--width_confidence=low': 'Geschätzt',
469+
'atlas_bikelanes--width_confidence=low--description':
470+
'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
465471
'atlas_bikelanes--width_effective--key': 'Effektive Breite',
466472
'atlas_bikelanes--width_source--key': 'Quelle Breite',
467473
'atlas_bikelanes--width_source=ALKIS': 'Aus ALKIS Daten ausgemessen',
@@ -1444,6 +1450,12 @@ const data = {
14441450
'atlas_roads--traffic_sign=none': 'Unbeschildert',
14451451
'atlas_roads--tunnel--key': 'Tunnel',
14461452
'atlas_roads--tunnel=yes': 'Ja',
1453+
'atlas_roads--width_confidence--key': 'Konfidenz Breite',
1454+
'atlas_roads--width_confidence=high': 'Direkt gemessen',
1455+
'atlas_roads--width_confidence=high--description': 'Wert stammt aus dem OSM-Tag `width`.',
1456+
'atlas_roads--width_confidence=low': 'Geschätzt',
1457+
'atlas_roads--width_confidence=low--description':
1458+
'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
14471459
'atlas_roads--width_effective--key': 'Effektive Breite',
14481460
'atlas_roads--width_source--key': 'Quelle Breite',
14491461
'atlas_roads--width_source=ALKIS': 'Aus ALKIS Daten ausgemessen',
@@ -1733,6 +1745,13 @@ const data = {
17331745
'atlas_roadsPathClasses--todos--key': 'Todo-Liste',
17341746
'atlas_roadsPathClasses--traffic_sign--key': 'Beschilderung',
17351747
'atlas_roadsPathClasses--traffic_sign=none': 'Unbeschildert',
1748+
'atlas_roadsPathClasses--width_confidence--key': 'Konfidenz Breite',
1749+
'atlas_roadsPathClasses--width_confidence=high': 'Direkt gemessen',
1750+
'atlas_roadsPathClasses--width_confidence=high--description':
1751+
'Wert stammt aus dem OSM-Tag `width`.',
1752+
'atlas_roadsPathClasses--width_confidence=low': 'Geschätzt',
1753+
'atlas_roadsPathClasses--width_confidence=low--description':
1754+
'Wert stammt aus dem OSM-Tag `est_width`, weil `width` fehlt oder nicht geparst werden konnte.',
17361755
'atlas_roadsPathClasses--width_source--key': 'Quelle Breite',
17371756
'atlas_roadsPathClasses--width_source=ALKIS': 'Aus ALKIS Daten ausgemessen',
17381757
'atlas_roadsPathClasses--width_source=ARCore':

app/src/data/generated/topicDocs/masterportalByTableName.gen.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,15 @@ const data = {
467467
ARCore: 'Mit dem Handy-Metermaß von StreetComplete gemessen',
468468
},
469469
},
470+
width_confidence: {
471+
name: 'Konfidenz Breite',
472+
condition: 'contains',
473+
type: 'string',
474+
format: {
475+
high: 'Direkt gemessen',
476+
low: 'Geschätzt',
477+
},
478+
},
470479
oneway: {
471480
name: 'Verkehrsrichtung',
472481
condition: 'contains',
@@ -3621,6 +3630,15 @@ const data = {
36213630
ARCore: 'Mit dem Handy-Metermaß von StreetComplete gemessen',
36223631
},
36233632
},
3633+
width_confidence: {
3634+
name: 'Konfidenz Breite',
3635+
condition: 'contains',
3636+
type: 'string',
3637+
format: {
3638+
high: 'Direkt gemessen',
3639+
low: 'Geschätzt',
3640+
},
3641+
},
36243642
oneway: {
36253643
name: 'Verkehrsrichtung',
36263644
condition: 'contains',
@@ -4241,6 +4259,15 @@ const data = {
42414259
ARCore: 'Mit dem Handy-Metermaß von StreetComplete gemessen',
42424260
},
42434261
},
4262+
width_confidence: {
4263+
name: 'Konfidenz Breite',
4264+
condition: 'contains',
4265+
type: 'string',
4266+
format: {
4267+
high: 'Direkt gemessen',
4268+
low: 'Geschätzt',
4269+
},
4270+
},
42444271
surface: {
42454272
name: 'Oberfläche',
42464273
condition: 'contains',

app/src/routes/api/export.$regionSlug.$tableName.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,11 @@ export const Route = createFileRoute('/api/export/$regionSlug/$tableName')({
250250
SELECT column_name
251251
FROM information_schema.columns
252252
WHERE table_name = '${tableName}'
253-
AND column_name IN ('osm_id', 'osm_type', 'width_confidence', 'width_source')
253+
AND column_name IN ('osm_id', 'osm_type')
254254
`)
255255
const existingColumns = columnExistsQuery.map(({ column_name }) => column_name)
256256
const hasOsmId = existingColumns.includes('osm_id')
257257
const hasOsmType = existingColumns.includes('osm_type')
258-
const hasWidthConfidence = existingColumns.includes('width_confidence')
259-
const hasWidthSource = existingColumns.includes('width_source')
260258
const columnsMetadataTimingsMs = {
261259
tagKeys: metaKeysStartedAt - tagKeysStartedAt,
262260
metaKeys: columnsCheckStartedAt - metaKeysStartedAt,
@@ -278,11 +276,7 @@ export const Route = createFileRoute('/api/export/$regionSlug/$tableName')({
278276
'geom',
279277
hasOsmId ? 'osm_id' : undefined,
280278
hasOsmType ? 'osm_type' : undefined,
281-
hasWidthConfidence ? 'width_confidence' : undefined,
282-
hasWidthSource ? 'width_source' : undefined,
283-
...tagKeyQuery
284-
.filter(({ key }) => key !== 'width_confidence' && key !== 'width_source')
285-
.map(({ key }) => generateColumn(key, 'tags')),
279+
...tagKeyQuery.map(({ key }) => generateColumn(key, 'tags')),
286280
...metaKeyQuery.map(({ key }) => generateColumn(key, 'meta')),
287281
]
288282
.filter(Boolean)

processing/run-tests.sh

Lines changed: 0 additions & 27 deletions
This file was deleted.

processing/topics/helper/ExcludeByWidth.lua

Lines changed: 0 additions & 15 deletions
This file was deleted.

processing/topics/helper/RoadWidth.lua

Lines changed: 0 additions & 29 deletions
This file was deleted.

processing/topics/helper/__tests__/ParseWidth.test.lua

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)