Ik heb het script nu verder uitgerust met een aantal data-integriteits-checks rond postcode / gemeente. Daaruit blijken toch nog wat bijzondere dingen waar ik het script op moet aanpassen. Zo blijkt dat een straat (zoals geïdentificeerd door zijn ID in de adressenlijst) in meerdere postcodes kan voorkomen, maar nooit in meerdere gemeenten. Een gemeente bestaat uiteraard uit meerdere postcodes. Daarnaast kan 1 postcode zich in meerdere gemeenten bevinden. Halleluja; lees deze alinea nog maar 3 keer opnieuw...

Op dit moment identificeren we op basis van postcode → straat. Dat houdt in dat we nu een aantal straten splitsen over de postcode, terwijl we op basis van de data die straten zouden kunnen samenhouden. Mogelijk (nouja; dat ben ik wel zeker) zijn straten ook gesplitst op gemeentegrenzen, maar deze dataset biedt daar geen mogelijkheden voor.

Mijn script pikt nu deze over-postcodes-heen-gesplitste-straten op; het gaat om 1920 unieke straten die meestal over 2 maar soms over 3 postcodes heen gesplitst zijn. Mijn script biedt al heel wat mogelijkheden om hier mee om te gaan, maar we moeten het natuurlijk wel eens zijn over wat wenselijk is.

Concreet betekent het in feite dat als we onderscheid maken op basis van een postcode, we onherroepelijk straten zullen splitsen. We kunnen ervoor kiezen om de data per gemeente te ordenen, maar dan wordt de hoeveelheid data per gemeente bijna 2 keer zo groot als de data nu per postcode (er zijn in totaal 308 gemeenten en 519 postcodes). Gezien de nu vaak al grote hoeveelheid straten per postcode is dit misschien onwenselijk. Zeker omdat het volgens mij vaak al de stedelijke gemeenten zijn die meerdere postcodes hebben. Die gemeenten gaan dan van zeer grote stratenlijsten naar enorme stratenlijsten. Een alternatief is die straten in beide postcodegebieden op te nemen. Dat vind ik ook geen nette uitwerking omdat je dan redundancy krijgt in de de JSON-bestanden.

Volgens mij is dan de beste optie om per straat in de postcode-JSON-bestanden een extra JSON-attribuut mee te geven die aangeeft of de straat doorloopt in een andere gemeente. Dat zie ik in de vorm van een lijst van postcodes per straat waar de straat in doorloopt. Dat kan met wat javascript uitgelezen worden. Die specifieke straat kan in datzelfde stuk javascript opgehaald worden en aan de betrokken straat toegevoegd worden. Als je het meer handmatig wil houden kun je vrij eenvoudig een knop toevoegen voor de gebruiker om die straat in de andere gemeenten mee in te laden. Op deze manier kan de opdeling per postcode gehandhaafd worden, maar is toch duidelijk op straat-niveau waar mappers mee rekening dienen te houden. Daarnaast is deze informatie mogelijk ook zeer belangrijk voor de scripts van Jo rond het koppelen van adressen/gebouwen aan een straat. Wat denken jullie hiervan?

Daarnaast speelt dus het tweede punt dat er een aantal postcodes over meerdere gemeenten heen lopen. Althans: dat er adrespunten zijn met dezelfde postcode die tot een andere gemeente behoren. Voor mijn script en onze opzet is dat op zich geen probleem, maar ook hier kan ik deze punten specifiek eruit lichten. Het gaat overigens 54 van de 519 postcodes; toch zo'n 10%. Daarbij zijn 81 gemeenten betrokken; een kwart van het totaal aantal gemeenten. Het totaal aantal adrespunten draait zo rond de 250 adrespunten in totaal. Ik moet mijn script nog wat aanpassen om preciese cijfers hierover te hebben. Ruimtelijke samenhang is er niet: het komt nergens in aanzienlijk grotere mate voor dan elders. Hoewel soms gesteld wordt dat postcodes helemaal niet samenvallen met gemeenten, blijkt dat dit dus maar in 1 op de 15.000 gevallen NIET zo is. Meestal gaat het over 1 postcode die over twee gemeenten valt. In 7 van de 54 gevallen gaat het om een postcode die binnen 3 gemeenten valt. Nooit gaat het om meer dan 3 gemeenten.

Kort samengevat: op basis van de bij de adrespunten behorende gemeente kunnen we straten die door een postcode gesplitst worden weer aan elkaar plakken. Mijn idee is om een lijst van postcodes aan de straat te koppelen in de JSON, zodat in het javascript die gegevens verwerkt kunnen worden. Daarnaast zijn het postcodesysteem en de gemeentelijke indeling gescheiden systemen. Wordt daar in de verdere verwerking in OSM rekening mee gehouden? Onder andere bij de verschillende scripts die matching regelen is dat een belangrijk punt. Met mijn script kan ik “afwijkende” punten aangeven, maar dan moeten we wel weten op welke manier. Wat moeten we hiermee?

Groeten,
Thomas

Sander Deryckere schreef op 29-10-2014 12:06:
Hoi Thomas,

Net het script wat verder aangepast voor de nieuwe data, en geuploaded naar jouw repo. Dus aan iedereen, gelieve vanaf nu vooral http://aptum.github.io/import.html te testen,

Kan je de appartementsnummers en busnummers als aparte lijsten in de JSON zetten? Dan kan ik ook het script updaten om addr:flats te ondersteunen. Lijsten zijn het best aangezien ze gemakkelijker omgevormd kunnen worden naar de correcte formaat. Ook die best alfabetisch sorteren voor de diffs. En misschien enkel de lijsten aan de JSON toevoegen indien wel degelijk (dat zal bandbreedte sparen voor de vele adressen die geen busnummers of appartementsnummers hebben).

Aangezien de overlappende en de niet overlappende nummers nu in verschillende kolommen staan, is daar geen verschillende CSS voor nodig. Een verschillende CSS voor de herkomst kan wel helpen. Momenteel staat die herkomst nog in CRAB:source om de waarden gemakkelijk te kunnen aflezen. Dus momenteel die tags nog niet gaan uploaden.

Als het goed is voor iedereen, dan breng ik die tags naar de vorm

  * odbl:note=CRAB:manueleAanduidingVanGebouw
  * odbl:note=CRAB:geinterpoleerdObvNevenliggendeHuisnummersGebouw
  * ...

odbl:note lijkt mij de meest neutrale van alle discardable tags, en het voorvoegsel CRAB: kan zorgen voor unieke CSS selectors.

De grootste problemen momenteel zijn de huisnummers met een underscore. Ik kan moeilijk beslissen als ik die naar bis, ter, ... of naar /1, /2, /3, ... breng. Maar het overlaten aan de mapper kan er voor zorgen dat de huisnummers met een underscore rechtstreeks geuploaded worden.

Het andere grote probleem is de spelling van de straatnaam. Dat is moeilijk om af te leiden met de beperkte OSM data die ik heb in de webpagina (vooral als er nog geen adressen in OSM zijn). Een spellingsverschil kan er voor zorgen dat huisnummers geuploaded worden waarbij addr:street verschilt van de straatnaam in OSM. Wat natuurlijk voor problemen zal zorgen. Maar hierbij kan Jo misschien helpen, of de JOSM validator.


Als die problemen opgelost zijn, dan lijken de tools klaar, en wordt het tijd om enkele definitieve beslissingen te maken:

  * Huizen tekenen of niet
  * Aparte gebruikersnaam of niet
  * Welke tags moeten op de changeset
  * Hoe contacteren we het AGIV met opmerkingen?
  * ...

Groeten,
Sander

_______________________________________________
Talk-be mailing list
Talk-be@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-be

Reply via email to