Inmiddels ook de codering in gehoorzaamheid gedwongen. Blijkt dat de
codering van de shapefile gewoon Latin-1 is en niet die vage CP-720. Dat
scheelt ook maar weer.
De snelheid van mijn script valt me al bij al wel mee. Op dit moment
gebruikt hij maar 1 thread. Het inlezen van het bestand in de
dictionaries duurt zo'n 50 minuten. Het schrijven naar de JSON-bestanden
een kleine 10 minuten (op een SSD'tje). Het schrijven gaat volgens mij
wat trager omdat ik de adres-dictionary vervangen heb door een tuple.
Dat scheelt toch een kleine 500MB in geheugengebruik. In totaal gebruikt
het script maar iets van 2GB ram dacht ik, maar dat moet ik nog even
nakijken. Sinds die wijziging heb ik in elk geval geen geheugenproblemen
meer gehad.
Qua tags hoeven we inderdaad enkel de addr:housenumber en addr:street
over te nemen. Daarnaast wil ik graag het herkomst-veld als tag
invoeren, zodat de punten gestyled kunnen worden op basis daarvan. Naar
mijn idee is die herkomst zeer bepalend voor de “nauwkeurigheid” van de
punten. Ik heb dat nu geïmplementeerd als een “CRAB:herkomst”-tag. De
Engelse variant “CRAB:source” vond ik een beetje misleidend. Aan de
andere kant gaat het natuurlijk wel over hoe ze de locatie van het punt
bepaald hebben. Dat kun je dus wel als “source” zien.
Daarnaast misschien nog iets van een tag om waarschuwingen mee te
communiceren, bijvoorbeeld over de schrijfwijze van de straatnaam. Aan
de andere kant heb ik geen enkel geval kunnen vinden waar twee adressen
een zelfde straatnaam-id hebben maar een verschillende straatnaam
(bijvoorbeeld een andere spelling). Dat soort fouten lijken me maar
beperkt aanwezig en kunnen dus waarschijnlijk allemaal opgevangen worden
met de FIXME-tag. Het huidige gebruik (om punten zonder locatie mee aan
te geven) is in feite overbodig, omdat alle punten een locatie hebben.
Ik ben nu nog wat aan het kijken welke fouten ik met het python-script
moet opsporen en welke best in de javascript naar boven gehaald kunnen
worden in combinatie met de overpass-query. Het belangrijkste zijn de
punten die samenvallen. Dat is een situatie die niet ingevoerd mag
worden in OSM, dus ook hier lijkt een FIXME-tag mij het meest geschikt.
Dat ga ik in elk geval nog even netjes documenteren.
Nog een praktisch punt: hoe willen we deze tweede variant beschikbaar
stellen? Moet dat naast de huidige komen te staan zodat we kunnen
vergelijken, of moeten we juist vermijden dat er twee varianten in
gebruik zijn en dat er verwarring ontstaat? Voor de gewone gebruiker is
er eigenlijk geen verschil tussen beide systemen, dus dat is potentieel
verwarrend. Anderzijds is het in de huidige beperkte opzet niet zo'n
punt en misschien juist handig. Wat zijn jullie ideeën hierover?
Groeten,
Thomas
Sander Deryckere schreef op 25-10-2014 20:17:
Op 25 oktober 2014 18:46 schreef Thomas <o...@aptum.nl
<mailto:o...@aptum.nl>>:
Ik ben inmiddels bijna klaar met het nieuwe script dat de
adressenlijst (in plaats van de adresposities) moet beschikbaar
stellen via de website die Sander gemaakt heeft.
Geweldig nieuws ;)
Het oude script kon ik maar voor kleine stukjes hergebruiken omdat
het bestandsformaat en de datastructuur toch redelijk anders zijn.
Ik ben uitgegaan van precies dezelfde JSON-uitwisselbestanden te
genereren zodat de website wel volledig compatibel is (op
misschien wat extra tags in javascript na dan). Het was niet
eenvoudig om een goed werkend script op te zetten vanwege de door
Sander genoemde coderingsproblemen en vanwege het feit dat deze
adressenlijst in feite 1 grote tabel is tegenover de adresposities
die in feite een 'database' zijn of een collectie van kleinere
tabellen. Daardoor liep ik tegen nogal wat geheugenprobleempjes aan.
De beschikbare modules om GML in te lezen in python bleken niet
robuust genoeg om én met de vreemde codering om te gaan én met de
enorme omvang van het bestand (ca. 3GB). Daarom heb ik ervoor
gekozen om als bron het shp-bestand te gebruiken (dat 'slechts'
1GB in omvang is, door een efficiëntere datastructuur). Daarmee
kreeg ik wel alles aan de praat.
Ik had ook al wat zaken opgezocht om het GML bestand te splitsen en
pas daarna te verwerken, om zo slechts XML kind per kind in het
geheugen te laden en geen geheugen tekort te komen. Maar dat werd een
serieus gepruts, en ik verwachtte ook dat het te traag zou zijn door
de vele lees en schrijf operaties.
Geheugenproblemen had ik sowieso verwacht, want zelft met het huidige
script moet ik zorgen dat Firefox en JOSM alletwee gesloten zijn voor
ik het script start. Anders loopt mijn computer onherroepelijk vast in
het page-swapping.
Ik ben nu een aantal extra checks in de code aan het inbouwen en
te kijken wat handig is qua extra tags (evt. gekoppeld aan wat
CSS). Het blijft ook wat worstelen met de omvang. Mijn eerste
tests werken in elk geval bij mij. Als het een beetje wil komt dat
dus dit weekend af. Ook alle gemelde 'problemen' met de huidige
dataset ga ik bekijken in deze nieuwe dataset.
Voor alle duidelijkheid: voor de gebruikers verandert er weinig
tot niets tegenover de huidige versie. Belangrijkste wijzigingen
zijn het feit dat er punten zonder positie zullen zijn en dat er
misschien wat extra tags automatisch ingeladen worden in JOSM als
je een straat importeert. Die extra tags moeten helpen om de
informatie naar waarde te schatten. In elk geval in deze eerste
test-fase kunnen ze zeer handig zijn om beter bepaalde zaken te
begrijpen.
Ik heb nu voor het patroon “CRAB:key” gekozen als key voor de tags
die ik in JOSM inlaad maar die niet in OSM thuishoren. Zijn er
alternatieve patronen voor dit soort “tijdelijke” werk-tags die
OSM nooit mogen bereiken? In de link die Marc eerder doorstuurde
lees ik vooral dat onze Nederlanders een aantal overbodige tags in
OSM hebben zitten n.a.v. een aantal imports. Het lijkt me op zich
een mooi streven om al dat soort tags buiten OSM te houden, wat
onze 'import' betreft.
Moet er overigens nog een “source=CRAB”-tag toegevoegd worden, of
willen we dit juist vermijden omdat het toch al niet om een
automatische import gaat?
source=* tags zijn beter op hun plaats op het changeset object dan op
objecten in de DB. Natuurlijk kan een specifieke bron (zoals afkomstig
van de voordeur, gebouw or perceel) wel op het object zelf.
Postcode en gemeente zijn sowieso niet nodig, die kunnen gerust uit de
JSON gelaten worden. Welke andere keys twijfel je nog over?
Groeten,
Thomas
Sander Deryckere schreef op 25-10-2014 17:52:
Hmm, blijkbaar hebben alle tabellen een mogelijkheid tot deleten
via "einddatum".
En blijkbaar gaat dat niet altijd samen.
Ik heb nu net eens het script laten lopen met alle records waar
"einddatum" bijstond genegeerd, en dat resulteert vooral in
terreinobjecten die genegeerd worden, waardoor er vooral extra
adressen zonder positie zijn :/
Heb ook eens de Koningin Louisa-Marialaan bekeken met die nieuwe
data, en daar blijkt er nu geen verschil te zijn O_o
Dus denk ik dat ik het script nog niet zal aanpassen.
Groeten,
Sander
Op 25 oktober 2014 16:11 schreef Sander Deryckere
<sander...@gmail.com <mailto:sander...@gmail.com>>:
Op 25 oktober 2014 14:48 schreef Sus Verhoeven
<sus...@gmail.com <mailto:sus...@gmail.com>>:
In Leopoldsburg 3970 op de Koningin-Louisalaan is er in
CRAB een hele reeks huizen met dubbele huisnummers niet
op dezelfde plaats, in GRB staat er maar een van deze
reeksen.
Eigenaardig.
Sus
Dit lijkt een straat die onlangs hernummerd is, en waarvan de
oude nummers nog niet verwijderd zijn.
Ook de GRB basiskaart is niet volledig duidelijk. Zo is er
daar een nummer 13-125 te zien, wat een veel te grote range
is om te kunnen kloppen. Ik zou voorstellen om eens ter
plaatse te gaan kijken wat er nu echt juist is.
Volgens de documentatie van de databases zouden ze verouderde
nummers moeten deleten door er een "einddatum" aan te geven.
In het extract script test ik ook op die einddatum, dus als
ze correct verwijderd zijn, dan zouden ze niet meer in de
data mogen voorkomen.
Het is natuurlijk niet eenvoudig om in dit geval te
controleren als het script of de data fout is, omdat het nu
eenmaal niet vaak gebeurt dat een straat hernummerd wordt.
In Leuven werd onlangs een straat hernummerd (zie
http://www.nieuwsblad.be/article/detail.aspx?articleid=DMF20130218_00473793)
en ik denk dat de CRAB data overeenkomt met de huidige data,
dus dat de verwijderde nummers wel degelijk niet meer
zichtbaar zijn. Maar 1 voorbeeld is natuurlijk wat weinig om
op voort te gaan.
Groeten,
Sander
_______________________________________________
Talk-be mailing list
Talk-be@openstreetmap.org <mailto:Talk-be@openstreetmap.org>
https://lists.openstreetmap.org/listinfo/talk-be
_______________________________________________
Talk-be mailing list
Talk-be@openstreetmap.org <mailto:Talk-be@openstreetmap.org>
https://lists.openstreetmap.org/listinfo/talk-be
_______________________________________________
Talk-be mailing list
Talk-be@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-be
_______________________________________________
Talk-be mailing list
Talk-be@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-be