[Talk-dk] Adresser på nye veje - og andet godt nyt

Jens Winbladh jens at somewhere.dk
Tir Maj 11 06:38:17 BST 2010


Totalt fedt - det I laver det. Måske I skulle lægge noget af denne Email på
Wikien, så man ikke kun kan finde der her i mailen?

/Jens

Den 10. maj 2010 17.21 skrev Peter Brodersen <peter at ter.dk>:

> Hej,
>
> Lige et par gode nyheder herfra på mit arbejde med at opdatere
> adresse-koordinater.
>
>
> 0. Forklaring af forkortelser
> 1. Opdatering af hele veje
> 2. "AWS request error" gennemskuet
> 3. Ændring i opdateringskøen
>
>
> 0. Forklaring af forkortelser
>
> OSM: OpenStreetMap (-data)
> KMS: Kort- og Matrikelstyrelsen. I denne sammenhæng henviser KMS til det
> datasæt med millioner af danske adresse-koordinater, der blev frigivet
> omkring 2002 og som er lagt ind i OSM.
> OSAK: Officielle standardadresser og koordinater. Henviser til de
> standardiserede og løbende opdaterede adressedata, vi er interesseret i
> :-)
> AWS: Address Web Services. En SOAP-baseret webtjeneste, der giver mulighed
> for at forespørge om data. Metoderne er offentligt tilgængelige, gratis at
> anvende og der er ikke restriktioner på den videre anvendelse af output.
>
> KMS og OSAK er altså adressesæt fra det offentlige. AWS er metoden, anmoder
> om adressedata på.
>
>
> 1. Opdatering af hele veje
>
> For det første er jeg ved at teste nye funktioner til at opdatere hele veje
> i stedet for blot enkelte koordinater. Fordelen er, at vi får et hurtigere
> udtræk (mange koordinater på én gang), og at vi får et udtømmende udtræk for
> en vej. På den måde kan vi både oprette nye adresser og opdatere
> eksisterende i samme omgang, hvilket er en klar forbedring for den nuværende
> opdaterings-metode, hvor vi kun tjekker eksisterende adresser (fra det
> oprindelige KMS-input).
>
> Jeg testede lidt i nat med Jonas (rasher). Et par af opdateringerne kan ses
> her:
> http://www.openstreetmap.org/browse/changeset/4655604
> http://www.openstreetmap.org/browse/changeset/4655607
> http://www.openstreetmap.org/browse/changeset/4655731
>
> Programmet er endnu ikke i fri drift (grundet de problemer, jeg nævner
> længere nede), men det virker på følgende måde:
> 1. Man indtaster et vejnavn og ud fra en liste af veje i Danmark med det
> navn (hentet via AWS) vælger man den ønskede vej, man vil have opdateret
> 2. Programmet bruger den valgte vejs kommunekode+vejkode til at anmode om
> en liste af OSAK-data via AWS
> 3. Programmet henter en tilsvarende liste fra OSM over eksisterende veje
> 4. Programmet sammenligner de to lister (OSAK og OSM), og foretager
> følgende handlinger i OSM:
> 4.1. Findes adressen kun i OSAK, bliver den oprettet med alle addr:-felter
> og OSAK-data (id, kommune+vejkode, revision)
> 4.2. Findes adressen både i OSAK og i OSM, bliver den opdateret med
> koordinater og OSAK-data (id og revision)
> 4.3. Findes adressen kun i OSM, bliver den slettet.
>
> Den nuværende ulempe er, at det er svært at trække data ud af OSM! Jeg
> ville gerne bruge XAPI til adresse-prædikater, fx:
>
> http://www.informationfreeway.org/api/0.6/node[kms:municipality_no=615][kms:street_no=1938]
> Men dette giver problemer, idet den ene XAPI-tjeneste kun giver mulighed
> for at begrænse sit opslag til ét tag-prædikat (og et bbox-prædikat). Den
> anden tjeneste giver fin mulighed for at begrænse på flere tags, men virkede
> ret ustabil i nat. Før der er fundet en løsning på dette, kan programmet kun
> oprette nye adresser - hvilket kun er brugbart på veje uden nogen som helst
> eksisterende adresser.
>
> Jeg overvejer en alternativ løsning med en lokal database af
> adressepunkter. Jeg henter alligevel et dagligt udtræk. Men det ville være
> rart, hvis tjenesten kunne spørge op imod den rigtige database med det
> reelle indhold. Ellers risikerer at programmet flere gange prøver at oprette
> nye vejpunkter, fordi den ikke kan se, at punkterne er blevet oprettet.
>
> En let metode mod dette er at logge lokalt, hvilke veje, som er blevet
> opdateret, men netop fordi der løbende kan komme opdateringer til (nye
> adresser, nedlagte adresser, mere præcise adresser), skulle folk helst kunne
> have mulighed for at opdatere den samme vej flere gange over tid.
>
> Der er en del mere, som skal finpudses på programmet. Den overholder
> allerede de sædvanlige regler - primært at hvis en node er blevet
> modificeret siden KMS-importen, holder den snitterne væk. Et alternativ til
> at slette et modificeret punkt (fx hvis der er tilføjet en butik til
> adressepunktet), som ikke er i OSAK, kunne være bare at fjerne alle
> adresse-tags og bevare den tilføjede information. Således bliver et
> adressepunkt med en butik og navn tilføjet blot reduseret til butikken og
> navnet, og ingen adresse-data.
>
> Slutteligt skal der gøres en del ved overskueligheden, så man lettere kan
> se, hvad scriptet har tænkt sig at gøre, før man trykker OK.
>
> Kender I til veje, hvor der ikke er nogen som helst adressepunkter, så giv
> endelig lyd - dem kan jeg snildt tilføje.
>
>
> 2. "AWS request error" gennemskuet
>
> Der har tidligere været problemer med adresser, som gav problemer i AWS.
> Det er dem, som fremstår som "AWS request error" på kø-oversigten:
> http://osm.ter.dk/address_insert.php
> I første omgang var det blot en kategori for ethvert AWS-opslag, som gav en
> eller anden form for fejl.
>
> Nogle af dem har været forståelige nok, som når AWS brokker sig over
> adresser som denne:
> http://www.openstreetmap.org/browse/node/340946635
> .. på adressen "Hillerødvej 902, 0000 Uoplyst" :-)
>
> I adskillige andre tilfælde var der blot tale om at mit script kun havde
> tålmodighed til at vente 60 sekunder på et svar. Denne timeout-værdi er nu
> hævet godt deropad. Nogle opslag har taget op til 15 minutter - og det altså
> bare for en enkelt adresse!
>
> AWS-fejl-adresserne blev smidt til gentest kort efter jeg hævede
> timeout-indstillingen, og de ca. 20.000-adresser, som tog lang tid at slå
> op, er nu smidt i kø til gentest. Det virker således som adresser, som
> AWS-systemet bruger lang tid at slå op, så der går nok lidt tid, før den del
> af køen er tygget igennem
>
>
> 3. Ændring i opdateringskøen
>
> I samme omgang har jeg ryddet lidt op i køen, blandt andet så
> adressepunkter ikke kan optræde flere gange i køen. Oprindeligt var tanken
> at man kunne sætte punkter til gentest, hvis der fx var AWS-problemer,
> OSM-problemer eller at jeg tweakede på andre ting. Men det skabte blot lidt
> forvirring over hvor mange forskellige punkter, der var blevet behandlet. Nu
> indsætter køen kun node-id's, hvis de ikke findes i tabellen i forvejen.
>
>
> - Peter Brodersen
>
>
> _______________________________________________
> Talk-dk mailing list
> Talk-dk at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-dk
>
>
-------------- næste del --------------
En HTML-vedhæftning blev fjernet...
URL: <http://lists.openstreetmap.org/pipermail/talk-dk/attachments/20100511/dc837ec4/attachment.html>


More information about the Talk-dk mailing list