Goed, waar OSM-gebruikers gaan om te communiceren, zal ik volgen. Ik ben er niet zo blij mee dat ik deze discussie zowel op talk-be als talk-nl moest crossposten en heb er geen idee van hoe dat moet om alle betrokkenen te bereiken, als er ook nog een forum in het spel is. Maar ik pas me wel aan.
Ik zal beginnen met uit te leggen wat ik probeer te doen (en verontschuldig me vooraf dat dit weeral een lang epistel zal worden. Het kost mij echter moeite (en tijd) om het allemaal neer te pennen, dus wees a.u.b. zo beleefd om het ook even HELEMAAL te lezen)
Uitgangspunten:
- liefst eenvormige regels, die dus over de grenzen van onze kleine landjes heen kunnen gelden voor alle knooppuntennetwerken (fiets, wandel, ruiter)
- deze regels moeten zo eenvoudig mogelijk zijn, terwijl ze toch een accurate en bruikbare weergave van de werkelijkheid zijn
Ik ben dus, naar aanleiding van Fietsnet.be, vol goede moed begonnen aan het nakijken, hoe het zat met de kwaliteit van de ‘codering’ van de fietsroutenetwerken op OSM. Als ik vooraf had beseft wat ik me op de hals ging halen, was ik er waarschijnlijk gewoonweg niet aan begonnen. Ik ben nu echter ongeveer halfweg en vanaf nu is het dus zwemmen of verzuipen.
Ik heb zelf een drietal jaar geleden het FRN in mijn eigen omgeving (het oosten van Vlaams-Brabant) in kaart helpen brengen. Dat was toen kersvers en leuk om te doen. Ondertussen heb ik me met heel wat andere zaken, zoals bushaltes/routes, huisnummers, enz bezig gehouden.
Als ik nu met FRN’en aan de slag ga, is de insteek iets of wat anders. Ik kan niet overal gaan kijken hoe de situatie ter plaatse precies in elkaar zit en aangeduid is. Ik denk echter wel dat een top down aanpak even belangrijk is dan de gebruikelijke bottom up.
Dus ben ik knooppunten beginnen samenvoegen tot netwerken en netwerken weer gaan samenbrengen in collecties, zodat ik aan een kwaliteitscontrolescript een parameter kan meegeven om aan te geven wat ik op dat moment wil nakijken. Een (paar) route(s), een (paar) netwerk(en) of alle netwerken in een heel land.
En ik ben begonnen met het maken van een Pythonscript om de routes tussen deze knooppunten aan het netwerk toe te voegen, na te kijken of er wel degelijk aan beide uiteindes een knooppunt met een rcn_ref zit en of er wel degelijk van het lage naar het hoge KP en weer terug een continue weg beschreven wordt.
Daarbij ben ik in vele valkuilen getuimeld. KP’en met eenzelfde nummer met elkaar verbinden met een xx-xx routerelatie is er daar één van. (Ik had alle ‘tentakels’ op een bepaald moment gewoon in de prullenmand gegooid, omdat ik er niets van begreep wat al die stukjes weg met een role in die relaties zaten te doen)
Dit tot grote ontevredenheid van Eimai en nog een paar anderen die ‘het licht’ wel reeds hadden gezien.
Na veel vijven en zessen en kopbrekens (van mijnentwege) en weerstand (omdat ik niet inzag hoe ik m’n controlescript kon aanpassen, om ermee om te gaan) heb ik nu echter wel begrepen wat de kracht van die ‘tentakels’ is en ik zie nu in dat het wel degelijk een elegante oplossing is. En als een ‘evangelist’ ga ik nu dus verder noordwaarts om de ‘blijde boodschap’ te verkondigen Als een recentelijk bekeerd man, begrijp ik volkomen dat deze manier van werken ook bij anderen heel wat weerstand oproept. En ik moet dus dringend een manier vinden om het op een bevattelijke(r) manier te beschrijven op de wiki. (sorry voor de metaforen, zo gelovig ben ik niet eens, maar ik vind het wel toepasselijk. Wil wel even opmerken dat ik geen ‘geloof’ tracht te verspreiden. 't Is meer zoals iemand die de kracht van, neem maar Linux, 10 jaar geleden al inzag en dat gaat ‘verkondigen’).
Hierbij wil ik opmerken dat er, tot voor kort, (toen ik die pagina voor het eerst las) helemaal niets te vinden was over die tentakels en gesplitste knooppunten die er aanleiding toe geven. Ik ben dus door schade en schande wijzer moeten worden. En heb ondertussen de ‘schade’ die ik, als een dolgedraaide olifant, had aangericht weer hersteld. (Gelukkig is het niet te moeilijk om routes tussen twee KP’en met hetzelfde nummer terug te vinden; xx-xx i.p.v. xx-yy).
Nu goed. Ik ben begonnen aan een titanenwerk en Jeroen heeft het script ook geïnstalleerd in JOSM en is nu bezig in Rotterdam, nadat hij wat routes had toegevoegd in Overflakkee. Hij ziet ondertussen in aan wat voor een monsterkarwij ik eigenlijk begonnen ben en van hem krijg ik veel steun en misschien zelfs enige bewondering.
Ik denk namelijk dat ik al wel het een en ander bereikt heb. Ik kan namelijk op regelmatige tijdstippen alle Belgische netwerken op een paar minuten tijd nakijken. Zo vind ik regelmatig fouten die geïntroduceerd worden door minder ervaren gebruikers, of medewerkers die rcn_refs zelfs gewoon verwijderen, omdat ze niet snappen waarvoor die dienen. Soms gaat het stomweg over het weer samenvoegen van twee ways o.i.d.
Maakt niet uit, mijn script pikt dat op (en ook nieuw toegevoegde routes) en geeft aan of er zich ergens problemen voordoen. Als we wensen dat onze data bruikbaar is/wordt voor buitenstaanders (zoals in dit geval Fietsnet.be), dan is deze oefening nodig en zels onontbeerlijk.
Nu wil Fietsnet zich niet echt beperken tot België. De Belgische fietsers keren ook niet plots om, als ze de (nagenoeg onzichtbare) grens bereiken. Vandaar dat ik dat ook niet heb gedaan. Ik krijg echter de indruk dat hoe langer ik bezig ben en hoe meer ervaring ik opdoe en hoe intelligenter ik mijn script ondertussen heb gemaakt, hoe trager ik vooruit schijn te komen. Ik heb al ettelijke obstakels overwonnen en ben al uit vele valkuilen geklommen, maar deze reactie had ik, eerlijk gezegd, niet verwacht.
Daarom ga ik dit hele project nu wat laten rusten. De gemoederen laten bedaren en alles wat laten bezinken.
Voor mij persoonlijk hoeft het niet zo nodig, maar ik had graag gehad dat we overal alles hetzelfde deden en dat we met een ‘open mind’ naar eventuele veranderingen in conventies zouden kijken, in plaats van die zonder meer af te wijzen.
Ik kan heel gemakkelijk zeggen: goed, dan neem ik dat netwerk niet mee op in m’n kwaliteitscontrole en daarmee is voor mij dan de kous af. Ik denk echter dat, alles wat ik in de voorbije maanden geleerd heb, dat ik dat in dat Pythonscript gecodeerd heb.
Ik heb dat gedaan met een extra bedoeling: het hebben van een referentie-implementatie voor iemand die aan routering wil gaan doen.
Het zou ook kunnen dat er gezegd wordt: het maakt niet uit dat mensen naar links gestuurd worden, dan gevraagd wordt om rechtsomkeert te maken en dan pas op de eigenlijke nieuwe route terechtkomen. Mij maakt dat eigenlijk ook niet uit en m’n script geeft er ook niet om. Er zit ondersteuning in om overweg te kunnen met die tentakels, maar als er nu netwerken zijn die daar geen gebruik van (willen) maken, voor mij geen probleem. Als de routes continu zijn, dan passeren ze de test. (1 rechte lijn van punt A naar punt B). Als er echter vorken inzitten (aan de uiteindes), zonder dat er meerdere KP’en inzitten met eenzelfde rcn_ref, dan wordt er een probleem gemeld.
Ik heb daar verder geen last van. Als ervoor gekozen wordt, om routes te ‘coderen’ met meerdere relaties die van punt tot punt gaan (maar dezelfde wegen dus meermaals gebruiken), ook geen punt.
Je gaat echter zien, dat als er twee standaarden zijn, twee werkwijzes in zo’n klein gebied, dat dat ook problemen gaat geven. Ik ben geneigd om alles te gaan splitsen wat niet expliciet op één enkele kruising van wegen toekomt en er zijn vele redenen waarom dit het geval kan zijn, steeds meer eigenlijk:
KP’n aan weerszijden van een (kanaal)brug
vrijliggende fietspaden
fietspaden rondom een rond punt
eigenlijk alle KP’en waar meer dan 3 routes samenkomen en waar dit niet op exact dezelfde node gebeurt
Zo, nu ga ik maar eens afsluiten. Bedankt aan wie tot hier meegelezen heeft en
een fijn weekeinde,
Jo
PS: sorry kan het niet laten (ben thread even aan het herlezen). Wat betreft het opnemen van KP’en in routerelaties. Aangezien ik de eenvoudigst mogelijke implementatie wens te bekomen, vind ik dat niet nodig. Frank heeft me echter gevraagd om die bij zijn netwerk niet weg te halen, dus heb ik het script aangepast om ze weer toe te voegen (want off line had ik ze al weggehaald). Voor het script is dat dus geen probleem, maar ik vind dat het extra en onnodige complexiteit toevoegt (en dus ook, in mijn ogen, meer overbodig werk betekent).