BRouter, ein konfigurierbarer Offline-Streckenrouter [Web + Android]

Hallo Volker,

Höhenänderungen werden im VM Profil erst ab 7 Meter bestraft und als Steigung oder Gefälle gewertet. Es wird bei Steigungen nur was über 1% hinausgeht bestraft, das bevorzugt deshalb auch flachere Steigungen.
Der Kommentar im Profil sagt da etwas anderes:
assign elevationpenaltybuffer 7 # Höhenpuffer (in Meter) ab dem die Höhenstrafen beginnen und das Segment als Anstieg und Gefälle gewertet wird
assign elevationmaxbuffer 13 # Maximale Puffergröße (in Meter), alles darüberhinausgehende wird voll bestraft
assign elevationbufferreduce 1 # im Bereich zwischen elevationpenaltybuffer und elevationmaxbuffer wird eine Höhenstrafe, die einer Steigung oder Gefälle dieses Wertes (in Prozent) entspricht, verhängt und diese Höhenmeter vom Puffer abgezogen.
Alles bis 7 m wird ganz vernachlässigt und die nächsten 6 Hm als Steigung von 1% gewertet, egal wie steil.

Und so routet er nach meinem Gefühl auch: Ein 10 Hm/100 m Anstieg mit 10% (gewertet als 3 Hm(?)/30 m mit 1%) wird einem 15 Hm/750 m Anstieg mit 2% Steigung (gewertet als 6 Hm(?)/300 m mit 1% und 2 Hm/100 m mit 2%) nebendran vorgezogen.

Ist dem nicht so? Ich editiere jedenfalls auf penaltybuffer 3 maxbuffer 6 bufferreduce 15 und bekomme weniger dieser steilen Rampen, allerdings auch schon mal einen Halbkreis um ein hohes Gebäude, den ich dann ignoriere.
Was ich auch nicht weiß: Wie fließt die Stärke der Steigung in die Bewertung mit ein? Ich würde gerne stärkeren Steigungen eine überproportionale Strafe zuordnen. Denn die 10 Hm mit 10% kosten mich wertvolle Körner, während der knappe km mit 2% auf einer Backe hochgekurbelt wird. Und vm schnell nimmt immer die 10%

Gruß,

Tim
 
Hallo Tim,

Der Kommentar im Profil sagt da etwas anderes:

ich habe mich auf den uphillcutoff bezogen, darum stimmt diese Aussage.

Und so routet er nach meinem Gefühl auch: Ein 10 Hm/100 m Anstieg mit 10% (gewertet als 3 Hm(?)/30 m mit 1%) wird einem 15 Hm/750 m Anstieg mit 2% Steigung (gewertet als 6 Hm(?)/300 m mit 1% und 2 Hm/100 m mit 2%) nebendran vorgezogen.

Bei diesem Beispiel wird das 2. bevorzugt wenn die Gesamtstrecke gleich, also beim ersten Beispiel 650 Streckenmeter Ebene bei costfactor 1 dabei wäre. Die Gesamtstrecke von Beispiel 1 könnte dann sogar noch fast 40 Meter kürzer sein.

Beispiel 1:
cuttoff 1% = 100 Streckenmeter * 1% = 1 Meter

10 Meter -7 Meter (Puffer) - 1 Meter (cutoff) = 2Meter

von diesen 2 Meter wird auf den 100 Streckenmeter 1 Meter gewertet (elevationbufferreduce) der andere bleibt im Puffer und wird je nach Strecke weitere Höhenkosten auslösen. Dies wird mit einer zusätzlichen Strecke von 80 Meter bestraft. Pufferendstand 8 Meter.

Beispiel 2:
cuttoff 1% = 750 Streckenmeter * 1% = 7.5 Meter

15 Meter -7 Meter (Puffer) - 7.5 Meter (cutoff) = 0.5Meter

Es werden nur 0.5 Höhenmeter gewertet und als zusätzliche Strecke von 40 Meter bestraft. Pufferendstand 7 Meter.

Streckendiferenz = 750 + 40 - (100 + 80) = 610

Mit deinen Werten wäre das:

Beispiel 1a:
cuttoff 1% = 100 Streckenmeter * 1% = 1 Meter

10 Meter -3 Meter (Puffer) - 1 Meter (cutoff) = 6 Meter

von diesen 6 Meter werden auf den 100 Streckenmeter 6 Meter gewertet (elevationbufferreduce). Dies wird mit einer zusätzlichen Strecke von 480 Meter bestraft. Pufferendstand 3 Meter.

Beispiel 2a:
cuttoff 1% = 750 Streckenmeter * 1% = 7.5 Meter

15 Meter -3 Meter (Puffer) - 7.5 Meter (cutoff) = 4.5Meter

Es werden 4.5 Höhenmeter gewertet und als zusätzliche Strecke von 360 Meter bestraft. Pufferendstand 3 Meter.

Streckendiferenz = 750 + 360 - (100 + 480) = 530

Wenn du mehr Differenz zwischen den beiden Beispielen willst solltest du zusätzlich zum den Puffer auch den uphillcutoff anpassen. Hier die Beispiele mit 1.5% uphillcutoff, 2% elevationbufferreduce, 5 Meter elevationpenaltybuffer und 10 Meter elevationmaxbuffer.

Beispiel 1b:
cuttoff 1.5% = 100 Streckenmeter * 1.5% = 1.5 Meter

10 Meter -5 Meter (Puffer) - 1.5 Meter (cutoff) = 3.5Meter

von diesen 3.5 Meter wird auf den 100 Streckenmeter 2 Meter gewertet (elevationbufferreduce), 1.5 bleiben im Puffer und wird je nach Strecke weitere Höhenkosten auslösen. Dies wird mit einer zusätzlichen Strecke von 160 Meter bestraft. Pufferendstand 6.5 Meter.

Beispiel 2b:
cuttoff 1.5% = 750 Streckenmeter * 1.5% = 11.25 Meter

15 Meter - 5 Meter (Puffer) - 11.25 Meter (cutoff) < 0

Es werden keine Höhenmeter gewertet Pufferendstand 0 Meter.

Streckendiferenz = 750 + 0 - (100 + 160) = 490

Wenn man die Puffer sehr klein und den Reduzierwert sehr groß macht werden die up- und downhillcost schlechter angewendet.

Gruß Volker
 
Danke Volker,

langsam wirds klar. Leider auch schlimmer. Ich dachte bisher, der Puffer würde nur durch Abfahrten wieder geleert.
Wenn wie Du annimmst die steile Rampe durch ein Stück ebene Strecke verlängert wird, dann läuft da der Puffer leer und die nächste steile Rampe kann kommen.

Im ersten Beispiel bei gleicher Streckenlänge ergäbe es bei berechneten 790 m für beide Varianten einen Pufferunterschied von 5 Hm als Vorteil für die steile Rampe.
Damit ist mir auch klar, warum meine Lieblingsführung mit Anstiegen am Stück und dann langen, gut rollenden Abschnitten nicht freiwillig geroutet wird: Die Streckenvariante kriegt besonders viel Strafstrecke im Vergleich zu einer Hügelpiste, in der ich meinen Rhythmus nicht finde.

Ich meinte bei meinem Vergleich aber etwas anderes: Ich bevorzuge die Umfahrung einer 10%/10 Hm Rampe, wenn ich dafür bis zu 15 Hm fahren muss und entsprechend länger. Ich hätte gerne eine Steilheitsstrafe, die die 100m Rampe dem 750m Anstieg gleichstellt, also 610m Streckenstrafe zusätzlich gibt.

Ginge so etwas?

Gruß,

Tim
 
Ich find die eine Rampe hinter Ostrach grad nicht und muss die Steige in Plochingen nehmen, die nur von fastbike gewählt wird, auch wenn vm-schnell ihr weniger Kosten zurechnet?!
Plochingen_Umgehung.jpg Plochingen_Rampe.jpg Steige.jpg
Die Hautpstraße kriegt im Profil vm-schnell 2921 Cost bei 1,5 km, die Rampe 2740 Cost bei 1,2 km. Wird wohl nur nicht gewählt, weil es ein Stück Fußweg ist?
Der Lichtreflex im oberen Teil der Steige ist nämlich der Handlauf, der an den für die Fußgänger gebauten Treppenstufen angebracht ist. Daneben ist aber noch asphaltiert, so daß man das VM noch hochschieben kann. Hab ich einmal probiert, als ich per fastbike heimgefahren bin. Den Track hab ich aber nicht gespeichert.
Ich hätte gerne für die angezeigten 7% Steigung (es sind mind. 15% , die nicht aufgelöst werden) deutlich mehr Strafe als für die angezeigten 5% auf der Straße (könnte hinkommen)

Gruß,

Tim
 
Hallo Tim,

Im ersten Beispiel bei gleicher Streckenlänge ergäbe es bei berechneten 790 m für beide Varianten einen Pufferunterschied von 5 Hm als Vorteil für die steile Rampe.

nein, bei gleicher Streckenlänge also 650 Meter Eben + 100 Meter Steigung mit 10 Hohenmeter werden 80 Streckenmeter Strafe addiert -> 830 Streckenmeter werden berechnet. 750 Meter mit 15 Höhenmeter werden mit 40 Streckenmeter bestraft -> 790 Streckenmeter werden berechnet. Die kürzere ist dann die Zweite.

Ich meinte bei meinem Vergleich aber etwas anderes: Ich bevorzuge die Umfahrung einer 10%/10 Hm Rampe, wenn ich dafür bis zu 15 Hm fahren muss und entsprechend länger. Ich hätte gerne eine Steilheitsstrafe, die die 100m Rampe dem 750m Anstieg gleichstellt, also 610m Streckenstrafe zusätzlich gibt.

Ginge so etwas?

Ja klar geht das, ich finde es aber nicht gerade sinnvoll eine längere Strecke mit mehr Höhenmeter zu bevorzugen. Hier die Beispiele mit 1.5% uphillcutoff, 4.1% elevationbufferreduce, 4 Meter elevationpenaltybuffer, 8 Meter elevationmaxbuffer und zusätzlich uphillcost 160.

Beispiel 1c:
cuttoff 1.5% = 100 Streckenmeter * 1.5% = 1.5 Meter

10 Meter -4 Meter (Puffer) - 1.5 Meter (cutoff) = 4.5Meter

von diesen 4.5 Meter wird auf den 100 Streckenmeter 4.1 Meter gewertet (elevationbufferreduce). Dies wird mit einer zusätzlichen Strecke von 656 Meter bestraft. Pufferendstand 4.4 Meter.

Beispiel 2c:
cuttoff 1.5% = 750 Streckenmeter * 1.5% = 11.25 Meter

15 Meter - 4 Meter (Puffer) - 11.25 Meter (cutoff) < 0

Es werden keine Höhenmeter gewertet Pufferendstand 0 Meter.

Streckendiferenz = 750 + 0 - (100 + 656) = -6

Ich find die eine Rampe hinter Ostrach grad nicht und muss die Steige in Plochingen nehmen, die nur von fastbike gewählt wird, auch wenn vm-schnell ihr weniger Kosten zurechnet?!

Das liegt nur daran das bei Zwischenpunkte (wird wie ein neuer Startpunkt behandelt) der Höhenpuffer geleert wird und damit weniger Höhenstrafen berechnet werden. Versuche die Strecke mal mit Nogobereiche dorthin zu verschieben, dann sollte der Unterschied in den Daten zu sehen sein.

Gruß Volker
 
ich finde es aber nicht gerade sinnvoll eine längere Strecke mit mehr Höhenmeter zu bevorzugen.
Also @andy und ich finden das ganz besonders sinnvoll. Ich fahre eben lieber 2,5 min mit 16 km/h in Ausdauerleistung (140W) eine leichte Steigung hoch, als komplett runter und aufs kleine Blatt schalten, ne Minute 220 Watt leisten und danach wieder aufs große Blatt schalten zu müssen. Das kostet Zeit und Körner. Dann sind gleich noch ein paar Minuten Erholung angesagt, und nach jeder solchen Kante brauch ich länger, um mich zu erholen. Nach 100 km mit mehreren solchen Rampen gehts dann los, daß ich sogar anhalten und schieben muss. Das versuche ich zu vermeiden, das kostet dann richtig Körner.

Streckendiferenz = 750 + 0 - (100 + 656) = -6
Ja, das funktioniert.
Ich möchte aber den uphillcutoff ungern noch höher haben, das bevorzugt unruhige Streckenführungen ja noch stärker. Je öfter kleine Hubbel im Weg sind, desto mehr Hm werden weggerechnet - ist das verständlich?
Sorry, daß ich jetzt ein drittes Beispiel genau passend konstruiere: Eine Strecke mit 10 Hm und 1% -> 1 km wäre dann gegenüber der Umfahrung über den 5 Hm - Hubbel im Nachteil, dabei fände ich die noch besser.

Das liegt nur daran das bei Zwischenpunkte (wird wie ein neuer Startpunkt behandelt) der Höhenpuffer geleert wird
Wieder was gelernt, danke!

Wäre es z.B. möglich, den Cutoff auf null zu setzen und dafür die Strafe nach Steigungsprozenten zu variieren?
Am besten einen Potenz-Faktor, den man wählen kann. realuphillcost=uphillcost*((Strecke+Hm/Strecke)^Potenzfaktor-1)
Beispiel:
Code:
uphillcost 40
Potenzfaktor 23
Formel 40*(1,xx^23-1) xx=Steigungsprozente
Steigung     Faktor    Strafe/Hm
1%               0,26        10
3%               0,97        39
5%               2,07        83
10%             7,95        318

Das fände ich halbwegs passend. Eine 5%-Steigung fahr ich noch gern, wenn es denn sein muss, zählt soviel wie bisher. 3% tut nur halb so weh und 1% ist vernachlässigbar. Und 10% und alles drüber wird gnadenlos umfahren. Gerne 3 km um die 100 m-Rampe rum, wenn völlig flach.

Edit:
Zu den drei Beispielen:
Rampe 10 Hm 10%: 100+3180=3280
Anstieg 15 Hm 2%: 750+346=1096
Anstieg 10 Hm 1%: 1000+100=1100
Mist, der 2%-Anstieg gewinnt doch noch ;)

Und das Ganze nur für Leute wie mich freischaltbar mit Schalter, wenn wir schon Wunschkonzert haben ;)(y)
Ich weiß halt nicht, wie die Segmente gebildet werden, die einzeln bewertet werden. Wenn da dann 100m mit 10% und 300m mit 2% zusammengefasst werden, läuft meine Idee teilweise ins Leere.

Gruß,

Tim
 
Zuletzt bearbeitet:
Ich fahre eben lieber 2,5 min mit 16 km/h in Ausdauerleistung (140W) eine leichte Steigung hoch, als komplett runter und aufs kleine Blatt schalten, ne Minute 220 Watt leisten und danach wieder aufs große Blatt schalten zu müssen
Wie gut, dass man die leichtere Steigung auch ins VM einbauen kann. Ich fahr mit 140W auch einen 10%er bei ca 5km/h und noch entspannten 60U/min hoch.
 
Ich fahr mit 140W auch einen 10%er bei ca 5km/h
Ich komm auf 180 W mit den 7 kg Gepäck, die ich gerechnet hatte.
Aber die 180 W sind für Dich ja auch Ausdauerleistung :)
Leider krieg ich in den alten Milan kein extralanges Schaltwerk rein, mittel muß reichen. Damit ist bei 2,25m Entfaltung Schluss, damit komm ich nicht unter 6 km/h / 45 UPM
Ich glaube aber, Du bist einer der wenigen VM-Fahrer, der sich über Steigungen >8% freut ;)

Versuche die Strecke mal mit Nogobereiche dorthin zu verschieben, dann sollte der Unterschied in den Daten zu sehen sein.
3100 zu 3103 für die "flache" Strecke. Also vernachlässigbarer Unterschied.

Gruß,

Tim
 
Also @andy und ich finden das ganz besonders sinnvoll. Ich fahre eben lieber 2,5 min mit 16 km/h in Ausdauerleistung (140W) eine leichte Steigung hoch, als komplett runter und aufs kleine Blatt schalten, ne Minute 220 Watt leisten und danach wieder aufs große Blatt schalten zu müssen. Das kostet Zeit und Körner.

OK, wenn die Schaltung das nicht hergibt gemütlich hochzukurbeln kann ich das schon verstehen.

Ich möchte aber den uphillcutoff ungern noch höher haben, das bevorzugt unruhige Streckenführungen ja noch stärker.

Nicht ganz, der downhillcutoff ist ja recht niedrig und sorgt beim (ansonsten nicht nötigen) Abstieg dann doch noch für Kosten.

Wäre es z.B. möglich, den Cutoff auf null zu setzen und dafür die Strafe nach Steigungsprozenten zu variieren?
Am besten einen Potenz-Faktor, den man wählen kann. realuphillcost=uphillcost*((Strecke+Hm/Strecke)^Potenzfaktor-1)

Mit den SRTM-Höhendaten ist das praktisch nicht möglich. Schau dir mal die vom BRouter erstellten Strecken mit einem Programm an das Höhenmeter und Steigungen anzeigt. Da sind einige Steile stellen dabei die in der Realität nicht vorhanden sind und umgekehrt. Mit den verfügbaren Daten führt das nur zu chaotischen Verhalten. Abweichungen bis 5 Meter sind in den Höhendaten normal, bis 10 Meter keine Seltenheit, da kann man bei kurzen Segmenten die Steigung genauso gut würfeln. Das hier ist real eine sehr gleichmäßige Steigung mit ≈ 6% und so sieht das im Höhenmodel vom BRouter aus:
Screenshot_2017-04-26-18-25-42.png
Da ist von 1-10% alles dabei!

Gruß Volker
 
der downhillcutoff ist ja recht niedrig und sorgt beim (ansonsten nicht nötigen) Abstieg dann doch noch für Kosten.
Werden die nicht auch weggepuffert? Das meine ich doch damit. Meine Strecke hat ja nicht weniger Höhenmeter, nur zusammenhängender.
also +8-6+12-5+8-13 macht +4/-5 bei Puffer von 8
+28-24 macht +20/-16
Oder fehlt mir da wieder ne wichtige Information?

Schau dir mal die vom BRouter erstellten Strecken mit einem Programm an das Höhenmeter und Steigungen anzeigt. Da sind einige Steile stellen dabei die in der Realität nicht vorhanden sind und umgekehrt.
In wieviele Segmente würde Brouter das denn aufteilen? Sobald das 500 m Segmente werden, mittelt sich das weg.
Und wenn man sich die Stelle anschaut: Alle anderen Aufstiege aus dem Tal sähen schlimmer aus. Ich würde ja B19 fahren wollen. Ist das erlaubt?

Mit den verfügbaren Daten führt das nur zu chaotischen Verhalten.
Das wäre halt mal zu testen. Wenn alle Strecken Fehler haben, sollte sich das ja verteilen. Aber ich muss loslegen für die Spezitour, nächste Woche weiter?

Gruß,

Tim
 
Werden die nicht auch weggepuffert?

Eventuell ja, aber sie fallen nicht unter einen höheren uphillcutoff, darum ging es mir.

In wieviele Segmente würde Brouter das denn aufteilen? Sobald das 500 m Segmente werden, mittelt sich das weg.
Und wenn man sich die Stelle anschaut: Alle anderen Aufstiege aus dem Tal sähen schlimmer aus. Ich würde ja B19 fahren wollen. Ist das erlaubt?

Jedem Wegpunkt im OSM wird eine Höhe aus den SRTM-Höhendaten zugeordnet. Die Segmentlänge kommt also direkt aus der OSM.

In dieser Region darf man fast überall auf der B19 fahren.

Das wäre halt mal zu testen. Wenn alle Strecken Fehler haben, sollte sich das ja verteilen. Aber ich muss loslegen für die Spezitour, nächste Woche weiter?

Auf große Bereiche mittelt sich es vielleicht raus, aber nicht lokal.

Oder wir könnten uns auf der Spezi treffen und das dort weiterdiskutieren/optimieren?

Gruß Volker
 
Moin,
jemand aus dem Radreise & Fernradler Forum hat sich die Mühe gemacht, die Readme Texte zum BRouter ins Deutsche zu übertragen.
Die Texte sind im Radweise Wiki zu lesen.

Gruß
Geli
 
Hallo!
Sorry, wenn ich das jetzt Frage aber welches Profil stelle ich ein um nur Radwege zu nehmen
und/oder Steigungen vermeiden?
Habe schon einiges durch doch leider lots mich OSMAND immer Bundesstraßen entlang obwohl Radwege vorhanden sind.
Brouter ist als offline Navigation eingestellt.
 
Sorry, wenn ich das jetzt Frage aber welches Profil stelle ich ein um nur Radwege zu nehmen
Mit dem Profil "safety" klappt das ganz gut.

Gruß
Geli

p.s. um zu überprüfen, ob in Osmand auch alles richtig eingestellt ist, kannst Du mit dem BRouter Web Client über die gleichen Punkte routen lassen. Dann sollte auch die gleiche Route erscheinen.
 
Habe schon einiges durch doch leider lots mich OSMAND immer Bundesstraßen entlang obwohl Radwege vorhanden sind.
Bist du in Osmand im "Auto" Modus? Dann ist im Standard das "car-test" Autoprofil vom BRouter im Einsatz. Wechsel auf Den Fahrradmodus, eventuell musst du dort noch einmal BRouter auswählen.

Gruß Volker
 
Hallo frage:
Lasse ich navigieren verschwinden auf den offlinekarten alle strassen etc. Sobald ich von 500m (oder mehr) zoomstufe auf 200m (oder weniger) gehe und es bleibt nur der track über

Wo kann ich das bitte umstellen? Danke !
 
Zurück
Oben Unten