Koordinatkrangel i NVDB api V1

Vi har nettopp satt i produksjon en ny versjon 1 av NVDB api.

  • Hvis du bruker lengde- og breddegrad så er rekkefølgen nå er byttet om – eller mer presist: Vi har byttet tilbake slik det var før juni 2016.
  • Vi serverer nå kun 2D koordinater. Ikke en blanding av 2D og 3D.

Mange eksisterende klienter fikk problemer på grunn av dette. Derfor ruller vi V1 tilbake slik det var før juni 2016. Beklager at dette tok tid!

Merk at V1 nå avviker fra V2 på de to punktene over.

Koordinatkrangel.

Dette med rekkefølgen på koordinater for lengde- og breddegrad har gitt mye hodebry.

  • Matematikere og programmerere har ofte foretrukket rekkefølgen X, Y, det vil si rekkefølgen (øst, nord) – eller (lon, lat) (lengdegrad, breddegrad).
  • Geografer har likt best rekkefølgen (grader N, grader E), eller (lat, lon).

Heldigvis har vi internasjonal standardisering. V2 vil følge denne standarden, og det samme gjør skriveAPI’et. Der er det (lat, lon) som gjelder, evt (lat, lon, z) for 3D koordinater.

For V1 gjør vi det motsatt: Her tilbyr vi lengde- og breddegrad som (lon, lat). Altså motsatt av standarden. Og uten høydeinformasjon.

<geometriWgs84>POINT (10.63317257269053 63.42266891319099)</geometriWgs84>

Dette gjelder altså bare lengde- og breddegrad: For UTM-koordinatene er det heldigvis ingen som krangler på rekkefølgen.

Og så er det bare å beklage – både at vi gjorde denne endringen i utgangspunktet, og at det tok såpass lang tid før vi fikk skrudd det tilbake.

 

Vegkart og nvdb api blir ikke oppdatert 

Oppdatering torsdag 3.11.2016: Alle systemer går som normalt. 

Vegkart og NVDB ​api vil være tilgjengelig, men data vil være ufullstendige inntil indekseringen er fullført – sannsynligvis i løpet av dagen/ettermiddagen. Deretter bør alt fungere som vanlig…

Oppfriskningen av vegkart og lese-apiet stoppet som følge av ny datakatalogoppdatering kl0800 i dag tidlig (mandag 31.10) – denne vil tidligst komme i gang igjen i løpet av morgendagen (01.11). Feilretting pågår.

Vi har satt igang full reindeksering tirsdag ettermiddag (1.nov 2016). Alt burde fungere normalt neste arbeidsdag . 

Hvorfor tar vi ned vegkart og NVDB api?

Vegkart og NVDB api var nede i helga 7-10 oktober 2016. Vi er veldig lei oss for at dette skjedde – og spesielt at det skjedde uten noen form for informasjon.

Vi var nødt til å ta vegkart og NVDB api ned for å gjøre en total re-indeksering. Dessverre klarer vi ikke gjøre re-indeksering uten ulemper for brukerne. (Vi jobber med en løsning på dette også, men det ligger lengre frem).

NVDB api’et bruker to søkeindekser:

  • En søkeindeks for fagdata (fartsgrenser, bomstasjoner og alle de andre nesten 400 objekttypene vi har definert i datakatalogen.  Denne komponenten har fungert svært bra.
  • En søkeindeks for vegnettsinformasjon. Denne ble innført våren 2016, dog med litt innkjøringsproblemer

I prinsippet enkelt: Vegnettsendringer gjør at noe må oppdateres i indeksen for vegnett. Oppdaterte fagdata gjør at indeksen for fagdata endres. Men så har vi et viktig unntak:

I indeksen for vegnett har vi også lagt inn data om vegreferanse: Vegnummer, vegkategori, meterverdi og så videre. Når Vegnettsgruppa endrer vegreferanse-informasjon så må dette også endres i vegnett-endepunktet – selv om vegreferanse strengt tatt er fagdata.

Sa noen re-klassifisering av veger? Selve vegnettet i NVDB er uendret, men viktig informasjon om vegen blir endret: Vi har fått oppdatert vegreferanse.

For eksempel at vegen endrer status fra anleggsveg (A) til Eksisterende veg (V). Eller at fylket overtar vegen (F) fra staten (E eller R). Eller at meterverdiene regnes ut på ny. Eller et nytt vegnummer.

Hver gang det skjer slike endringer blir data om selve vegreferanse-objektet oppdatert i fagdata-indeksen – men ikke i indeksen for vegnett. Det betyr at når du klikker i vegkart får du data om vegen før re-klassifisering. For å sjekke den nye klassifiseringen må du gå inn på selve vegreferanse-objektet. Ikke spesielt brukervennlig.

Eksempel på feil i vegnettsfunksjonene: Deler av Strandvegen i GJøvik er omklassifisert fra kommual veg til fylkesveg (Fv33) , men den gamle verdien (Kv 4600) henger fremdeles igjen.

Deler av Strandvegen i GJøvik er omklassifisert fra kommual veg til fylkesveg (Fv33) , men den gamle verdien (Kv 4600) hang fremdeles igjen i vegnettsfunksjonene inntil vi fikk re-indeksert.

Om du er i tvil – så har vi en kartklient du kan bruke til å sjekke om vegen er omklassifisert, eller har andre endringer.

Vi er godt i gang med å løse problemet, og vil ha en fiks klar ganske snart, men kan ikke love noe om når dette kommer i produksjon.

Dessverre må vi nok også de neste månedene ta ned NVDB api og Vegkart innimellom: Når det blir for mange re-klassifiseringer vil vi måtte ta en full re-indeksering. Det tar ca 12-18 timer, med påfølgende omstart.

Vi lover å bli bedre på å informere i forkant av slike omstarter. Ikke etterpå.

Vi re-indekserer NVDB api (16.8.2016)

Tilføyelse 17.8.2016: Re-indekseringen er ferdig, og alt ser greit ut så langt. Vi krysser fingrene for at problemene er historie… 

Vi håper inderlig at denne re-indekseringen vil fjerne de problemene vi har hatt i vegnettsfunksjonene til NVDB api’et!

Ulempen er at NVDB api er utilgjengelig i timesvis mens re-indekseringen pågår FERDIG ca 0830 17.8.2016

Vi beklager på det sterkeste ulempene dette gir.

Vi kommer tilbake med mer informasjon så snart vi har den! I mellomtiden er det bare å være tålmodig, og krysse fingrene.

Kjør java-datakatalogen uten nettleser

Den mest komplette visningen av NVDB datakatalog er et javaprogram med MYE raffinert funksjonalitet: Fargekoder for påkrevde egenskaper, søkefunksjon m.m. Programmet har eksistert en del år, og har mange ivrige og dedikerte brukere.

Skjermdump, javaprogram for å vise datakatalogen. Trafikkulykke.

Det gode, gamle javaprogrammet for å vise datakatalogen har MYE god funksjonalitet og mange ivrige brukere.

En del har problemer med å starte datakatalog-viseren fra denne siden:

Tabell med de ulike versjonene av datakatalogen.

De ulike datakatalog-versjonene vises ved å klikke på versjonsnummeret. I dette tilfellet er 2.06 den nyeste.

Siste gyldige versjon av datakatalogen vises ved å klikke på det høyeste versjonsnummeret (2.05, 2.06 og så videre). Da skal følgende skje:

  1. Nettleseren din laster ned en såkalt jnpl-fil. Dette er en tekstfil med nødvendig informasjon, først og fremst lenker til selve programmet (jar-filer).
  2. jnpl-fil åpnes i java web start. De nøvendige komponentene lastes ned.
  3. Java web start fyrer i gang selve javaprogrammet.

På mange PC’er funker ikke lenger dette oppsettet: Nettleseren er ikke satt opp til å fyre i gang java web start, eller det er deaktivert av sikkerhetsgrunner, eller tusen andre årsaker. Å finne ut av dette kan være veldig pirkete, og kanskje har man ikke rettigheter til å gjøre noe med det.

Da er det langt lettere å fyre i gang java web start med et vanlig kommanduvindu (cmd.exe, ledetekst). Dette er hele kommandoen for å starte versjon 2.08 av datakatalogviseren:

javaws http://tfprod1.sintef.no/datakatalog/dakat-209.jnlp

Resten tar automatikken bak java web start seg av.

Får du denne feilmeldingen:

javaws gjenkjennes ikke som en intern eller ekstern kommando,
kjørbart program eller satsvis fil.

Så har du ikke java installert, eller du mangler java web start – komponenten. Java får du her.

Ett-klikk start av datakatalogen

Skriv kommandoen over inn i en tekstfil, lagre den med navnet dakat-208.bat, og du har en kjørbar fil du kan klikke på.

Her er en zip-fil med en slik bat-fil: datakatalog-212 Last ned, pakk ut. Denne versjonen er også sukret med et par ekstra kommentarer, pluss at vinduet holdes åpent i 15 sekunder, slik at du ser eventuelle feilmeldinger.

Dernest har vi de vanlige standardtricksene for å få noe lettvint å klikke på: Lagre .bat-fila på skrivebordet, eller lag en snarvei til skrivebord, menylinje eller et annet sted der det er lettvint for deg.

Må jeg ha java?

Mange lever veldig godt med de andre visningene vi har av datakatalogen:

Men det er ikke alle behov som dekkes via disse løsningene. Dette Java-programmet er fremdeles den mest komplette visningen av datakatalogen, og har mange ivrige og kyndige brukere.

Fremtidige versjoner

I fremtiden vil nok oppsettet rundt jpnl-filene bli endret; etter hvert vil disse bli flyttet fra server hos sintef til en katalog på www.vegvesen.no. Den offisielle visningen av datakatalogen, inklusive tabellen med lenke til de ulike jpnl-filene, vil du alltid kunne finne her: http://www.vegvesen.no/fag/Teknologi/Nasjonal+vegdatabank/Datakatalogen

Det vil også komme bedre html-visning av datakatalogen (men vi vet ikke helt når).

Sjekk vegreferanser i kartet

Eksempel på feil i vegreferanseoppslag fra NVDB api'et, Risør Havn.

Dobbeltsjekk vegreferanser med to kilder til NVDB-data! Den blå linja viser avstanden fra kartklikk til vegreferansen fra NVDB api’et. Her i Risør Havn er det åpenbare feil i data fra NVDB api’et

For å bøte på problemet med feil vegreferanser i vegkart har vi laget dette kartet. Klikk i kartbildet, så hentes vegreferanse fra to uavhengige kilder:

Begge kildene har NVDB data, men sommeren 2016 er vegnettsfunksjonene i NVDB api’et ustabile.

Eksempel på feil vegreferanse i vegkart, Risør havn.

I Risør havn får du feil vegreferanse for deler av Fv416. Klikker du nær «g»‘en i Strandgata får du data for en av kommunalvegene lengre sør.

Enda et eksempel fra Risør havn. Jeg klikket litt til side for senterlinja. Blå linje viser avstand fra klikkpunkt til NVDB api, rød linje fra klikkpunkt til visveginfo-tjensten. Det er helt klart noe galt med vegnettet fra NVDB api’et i dette området, mens jeg har full tiltro til data fra Visveginfo-tjenesten.

Enda et eksempel på feil i vegreferanse-oppslag mot NVDB api.

Når du klikker skal du få data for nærmeste veg. Dette ser bra ut for visveginfo-tjenesten (rød linje), men ikke for NVDB api (blå linje).

Slik skal det se ut!

Vegreferanse-oppslag mot NVDB api og visveginfo-tjenesten gir her samme resultat.

Slik ser det ut når det er 100% samsvar i de to tjenestene! Vegreferanse-verdiene er identiske, og rød og blå linje tegnes oppå hverandre, og tilsammen blir en fiolett strek.

Kartet finner du her: http://labs.vegdata.no/vegreferanse/

Krøll med vegnett i NVDB api

Dessverre har det vært mye problemer med NVDB api’et i produksjon. Stabiliteten har vært alt for dårlig. I tillegg viser det seg at vi har rot og krøll med deler av datainnholdet.

I NVDB api’et bruker vi p.t. to separate indekser.

  • Fagdata (fartsgrenser, trafikkmengde, vegreferanse, skiltplate …) Alle NVDB objekter definert i datakatalogen. Alt tyder på at delen av systemet virker som den skal.
  • Vegnettsdata: Vi har en egen indeks for vegnettsfunksjoner. Det er her vi har krøll, datacrash og avvik i for eksempel meterverdier.

Feil i meterverdier i vegkart

Vegkart gjør koordinatoppslag mot NVDB api'et. Fylke 05 blir vist som 50.

Fylke 05 blir her vist som 50. Dette er en irriterende, men ufarlig feil. Verre er det at vi finner tilfeller med feil meterverdi.

Vegnettsfunksjoner omfatter også oppslag fra koordinat til vegreferanse. Noen ganger gir dette feil meterverdi. Denne funksjonen brukes av vegkart; Hver gang du klikker i vegkart så gjøres det oppslag mot denne funksjonen. (eksempel)

Du kan altså ikke stole 100% på den meterverdien du får når du klikker i «vegkart». 

Vegkart har også feil visning av fylkesnummer lavere enn 10: For eksempel blir fylke  5 (Oppland) vist som 50, ikke 05. Akkurat denne feilen er kun irriterende, men totalt ufarlig: Data på fylkesnummer _*er*_ riktig, de blir bare vist litt dumt.

Kan jeg bruke data fra Vegkart / NVDB api?

Ja, vi er ganske trygge på at alle fagdata er korrekte.

Men ikke stol 100% på den meterverdien du får opp når du klikker i kartet.

Hva gjør vi videre?

Akkurat nå er alle fagpersoner på ferie. Vi får ikke gjort noe som helst de neste par ukene. Etter feriedvalen har feilretting høyeste prioritet.

Bruk NVDB api i PowerBI

Med forbehold om at jeg har forstått alt rett — PowerBI er (et av) Microsofts tilbud for lettvint dataanalyse. Takket være twitterbruker @Alslinet har vi nå en vel fungerende oppskrift for å anvende data rett fra NVDB api rett inn i PowerBI.

Selve appen er ikke lenger tilgjengelig  (det hadde vi heller ikke ventet, det var en kjapp test/demo som gikk på gratiskvoten til @Alslinet).

Eksempel fra hvordan man bygger visualisering / dataanalyse med NVDB data i powerBI

Eksempel fra hvordan man bygger visualisering / dataanalyse med NVDB data i powerBI. Takk til Vegard @Alslinet .

Bruksanvisning ligger her. (Evt også som word-vedlegg her: PowerBI og NVDB). Vi har standardtrickset for å laste ned større datamengder i én klump (sette antall = f.eks. 10.000). Dette trickset vil ikke fungere like bra i kommende versjoner av NVDB api – man må gå over til å bruke pagineringsfunksjoner, og det blir jo spennende å se hvor bra dette funker mot tjenester som PowerBI. Ellers må du manuelt fortelle systemet at det skal navigere nedover i JSON-strukturen, samt hvordan du konverterer listen med egenskapsverdier til tabell. En del museklikk per verdi, men i grunnen ikke avskrekkende, er mitt inntrykk.

Tusen takk til Twitter-bruker Vegard @Alslinet for at han vil dele sine erfaringer!

Undertegnede er ikke vel bevandret i PowerBI, men for et geodata-hode er inntrykket at PowerBI har de standardmetodene du forventer for å drille ned i datasettet og se på statistikk per område, fordeling av egenskverdier med mere – koblet mot kartpresentasjon slik at du ser hvilket geografisk område du forsker på.