Hvordan får jeg NVDB-data inn i kartsystemet mitt?

Hvordan kan jeg få NVDB-data inn i kartsystemet mitt? Enten som ferdige kartlag (f.eks. WMS), eller som redigerbare data.

Beklager – ingen WMS kartlag (foreløbig)

WMS – tjenester med de mest brukte kartlagene vil komme, vi finpusser på geoserver-oppsettet og dataflyten internt, men her er det et par snublefeller vi må fikse. Vi oppdaterer artikkelen med detaljer så snart vi har det tilgjengelig.

 

Løsning for Arc Map

For Arc Map har vi en add-in som leser data direkte fra NVDB api, hent den her.

Løsning for QGIS

Gjør Vegkart-søket ditt, klikk der det står «treff» og last ned CSV-fil. Denne kan du legge til QGIS med et par museklikk.

  1. Lag -> Legg til Lag -> Legg til skilletegn tekstlag
  2. Velg filnavn og juster et par innstillinger, ref liste og skjermdump nedenfor. QGIS husker hva du gjorde forrige gang, så du trenger stort sett kun fikle med dette én gang.
  3. Klikk «Legg til».

Innstillinger:

  • Filnavn
  • Tegnsett: latin1 (eller hvis du har norsk PC-oppsett så pleier «system» funke bra)
  • Under filformat: semikolon som separator
  • Brukerdefinerte skilletegn: » (dobbelt anførselstegn) i boksene Sitat og Avbryt
  • Geometry definition: Well known text (WKT)
  • Gemetrifelt: geometri
    • Les nederst i artikkelen om snublefeller mhp geometrityper og hva du evt oppnår med å velge kolonnen «Geometri, Punkt», «Linje» eller «Flate» når de finnes
  • Geometritype: Oppdag
  • Geometry CRS: EPSG:25833 – ETRS89 / UTM sone 33N

 

Typiske QGIS-innnstillinger for å lese inn vegkart CSV-dump

Typiske QGIS-innnstillinger for å lese inn vegkart CSV-dump

Python

 

Minst to vegvesen-kolleger har laget egne bibliotek for å søke mot NVDB api og håndtere svarene derfra. Samt litt anna snacks:

import pandas as pd
pd.DataFrame.from_csv( 'datadump-fra-vegkart.csv', encoding='latin1', sep=';')

FME

https://github.com/LtGlahn/Nvdbapi_v2_FME

Geometri er snublefelle for import av NVDB data

Alle NVDB-data er knyttet til vegnettet. Noen objekttyper – f.eks. bomstasjon, skiltplater og belysningspunkt – er knyttet til vegnettet i et punkt på vegens senterlinje. Dette sklir rett inn i alle kartsystem vi har prøvd til nå.

Andre datatyper, for eksempel fartsgrenser, er knyttet til vegnettet på en eller flere strekninger langs senterlinja. Ikke alle kartsystem er like glade for å møte en slik blanding av enkle linjer (LinesString) og grupper av linjer (MultiLineString) i samme datasett. Se definisjonen av Well Known Text, den gir en god innføring.

Hvis det er kronglete at datasettet har en blanding av enkle- og multilinjer så kan man gå rundt problemet ved å erklære at alle linjer er MultiLineString. Mange av «Multi»-gruppene vil da kun har ett eneste medlem, men det er greit.

Alternativet er å splitte datasettet to, en tabell med enkle linjer og en med multi-linjer. Mange kartsystem gjør en av delene automatisk når det trengs.

Egengeometri eller ei?

Men det meste av vegustyr blir aldri montert på noen senterlinje – det står på siden av vegen (evt over eller under). Derfor har vi innført såkalt egengeometri, det vil si koordinatene for den fysiske plasseringen. Eldre data er gjerne registrert uten egengeometri (f.eks. mye holdeplassutrustning), mens nyere vegutstyr som regel har egengeometri.

  • Egengeometri er en egenskap med ett av disse navnene:
    • Geometri, Punkt
    • Geometri, Linje
    • Geometri, Flate.
  • Eller hvorfor ikke alle 3 på en gang? Trær i NVDB har denne valgfriheten
  • Hvis du vil skille objekter med og uten egengeometri fra hverandre kan du bruke filtre som Geometri, Punkt har verdi

Selv synes vi at NVDB sin modell er genial og fleksibel, men dette skaper en del kluss for dem som skal håndtere data.

Visveginfo har gamle data – hva betyr det?

Fiksa 30.august 2018

 

Er det viktig for meg?

Neppe, med mindre du jobber med stedfesting og lagring av nye data til NVDB, eller har et system som bruker Visveginfo direkte.

Har du et system som baserer seg på Visveginfo så er det helt klart en ulempe at du ikke har med vegnettsendringer etter juli 2018.

Vegkart er ikke berørt, heller ikke når du ber om strekninger.

Hva var problemet?

Visveginfo er et system for vegnettspørringer fra 2011. Visveginfo utfyller NVDB api’et på et veldig god måte, for eksempel med topologi- og strekningsspørringer. Men én av utfordringene er at vi har to parallelle dataflyt-løyper til NVDB api og Visveginfo:

  • Visveginfo oppdateres en gang i døgnet i en (litt gammal) løype som er til dels sårbar.
    • Vi leser transaksjonsloggen fra NVDB databasen, og det går veldig bra så lenge den har «normal» drift med mange relativt små endringer.
    • Men av og til får vi en gigantisk transaksjon der svært mange objekter i NVDB er endret samtidig.Da stopper alt opp.
    • Vi får det i gang igjen ved å dele opp en gigant-transaksjon i mindre biter, men det er plundrete og tar tid.
  • NVDB api oppdateres fortløpende. Gigant-transaksjonslogger har vært et problem her også, men dette er blitt løst.

Nå – 29. august – plundrer vi ennå med en gigantisk transaksjon fra slutten av juli. Dette blir ble løst 30. august.

Stedfesting i datafangst blir vanskelig uten Visveginfo

Datafangst er Vegvesenets nye verktøy for mottak, kvalitetskontroll og beriking av data entreprenørene sender oss om det de har bygget. Før data kan lagres i NVDB må de knyttes til riktig vegnett. Og det blir jo litt vanskelig når den nye vegen ligger i kø bak en gigantisk transaksjonslogg.

Her er f.eks en ganske fersk gangsti på Tjøme, Vestfold

Ny gangsti langs Fv390, Vestfold.

Ny gangsti langs Fv390, Vestfold.

Men datafangst viser frem vegnett fra Visveginfo, og har derfor ikke den nye gangstien som alternativ. Da er det jo vanskelig å stedfeste belysning på gangstien, der det hører hjemme:

Skjermdump datafangst-verktyøyet, der gangstien mangler. Da blir det litt vanskelig å stedfeste nye belysningspunkt på gangstien

Datafangst henter vegnett fra Visveginfo, og der er ikke gangstien kommet med ennå. Merk at gangstien er synlig som en grå strek i bakgrunnskartet, men IKKE tilgjengelig som gyldig vegnett du kan stedfeste på i Datafangst.

Hvordan sjekker jeg om mine data er berørt?

Du kan bruke denne kartløsningen. Den henter data både fra Visveginfo og NVDB api. Da ser du fort om de er enige, eller om det er avvik. Mer om dette kartet.

Skjermdump som viser kartløsning der NVDB api tilbyr gangstien som nærmeste vegnett, mens Visveginfo har kun hovedvegen

NVDB api tilbyr gangstien som nærmeste vegnett, mens Visveginfo har kun hovedvegen

Nedenfor ser du at Fv390 har fått nye meterverdier. Nvdb API gir ca 7 meter lavere tall enn Visveginfo.

Skjermbilde som viser at Visveginfo har høyere meterverdier enn NVDB api på Fv390, Vestfold

Hvor finner jeg kollektivfelt?

Hvordan kan jeg finne kollektivfelt eller andre typer kjørefelt i NVDB?

Informasjon om kjørefelt er i NVDB lagret på de enkelte veglenke-delene. Den som liker å programmere kan lese mer om datastrukturen her: http://api.vegdata.no/endepunkt/vegnett.html

For resten av oss er 616 Feltstrekning til stor hjelp. Inntil relativt nylig var det på denne objekttypen vi lagret oversikt over kjørefeltene. Denne blir fremdeles holdt a jour: Ved vegnettsredigering kopieres kjørefelt-informasjon fra veglenkene over på 616-objektet, mer presist som tekst i egenskapsverdien feltoversikt.

Fiffige vegkart-søk med stjernefilter

Kollektivfelt har koden «K», og vi finner dem med filteret «feltoversikt = *K*. De to stjernene (*) betyr at du kan ha hvilken som helst tekst foran og bak bokstaven K.

Søk etter kollektivfelt med objekttypen 616 feltstrekning og filteret feltoversikt = *K*

Lenke til dette vegkart-søket

Hva betyr tallene og kodene?

Feltene er numerert i stigende rekkefølge fra senterlinja og utover, oddetall til høyre og partall til venstre, sett fra starten på veglenka.

Oversikt over hvordan vi teller kjørefelt i NVDB

Felt uten bokstaver er helt vanlige kjørefelt, mens spesialfelt som sykkelfelt (S), kollektivfelt (K), ferjeoppstillingsplass (O) og svingefelt (H eller V) har egne bokstavkoder i tillegg til nummerering.

Den fulle oversikten finnes i den utmerkede håndbok v830 Nasjonalt vegreferansesystem, der figuren er hentet fra.

Hashtag # som skilletegn!

Vi bruker hashtag – # – for å skille kjørefeltene fra hverandre.

Hashtag er skilletegn mellom kjørefeltene

2017 Høst-leveransen NVDB klassisk

Her er en oversikt over funksjonelle endringer og feilrettinger som inngår i 2017H2-leveransen av klassisk NVDB.

Ny tjenerversjon ble satt i drift 22 november. Nye Windows-klienter er lagt ut for nedlasting og blir distribuert til brukere i SVV snart.

Når det gjelder informasjon om de funksjonelle endringene, kan dette også finnes i oppdatert brukerdokumentasjon, f.eks. i Hjelp-menyen i NVDB 123 og F1 i NVDB Studio.

NVDB123

Ny funksjonalitet

  1. Kopiere linje/flate geometri til nye objekter  Det er innført nye knapper i objektredigeringsdialogen som lar brukeren kopiere og lime inn punktene i objektenes egengeometri
  2. Datafeil i søk mot stedsnavnregister (kartverket), ta i bruk ny tjeneste  Ny tjeneste for stedsnavnsøk med oppdaterte kommunegrenser. Brukergrensesnittet er uendret.
  3. Kartverkets WMS-tjeneste topo2 erstattet av topo3
  4. Enklere oppdatering etter vegnettsendring, spesielt tilpasset bruksklasse  Automatisk oppdatering og oppretting av bruksklasse-objekter ved at man endrer eller oppretter ett objekt som fungerer som mal for de øvrige.
  5. Revurdering av dokumentasjonsobjektets størrelsesbegrensning  Nye grenser for objektstørrelser: 300KB for bilder og 3MB for andre filtyper.

Feilrettinger

  1. Installasjon av versjon 4.5.27.385 gir feilmelding NVDB123-ikonet på skrivebordet og i startmenyen fungerte ulikt. Dette er rettet.
  2. Objekt blir delt på sideposisjon Rettet feil i uttegningen av objekter som både hadde sideposisjon og var stedfestet både med og mot referanselenkeretningen.
  3. Feil ved import av SOSI-fil  Filer med spesialtegn i egenskapstypen «Tilleggsinformasjon» feiler ikke lengre.
  4. Gjeldende installasjonspakke feilet  Ini-filene kopieres nå også av NVDB Felles-programmene

Klient-api

  1. Gir feil ved Rosita opplasting. For å unngå konflikt med antivirusprogrammer opprettes nvdb.ini nå med færre åpninger og lukkinger av filen.
  2. Feil i Klient Api ved lagring av fagdata. Kontroll og automatisk retting av små overlapp ble feil når nettverksdato ikke var satt til «nå».

NVDB-tjener

  1. Innsjekk av vegnettsredigeringsoppdrag stopper opp Innsjekk stopper ikke lengre selv om geometriegenskaper er slettet
  2. Forbedret feilhåndtering  Forsøk på å forbedre kommunikasjonen mellom klient og server
  3. Rydding i serverlogger Gir bedre oversikt i overvåkingsverktøyet Splunk
  4. Datauttak til Ureg bruker unødig lang tid  Datauttak til Ureg bruker nå kortere tid enn tidligere
  5. Feil ifm oppdatering av datakatalogen  Egenskapstyper kan nå endres fra heltall til desimal tall og motsatt
  6. Forbedre klient-tjener kommunikasjon   Tar vare på data som kan gjenbrukes dersom det forekommer svikt i nettverket

 

Hva betyr kommune- og regionreformen for NVDB?

Kommune og regionreform medfører at det er nødvendig å gjøre endringer i NVDB. Noen av disse endringene kommer allerede frem mot 1/1 2018.

Større endringene som NVDB må gjennomføre for å imøtekomme kommune- og regionreformen frem mot 2020 vil ikke tre i kraft i år. Disse endringene vil være en del av et større NVDB prosjekt som har sin oppstart høsten 2017.

Les videre

Re-indeksering torsdag 9.februar 2017

EDIT fredag 10.2: Vi er tilbake i normal drift, men mangler litt driftskontrakt

Kjente feil 10.2: Fiksa

  • Mangler driftskontrakt 1103 Stavanger

torsdag 9. februar skjer det to ting som går ut over alle brukere av Vegkart og NVDB api.

  • Vi skrur av oppdatering.
    • På dagtid 9.2 vil vi ikke overføre endringer fra NVDB-databasen til  NVDB api og vegkart.
    • Husk at du kan sjekke status på dataoverføring fra NVDB med «info»-knappen i vegkart og denne funksjonen.
  • Full re-indeksering.
    • Om ettermiddagen / kvelden torsdag 9.2 kjører vi full re-indeksering
    • Først blir det et par timer uten data overhodet i NVDB api og Vegkart
    • Deretter vil objekttypene gradvis komme på plass igjen (rekkefølge etter objekttypenummer, dvs først 3 Skjerm, 5 rekkverk osv).
    • Re-indeksering burde være ferdig ca midnatt natt til fredag 10.2.
  • Normal drift fra fredag morgen
    • Fredag morgen skrur vi på oppdateringen, slik at du igjen finner de ferskeste   data i  Vegkart og NVDB api

Bakgrunnen er en (liten, rent teknisk) datakatalogendring. Dette er en nødvendig forberedelse til den datakatalogendringen som kommer i slutten av februar.

Vi beklager de ulempene dette får for våre brukere!

I 2016 hadde vi 423 millioner oppslag mot NVDB api

423 millioner oppslag er jo en del. Klientapplikasjonen «Ukjent» står for mesteparten, med vegkart som god nummer 2.

For din egen del er det lurt om du angir X-Client og X-Kontaktperson i headeren på kallet, slik som beskrevet her:

"X-Client": "NVDB Rapporter" 
"X-Kontaktperson": "ola@nordmann.no"

Da får vi muligheten til å kontakte deg om noe er galt, og din applikasjon kommer med i statistikken.

statistikk-forenklet-2016

FME eksempel for segmenterte data

Jeg har laget et FME workspace som utnytter muligheten til å få «delt opp» lange objekter i kortere segmenter. Hvert segment har unike vegreferanseverdier og veglenkeposisjoner. (I tillegg unngår man alle «multilinestring» – geometrier).

Trikset er nøkkeordet inkluder=vegsegmenter (evt inkluder=alle). Slik:

https://www.vegvesen.no/nvdb/api/v2/vegobjekter/616/91452898.xml?inkluder=vegsegmenter

Med NVDB api V2 kan man velge å få lange objekter delt opp i segmenter med unike vegreferanseverdier og veglenkeposisjoner

Med NVDB api V2 kan man velge å få lange objekter delt opp i segmenter med unike vegreferanseverdier og veglenkeposisjoner. Dokumentasjon

Det vil si at i stedet for:

  • en geometri for hele objektet
  • en liste med vegreferanser
  • en annen liste med veglenker
  • og plunder med å koble en veglenke-bit til riktig vegreferanse + riktig bit av geometri

Så får vi

  • Ett eller flere segmenter
  • Hvert segment har sin egen «bit» av objektet med
    • En enkel vegreferanseverd  (med unike  vegnummer hp, frameter og tilmeter)
    • En bit av en enkelt veglenke (ID, fraposisjon, tilposisjon)
    • Geometrien som hører til.

https://github.com/LtGlahn/Nvdbapi_v2_FME#nvdbapi_v2_bruksklassefmw

Re-indeksering 2.januar 2017

Oppdatering 2.1.2016 23:12: Jobben er fullført og alt ser greit ut (så langt). Kontraktsområder krever dog en restart av vegkart; dette gjøres 3.1 

På grunn av kommunesammenslåing må vi gjøre full re-indeksering av NVDB api’et. Dette gjøres om ettermiddagen 2. januar 2017, mot slutten av arbeidsdagen/etter arbeidstid.  Følg med NVDBapi på twitter for oppdateringer.

Når re-indekseringen starter vil Vegkart og NVDB ha mangelfulle data i opptil et par timer. Dernest er en periode der de fleste objektene er på plass, men uten data om vegtilknytning (vegreferanse, veglenke), samt øvrig informasjon som avledes fra vegnettet (koordinater for senterlinje, kommune, fylke m.m.). Søk på riksvegruter, vegnummer etc vil heller ikke gi korrekte resultat.

Cirka ved midnatt natt til 3. januar regner vi med at alt er ferdig og på plass!