Brouter - offline router service pro cyklisty a turisty - volná diskuze

Started by poutnikl, November 30, 2015, 08:26:36

0 Members and 5 Guests are viewing this topic.

Dan S.

jj, myslel jsem ČR co se týče mapy.cz, a taky +1 pro Brouter, že zná více pěšinek :)
Locus Pro
  •  

Dan S.

Quote from: poutnikl on February 25, 2016, 10:43:47
Pak ale Brouter  nepotřebuješ. On má / s pár mezicily na kterych trvas /  navrhnout trasu, kterou bys Ty jinak navrhl ručně, Ledaže si definuješ nějakého šíleného motáka po lese, který Ti žádný rozumný route engine nenavrhne.
myslel jsem právě toho motáka v lese :)
Jinak nejvíce používám Brouter s from, to, via, nogo
Locus Pro
  •  

Dan S.

#+++ special downhill parameters
assign considerdownhill         1                  # use special penalties for downhills? (enables/disables below parameters)
assign dh_penalty               2.0                # additional penalty for unwanted downhills
assign dh_difficult_penalty     10                 # additional downhill penalty for ways with high difficulty
assign dh_use_tracks            1                  # use less penalty for downhill tracks than for other waytypes? (0/1)
assign dh_track_penalty         multiply 0.75 dh_penalty # reduced downhill penalty for tracks


uvažuji na tímto, jaké hodnoty u těchto 5-ti položek jsou základní, t.j. bez omezení? 0?
Locus Pro
  •  

poutnikl

Velice závisí na tom, co presne myslíš tím "bez omezení". "Jen jej nechte, at se zabije" ?   ;)

Brouter používá pro klasifikaci cest parametr "costfactor", kterým násobí délku cesty. Volitelne také parametry uphillcostfactor a downhillcostfactor, které použije, pokud cesty vyhodnotí, že vede do kopce nebo s kopce. ( To není vždy totéž co fyzický stav, díky systému filtrace výškových dat. Napr. pokud se neco porad vlní v rámci 10 výškových metru, bere to jako rovinu. ).

uphillcostfactor / downhillcostfactor obvykle vuci costfactor nekde povolí, nekde pritáhnou. Napr. stoupani do kopce na silnici prvni tridy nebo po pesine s MTB_scale=3 a víc,  není úplne to pravé orechové. Podobne sjezd po bahnité pešine taky nemusí lákat každého.

Edit: výše uvedený profil penalizuje MTB scale 3+ z kopce jeste vice, nez po rovine,a take  tracks/paths s grade 5.
obojimu dava dh_difficult_penalty  10.  Penalizaci grade5 vyloucis, pokud nastavis track_penalty natvrdo na nulu. ( grade5 ma 0.2 ). Profile totiz testuje track_penalty na nenulovou hodnotu, a prida dh_difficult_penalty 10, kdyz neni nulova.


assign considerdownhill         0  nastaví "žádné speciální naastavení pro sjezd" 
pouzije proste costfactor jak po rovine
a tím pádem všechny ostatní parametry nehrají žádnou roli.

Ale porádne si to rozmysli, práve pro MTB
mají uphillcostfactor / downhillcostfactor vetší význam než kdekoli jinde.

Já bych zacal u assign dh_penalty , tam by 0.0 az tak nevadila.
Podobne muzes nastavit na nulu tracktype_penalty

assign tracktype_penalty 0

Doporuuji naucit se syntaxi Brouter scriptu a delat takove upravy , kde vim co delam.


#+++ special downhill parameters
assign considerdownhill         1                  # pouzij specialni nastaveni pro sjezd (povoli/zakaze parametry dole)
assign dh_penalty               2.0                # pridavna penalizace pro nezadouci sjezdy
assign dh_difficult_penalty     10                 # pridavna penalizace pro sjezdy s velkou obtiznosti
assign dh_use_tracks            1                  # pouzij mensi penalizaci pro sjezd po lesni/polni ceste (track) (0/1)
assign dh_track_penalty         multiply 0.75 dh_penalty # mira redukce takove penalizace - default faktor 0.75

Dan S.

Tak jsem zkoušel hýbat s těmi parametry: assign tracktype_penalty, assign dh_penalty obě hodnoty na 0, a velký rozdil v trase jsem neviděl.
Zatím se mi nejvíce osvědčil tvůj profil s upraveným MTB faktorem na 2 a smallpaved na -0,5. K tomu ten stejný s MTB 1 a smallpaved -0,3. První profil mi vytvoří terénní trasu a druhý bude fajn na návrat z terénu pokud už budu prošitý (to se asfalt hodí :) ).
Locus Pro
  •  

poutnikl

U mých profilu navic snadneji upravis modifikaci pro výjezd a sjezd,
protoze pouzivam aditivni pristup.
Kladne cislo prida penalizaci vzhledem k profilu po rovine, záporné ubere.
Default upravy jsou spise konzervativni, ale jestli chces, muzes se v tom pro vlastni potrebu povrtat.

  assign uphillcostfactor =
max 1.0  add rawcostfactor2
if   ismainroad                           then 0.1
else if highway=residential|living_street then -0.1
else if ispaved then -0.1
    else if surface=gravel|pebblestone      then 0.2
    else if ismuddy                         then 0.2   
    else if isunpaved                       then 0.1   
    else                                         0.0
                             

  assign downhillcostfactor =
max 1.0  add rawcostfactor2
if   ismainroad                          then -0.1
else if  highway=residential|living_street then 0.0
else if  ispaved then -0.1
else if surface=gravel|pebblestone then 0.5
else if surface=fine_gravel|sand then 0.4
    else if ismuddy                     then 0.5 
    else if tracktype=grade5            then 0.4
else if tracktype=grade4            then 0.3
else if highway=path|footway then 0.2
    else if tracktype=grade3            then 0.2
    else if surface=cobblestone   then
   if iswet then 0.3 else 0.1
    else if tracktype=grade2            then 0.1
    else if isunpaved                then 0.2
else                                    0.0

poutnikl

Ještě malé doplnění....

Profily mají na začátku parametr assign iswet( je mokro ) 0.
0 znamena sucho,
1 znamena za mokra, penalizujici cesty s ocekavanym kluzkym/blativym povrchem, a mirne preferujici zpevnene povrchy.
Je to cilene pro trekking, takze s vysokym MTB factorem to asi bude mit menši efekt ale stoji za to to vyzkouset.


Up/downhill cutoff parametry Urcuji prah sklonu cesty v procentech.
Od sklonu se nejdrive odecte tento prah, a pokud neco zbude, tak se s tim dale pracuje.

Tento práh má dvojí význam.  Určuje bod,
1/ od ktereho se zacne progresivne cesta penalizovat ( penalizace muze byt nulova, napr u hiil 0 pro cestu do kopce)
2/ od ktereho se zacne cesta povazivat za jizdu z/do kopce ve smyslu preferenci pro takovou jizdu.

Hills  uphillcutoff downhillcutoff
0      1.5              1.5              Trekking default
1      3.0              1.5              Trekking Poutnik default
2      1.0              0.5              Vyhyba se kopcum
3      0.5              1.5              Experimentalni - minimalni cas


Dan S.

Hills  uphillcutoff downhillcutoff
0      1.5              1.5              Trekking default
1      3.0              1.5              Trekking Poutnik default
2      1.0              0.5              Vyhyba se kopcum
3      0.5              1.5              Experimentalni - minimalni cas


Pokud si v profilu u Hills nastavím 2, znamená to, že uphillcutoff bude mít hodnotu 1 a downhillcutoff bude mít hodnotu 0?5, pochopil jsem správně? Tzn. vyhýbá se výjezdům i sjezdům?

edit
Když porovnám tvůj  původní profil mnou upravený (MTB faktor 2 a smallpaved -0,5, Hill 1) vs. ten stejný profil jen navíc s Hill 2.0 tak rozdíl ve výpočtu je ten, že první profil mi spočítá trasu s více nastoupanými metry avšak mírnějšími kopci (kopcovitější trasa s mírnějším převýšením) a druhý (s uphillcutoff 2) omezí nastoupané metry na minimum avšak za cenu prudkého stoupání (velké převýšení).
Locus Pro
  •  

poutnikl

Ad hills 2 - ano, pochopil jsi spravne, uphillcutoff 1 a downhillcutoff 0.5.  Výjezdům i sjezdům se vyhyba proto, ze ma kombinaci nizkych cutoff a vysokych cost hodnot.

Sada Hills 2 je pro náročnější trekking a zvlast MTB nevhodna, pouziva se hlavne pro velomobily, cyklotrampy s těžkými brašnami a kohokoli, kdo se chce i mirnym kopcum vyhnout i za cenu, ze dost prodlouzi trasu. Pro MTB jsou lepsi vyssi cutoff a nizsi cost.

Edit : Např. hills 2 pri stoupání 3% přidá na každý 1 km úsek takové  cesty penalizaci 1.6 km.
Takže Brouter dá přednost 2.5 km srovnatelného úseku po rovině, protože jej bere jako efektivně kratší.

Hills 1 nepřidá žádnou  penalizaci, protože ji začíná pridávat právě až od 3%.
Hills 0 nepřidá žádnou  penalizaci, protože cutoff sice je 1.5%, ale hodnotu cost ma nulovou.

Císla nahoře platí pro jinak ideální cestu s costfactor 1.0.  Pro méně preferované cesty s costfactor >1 se efekt penalizace kopců úměrně zmenšuje.  Má-li cesta costfactor 2.0, stoupání 3% a je pouzita sada hills2 a MTB factor 0, pak efekticni delka 1 km cesty je 3.6 km versus 2 km po rovine. Takže už ne  násobek 2.6, ale pouze 1.8.

Cost se navíc snižuje MTB faktorem, při jeho hodnotě 1.5 je poloviční. Pri MTB factoru 1/1.5/2 je penalizace 1.067/0.8/0,533 km.


Hills 0 a 1 pracují tak, že hlavní ragulační faktor ohledně množství kopců je downhilcutoff/cost.

Hills 1  to s pomoci Uphillcost s vyssim uphillcutoff faktorem pouze doplnuje, aby daval prednost mirnejsim stoupanim.
Kdyby se pouzil stejny cutoff jako pro sjezd, prakticky by už něměl rozlišovací funkci, jen by zdvojoval efekt.

1000 m cesty dostane v kopcich  penalizaci
max( 0, Stoupani% - uphillcutoff ) * 10 * uphillcost    v metrech
resp.
max( 0, Klesani% - downhillcutoff ) * 10 * downhillcost,   v metrech

Sada      Uphill         Downhill
          cutoff cost    cutoff cost
Hills 0   1.5    0       1.5    60
Hills 1   3.0    60      1.5    60
Hills 2   1.0    80      0.5    80
Hills 3   0.5    60      1.5    0
--------------------------------------------------

Celou penalizaci kopcu jsem podal ponekud zjednodušeně. Záměrně jsem  vynechal práci s výškovým bufferem, který je v Brouteru implementován kvůli šumu výškových dat. Buffer ovlivnuje hlavně krátké výjezdy a sjezdy s malým převýšením,
a sklony těsně nad cutoff. Výše uvedené počty platí jen pro dostatečně dlouhá klesání/stoupání.



Dan S.

Když chci profil upravit tak, aby pokud bude stoupání , tak preferoval mírnější stoupání ale prudší sjezdy, tak s čím mám pohnout? V profilu jsem uphillcutoff nenašel. Resp jen tohle
assign   set_uphill_cost      1 # 1 as default
assign   set_downhill_cost    1 # 1 as default
Jedná se pořád o ten tvůj předělány profil s MTB 2 a smallpaved -0,5
Locus Pro
  •  

poutnikl

Přímá preference strmějších sjezdů není v současné implementaci Brouteru možná,  pouze penalizace, včetně nulové, od urcite, i nulove, urovne sklonu.

Já v profilech up/downhill cost/cutoff počítam, takže bych Ti doporučil spíš vrtat se ve vychozích hodnotach, pochopit vyznam updownhill cutoff/cost a seznamit se se syntaxi Brouter profilu.

Pro preferenci mirnejsich stoupani je puvodni nastaveni hills 1 OK. Kdysi jsem to počítal a při stoupání 3% je typická rychlost tuším okolo 14 km/h. Pro zruseni penalizace sjezdu můžeš nastavit cost na 0 - VIZ DOLE. Ale moc to nedoporučuji, bude to mít za následek, že profil nebude vůči kopcům  vybíravý, protože tím zrušíš hlavní penalizaci celkového prevyseni.Jinými slovy, nerozpakoval by se vyjet na Everest, pokud stoupání bude do 3%. Navíc penalizace kopců je s MTB factor 2.0 už hodně slabá.

Co bych spíš doporučil je pohrat si misto penalizace kopcu, s penalizacemi costfactoru na rovine a z kopce,
Budou-li mit cesty z  kopce vetsi penalizaci, pak profil da prednost kratsimu sjezdu a delsi rovine, pred delsim sjezdem a kratsi rovinou, při celkově stejne delce, prevyseni  a kvalite.. Opět to tak úplně neplatí pro malé/krátké kopce, kvůli bufferu.

EDIT:
  assign downhillcostfactor =
   max 1.0  add rawcostfactor2

muzes zkusit nahradit

  assign downhillcostfactor =
   max 1.0  add X add rawcostfactor2

kde X je hodnota, o kolik si Brouter ma myslet, ze je sjezd delsi. třeba 0.2 až 0.5
Cim vetsi bude, tim strmejsi sjezdy bude Brouter hledat, protože bude mít vyšší downhillcostfactor driv z krku.






Tohle

assign   uphillcostvalue   switch equal hills 1 70
                                switch equal hills 2 80
                                switch equal hills 3 60
                                0
assign   uphillcutoffvalue   switch equal hills 1 3.0
                                switch equal hills 2 1.0
                                switch equal hills 3 0.5
                                1.5
assign   downhillcutoffvalue    switch equal hills 1 1.5
                                switch equal hills 2 0.5
                                switch equal hills 3 1.5
                                1.5
assign   downhillcostvalue      switch equal hills 1 60
                                switch equal hills 2 80
                                switch equal hills 3  70
                                60 
 


Můzeš nahradit timhle, rovnou bez parametru hills, ktery pak nebude mit zadny vliv. A pak experimentovat

assign   uphillcostvalue   70
assign   uphillcutoffvalue   3.0
assign   downhillcutoffvalue    1.5
assign   downhillcostvalue      60

Z nich se pak počítají skutečné uphillcost, uphillcutoff, downhillcutoff, downhillcost.

Pamatuj, že cost values klesají na 2/3 ( 1/3)  svojí nominální hodnoty při MTB factor 1.0 ( 2.0 )

poutnikl

Quote from: Dan Seliga on February 28, 2016, 10:42:44
Když chci profil upravit tak, aby pokud bude stoupání , tak preferoval mírnější stoupání ale prudší sjezdy, tak s čím mám pohnout? V profilu jsem uphillcutoff nenašel. Resp jen tohle
assign   set_uphill_cost      1 # 1 as default
assign   set_downhill_cost    1 # 1 as default
Jedná se pořád o ten tvůj předělány profil s MTB 2 a smallpaved -0,5

Pokud prudsi sjezdy preferujes, stalo by za to zrušit penalizaci sjezdů

assign   downhillcutoffvalue    1.5
assign   downhillcostvalue      0

a ladit penalizaci výjezdů

assign   uphillcostvalue   70
assign   uphillcutoffvalue   3.0

Při MTB Factor 1.0(2.0) je ze 70  46.6(23.3), takže počáteční hodnota může jít až cca ke 100 ( 200 ).

Žajdlík Josef

Ahoj Poutníku. Mám dotaz ohledně MTB faktoru, jde mi o součinnost OSM dat a Brouteru. Všiml jsem si, že většina polních a lesních cest nemá v OSM mapách vyplněny hodnoty jako: povrch, sklon, klasifikace povrchu, hladkost, obtížnost MTB, klasifikace MTB do kopce či IMBA (iD editor). Jak v takových případ Brouter počítá MTB faktor nebo suchou/mokrou variantu?
  •  

poutnikl

Ahoj Jirkousi,

Nejjednodussi odpoved asi bude "Tak, jak je pocita." .  :-D   Souvisejici kod profilu má desitky radku a slovní popis kodu byva delsi nez kod sam.

MTB_factor se nepocita, to je vnejsi parametr, ovlivnujici vydnodnoceni OSM dat v Brouter profilu.

Puvodni Trekking.brf profil i moje profily resi problem nedostatecnosti dat ohledne povrchu ( "surface=" ) pomoci konceptu tretího stavu cest/pesin "ani ryba ani rak". Tudíž ispaved ( je zpevnená ) neni totez jako not inunpaved ( neni nezpevnena ). Jsou zpevnene cesty, nezpevnene cesty a  "ani zpevnene ani nezpevnene". Pro tento tretí stav se odecita od costfactor hodnota MTB_factor * 0.33.  Jsou to bud cesty , kde typ povrchu neni znam, nebo s charakterem povrchu nekde mezi, jako drobny sterk, kostky, nekdy se pocítají i válvovane zpevnene povrchy. 

Pro ostatni parametry se opet neznama hodnota "parametr=" vyhodnocuje urcitym zpusobem.

Konkretni dopad minimalnich dat na vypocet costfactoru, ev. vliv volby sucha/mokra se neda napsat jednou vetou. Každá chybející hodnota se pro kazdý parametr  zpracovava jinak. Záleží na to, jaké dílcí fyzicke údaje jsou k dispozici, vede-li tudy nejaka cyklotrasa ( nezavisle na tom, jsou-li preferovane ), a ma-li trasa nejaky udaj ohledne kola. Dale silne zalezi na tom, z jake verze templaty se vychazi, protože ve vývojových verzích se velmi prepracoval system penalizaci cest. Pouzije-li
se hotovy profil, je to jine, jako kdyz DAN experimentuje se smallpaved Trekking-Poutnik vyvojovou template verzi.

V posledni verzi se pouziva system 6 nezavislych penalizaci, kdy se vybere ta nejvyssi z nich. Takze vliv chybejicich  udaju zalezi na ostatnich udajich, a muze byt i nulovy.

if istrack then ( add 1.0 max trackclass_penalty max tracktype_penalty max surface_penalty
max not_isbike_track_penalty max roughness_penalty      wet_penalty     )
   


Velice pomuze koncovemu uzivateli, kdyz si profil na konktretni trase otestuje na Brouter Webu, a prohlidne si tabulku ( zaloxka vedle zdrojoveho textu profilu ),
nebo si tabulku lze stahnout jako CSV soubor a prohlednout v Excelu / LibreOffice / OpenOffice. Je tam mnoho zajimavych udaju, mimo jine i cost 1 km segmentu trasy.

Edit: vyskove udaje Brouter vetsinou nebere z OSM dat, ale z vyskovych dat SRTM ( radarova data z kosmu). vyjimecne muze profile pouzit urcita MTB data jako incline= nebo MTBscaleuphill , ale ta jsou malokdy k dispozici.


Žajdlík Josef

Díky za podrobnou odpověď. Mně to zajímalo hlavně proto, že občas nějaké polňačky či pěšiny do OSM map přidávám a těmi parametry jako hladkost, obtížnost MTB, klasifikace MTB do kopce či IMBA si nejsem moc jist. Přesto vidím, že si Brouter dokáže s profilem, který jsi mi vytvořil na chůzi dobře poradit. Takže jsem si kontroloval co je v OSM zadáno u jiných cest a většinou tam není vyplněno nic, ani povrch. Právě proto mi nešlo nějak do hlavy jak si s tím pak Brouter radí.
  •