Ustabilitet i NVDB

Vi har litt utfordringar i NVDB igjen. Feilen har pågått heile veka og mange har nok merka at Les ligg langt etter med etterbehandling. Dette er på grunn av at tenesten plutselig stoppar opp.

Vi har ute ein midlertidig fiks som omgår problemet i produksjon, men vi opplever likevel at alt går litt tregare enn normalt.

Testing av feilretting i ATM

Det pågår no testing og feilretting i ATM-miljø (test-PROD). Les kan difor vere ustabil i dette miljøet framover til vi har løyst problemet.

Ny datafangst-versjon satt i produksjon

Datafangst 2022-2.0.1 er ute i PROD

  • Mulighet til å vise kommentarer for flere objekter og objekttyper gjennom verktøymenyen i datafanen.
  • Mulighet til å fjerne flere kommentarer gjennom filtrering og markering.
  • Nye, mer beskrivende farger på kommentarboblene.
  • Vegsystemreferansen kan nå sees i datafanen for objekter som er registrert i NVDB eller er stedfestet.
  • Metreringsretning er nå standard retning i datafangst.
  • Man kan nå se retningen på veglenker i kartet, både i datafanen og stedfestingsfanen.
  • Sideposisjon og felt kan nå sees og redigeres selv om det er flere av disse for et vegobjekt.
  • Sideposisjon og felt vises i forhold til metreringsretning i motsetning til før da de vistes i forhold til geometriretning.
  • Sideposisjon og felt er nå markert gult om det er endret ifht NVDB.
  • Ved stedfesting kan du nå sende med vegkategori for å spesifisere stedfestingen mer nøyaktig.
  • Den gamle stedfestingstypen ble visualisert bedre når det kom til krappe svinger som nærmet seg sirkler. Dette er nå fikset.
  • Ved import av SOSI kan man nå velge operasjon, som betyr at man kan importere eksisterende NVDB-objekter som SOSI.
  • Endring av enkeltattributter i datafanen har blitt raskere.
  • Når det dukker opp en feilmelding får du oppgitt en lenke til ofte stilte spørsmål for mer informasjon.
  • Andre mindre feilrettinger og forbedringer.

Obs! Vi har et script som kjører og fyller inn metreringsretning på alle veger det er stedfestet på. Dette tar ca. et døgn å kjøre. Det betyr at vi har ikke metreringsretning på alle veger enda.

Om man har et objekt som er stedfestet på veg uten metreringsretning vil sideposisjon og felt være grået ut i vegobjekter-fanen og hvis man hovrer på dette feltet vil det stå «Objektet er stedfestet på veg uten metreringsretning og sideposisjon/felt kan ikke oppgis.». Hvis objektet har sideposisjon eller felt vil det dukke opp så snart metreringsretningen har blitt hentet inn. Hvis man vil se sideposisjon og felt med en gang kan man stedfeste på nytt og vi vil da hente inn metreringsretningen på veglenka. Alle veglenker forventes å ha fått metreringsretning innen fredag morgen. I løpet av helga. EDIT: Dette scriptet gir såpass stor belastning at vi må kjøre det i helga, når det er færre brukere.

NVDB api LES fungerer ikke

6.12.2021 klokken 12:44 Vi FRISKMELDER NVDB api LES, i både PRODUKSJON og TESTPROD (ATM). Utviklingsmiljøet vårt har ikke hatt disse problemene

6.12.2021 klokken 12:30: Alt ser greit ut så langt, vi vurderer full friskmelding, men testing pågår ennå

6.12.2021 klokken 11:50: Vi har fått NVDB api LES igang igjen, har ikke rukket å teste alt grundig, men det ser OK ut så langt

Vi jobber med feilsøking, oppdaterer så snart vi har mer informasjon

Feilen påvirker alle systemer som bruker data fra NVDB api LES, deriblant Vegkart, NVDB rapporter, Datafangst med flere

– OPPDATERT – Feil med oppdatering av data i NVDB

Feilen er no retta og Lese-API fungerer igjen som normalt. Det er framleis litt etterslep i oppdatering av statusen «Etterbehandlet», men reknar med det og snart er i orden.

Det er ein feil med indeksering/etterbehandling av data i NVDB. Indeksering har no stoppa heil opp, og vi jobber med å rette feilen.

Dette fører til at ingen data som er levert til NVDB etter 00:00 16/11-2021 vert synlege i NVDB Les-API og tenestar som brukar denne som vegkart.

Regsitrerte data er lagra og vil verte indeksert når vi har systema oppe igjen, men synleg data vert meir og meir utdaterte etter kvart som det kjem nye oppdateringar og tida går.

Om vegdata.no

Nasjonal vegdatabank (NVDB) inneholder landets vegnett og hundrevis av fagdatatyper knyttet til vegen.

Det meste av denne informasjonen har Statens vegvesen gjort fritt tilgjengelig, og vi oppmuntrer publikum til å bruke datagrunnlaget på kreativt vis.

På nettstedet Vegdata.no vil vi fortelle om hvordan du kan finne frem i jungelen rundt NVDB, og fortelle om status på de verktøyene og produktene NVDB-miljøet tilgjengeliggjør rundt NVDB.

Søk etter historiske data

Det vi trenger er en oversikt for hva som er nytt per år. Altså hvis en veg får flere gatelys, fortau osv.

Dette er et behov som mange vegeiere og -driftspersonale har. Akkurat denne gangen kom spørsmålet fra Trondheim kommune, men det samme behovet har fylkeskommunene, entreprenører, Nye Veier A/S og Statens Vegvesen.

Vår anbefaling: Ta differansen mellom to datasett for ulike tidspunkt

NVDB api LES støtter datauttak på angitt tidspunkt (dato), med et par forbehold om at det ikke har vært gjort endringer på områdegrenser fra det første tidspunktet til i dag. Her er status på historisk søk i ulike verktøy per oktober-2019:

Vi har noen forbehold! Hvis det har vært gjort justeringer på kontraktsområder og/eller vegnett kan du få litt … lite intuitive resultater, se under. I tillegg får du litt merarbeid om du ønsker å sammenligne data før og etter en kommunesammenslåing.

NVDB bruker kun de nyeste kommunegrensene!

I NVDB bruker vi kun ferske data for fylker og kommuner – med tilbakevirkende kraft. Så i 2021 finner du for eksempel ingen spor etter gamle Klæbu kommune.

Dette betyr at når du søker etter belysningspunkt i Trondheim for en tidligere dato, for eksempel 1. februar 2017, så får du treff på dagens Trondheim kommune. Mer presist 10625 objekter, hvorav 927 er i gamle Klæbu kommune.

Skjermdump av kart som viser hvordan et søk etter belysningspunkt i Trondheim kommune per 2017 gir 927 treff i gamle Klæbu kommune.
Selv om Trondheim og Klæbu først slo seg sammen i 2020 så gir søket etter belysningspunkt per 2017 deg 927 treff i gamle Klæbu kommune,

Selve søket mot NVDB api ser slik ut:

https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/87?kommune=5001&tidspunkt=2019-02-01&inkluder=alle

Men hva med endret – funksjonen i NVDB api? Hvorfor ikke bruke den?

NVDB api LES tilbyr parameteren endret_etter, og den har sin anvendelse – men for akkurat dette behovet blir det for mange snublefeller. Resultatene fra denne spørringen:

https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/87?kommune=5001&endret_etter=2021-09-22T00:00:00 

må suppleres med en hel del datamassasje: Du må skille endret fra nye objekter, evt om det er nye versjoner av gamle objekt – og du må sjekke om noen objekter kan være slettet. Etter vårt syn er det bedre å ta differansen mellom to ulike datoer.

Historiske data per Kontraktsområde – brukes på egen risiko

Hvis du henter ut historiske data for et kontraktsområde og enten vegnettet eller kontraktsområdet (eller begge deler!) har vært endret så må vi ta forbehold om at du kan få færre vegobjekter enn det riktige.

Hvis du vet at vegnettet og ditt kontraktsområde har ligget i ro i tiden mellom i dag og bakover til det eldste tidspunkt du trenger data for – så kan du helt fint ta ut historiske data på dette kontraktsområdet.

Forklaringen er komplisert: Når kontraktsomrdet skal brukes som søkefilter i NVDB api les så klarer vi ikke gjenskape området slik det så ut før endringen, men bruker området slik det ser ut i dag – også for historiske søk.

Hvis en bit av vegnettet var i k.området i 2019, men ble satt historisk i 2020 – så vil du ikke klare finne den når du søker på k.området i dag med tidspunkt=2019.

Tilsvarende hvis k.området har vært justert i 2020: Du klarer ikke få frem riktige 2019-data ved å bruke k.området som søkefilter.

Det finnes krokveier om dette problemet, men det er komplekst (hent ut historisk 538-objekt per tidspunkt, finn dette objektet stedfesting og hent ut vegobjekter som hadde overlappende stedfesting på det tidspunktet.) Vi ønsker å tilby ferdige rapporter basert på denne logikken, men det ligger noe fram i tid.

Hvor mangler vi kontraktsområde?

Fra våre venner hos fylkeskommunen fikk vi denne utfordringen:

Det fylkeskommunen ønsker, er å finne ut om det er noen deler av fylkesvegnettet som ikke har knyttet et kontraktsområde til seg. Slik det er i dag, må man sammenligne to rapporter og finne forskjellen

Dette er et flott eksempel på noe som ikke er ferdig støttet i våre produksjons- og rapporteringsystemer, men som fint lar seg løse med ørlite grann koding, for eksempel i FME eller python.

Kontraktsområder er såpass viktige at vi i NVDB api segmenterer alle andre data med informasjon hentet fra objekttype 580 kontraktsområde. Dermed kan du bruke navnet på kontraktsområde som søkefilter i Vegkart og NVDB api. I vegkart-veiledningen har vi et eksempel på hvordan du kan vise vegnettet for et kontraktsområde i Vegkart.

Skjermdump som viser vegkart-søk etter utstrekningen til kontraktsområde 1202 Stor-Bergen 2015-2020

Men hvordan finner vi det vegnettet som mangler kontraktsområde?

Ta en litt grundigere titt på en bit av segmentert vegnett: https://nvdbapiles-v3.atlas.vegvesen.no/vegnett/veglenkesekvenser/segmentert/804767 . På JSON-format ser det noenlunde slik ut (forkortet for lesbarhet):

{
  "href": "https://nvdbapiles-v3.atlas.vegvesen.no/vegnett/veglenkesekvenser/segmentert/804767",

  8< --- forkortet for lesbarhet 
  
  "kontraktsområder": [
    {
      "id": 1013305686,
      "nummer": 9304,
      "navn": "9304 Bergen 2021-2026"
    },
    {
      "id": 1010943925,
      "nummer": 1202,
      "navn": "1202 Stor-Bergen 2020-2021"
    }
  ]
  
  8< ---- forkortet for lesbarhet 
}

For hvert eneste vegsegment har vi altså en liste med de kontraktsområdene som gjelder for dette vegsegmentet. Hvis det ikke er registrert noe kontraktsområde for et segment så er denne listen enten tom (for JSON-formatet) eller mangler (XML-formatet). For eksempel https://nvdbapiles-v3.atlas.vegvesen.no/vegnett/veglenkesekvenser/segmentert/2720672

{
  "href": "https://nvdbapiles-v3.atlas.vegvesen.no/vegnett/veglenkesekvenser/segmentert/2720672",
  
  8< --- forkortet for lesbarhet 
  
  "kontraktsområder": [],
  
  8< --- forkortet for lesbarhet 

}

Løsningen for å finne veger uten kontraktsområde blir da å lage litt kode som henter data fra NVDB api:

Har du kodeeksempler?

Klart det – her er et enkelt python kodeeksempel

Et mer komplett python-kodeeksemplet gjør bruk av Pandas Dataframes og Geopandas Geodataframes, samt mitt eget python-bibliotek for å lese data fra NVDB api. Installasjon av disse komponentene kan gi høy brukerterskel for uøvde brukere.

Vi kan helt sikkert lage et FME-kodeeksempel hvis det er interessant.

Utviklingplanar er lagt ut

Utviklingsplanar med liste over alle saker vi har registrert for utvikling er no lagt ut under dei ulike produkta Statens vegvesen leverer i NVDB-portefølgen. Ei ovrsikt over alle planane Utviklingsplaner NVDB produktportefølje.

«Kjente feil»-posten er samstundes fjerne då feil er registrert som saker og plassert inn i utviklingsplanane våre. Eventuelle nye kritiske feil vil vi poste som eigne innlegg eller på Twitter dersom vi ser behov.

Registrering av Vegdekke

241-Vegdekke er en objekttype mange har utfordringer med å registrere i NVDB i nye løsninger. Datakatalogen og regelsettet generelt er uendret i forhold til NVDB-123, men mange hadde nok utarbeidet en rutine for å få gjennomført oppgaven i klassisk løsning.

Det er funksjonalitet for å gjøre det samme i nye løsninger, men det krever ofte en del manuelle rutiner.

Her er noen retningslinjer og tips for å få utføre arbeidsoppgaver med registrering av 241-Vegdekke.

Bindelag og Slitelag

Binde- og Slitelag må registreres i to omganger med ulik dato i NVDB.
Årsaken til dette er at det er to objekter av samme type og de kan ikke ha overlapp. Bindelag må derfor settes historisk for at slitelaget kan registreres. NVDB krever at et objekt er gyldig minimum 1 dag. Et objekt med lik start og slutt-dato vil i NVDB-verden tolkes som ikke å ha eksistert.

Fortrinnsvis bør da data leveres i separate leveranser fra entreprenør og behandles/leveres til NVDB separat i registreringsverktøy. Det kan for eksempel gjøres ved å levere data for Bindelag til NVDB før Slitelag leveres til dataløsningen, eler at det leveres til ulike «prosjekter/kontrakter» dersom løsningen ikke har støtte for utvalg ved innsending.

Fremgangsmåte ved samlet leveranse/fil

  1. Leveransen eksporteres til fil (eller lignende) for senere arbeid
  2. Alle data som omhandler slitelag fjernes fra prosjektet/kontrakten
  3. Data for bindelag kontrolleres og klargjøres for innsending
  4. Datasettet sendes til NVDB med dato tilbake i tid
    • fortrinnsvis med dato for faktisk dekkelegging
    • alternativt dagen før slitelagdato dersom det er samme dato
  5. Datasett leses inn på nytt fra backup-fil (punkt 1)
  6. Alle data som omhandler bindelag (allerede registrerte data) fjernes fra prosjektet/kontrakten
  7. Data for slitelag kontrolleres og klargjøres for innsending
  8. Objekter opprette ti NVDB i punkt 4 hentes inn i prosjektet/kontrakten for lukking
  9. Datasett sendes til NVDB med dato minimum 1 dag etter startdato for objekter som skal lukkes
    • fortrinnsvis med dato for faktisk dekkelegging

Ved registrering av flere dekkelag deles datasettet opp i flere delsett og punkt 5-9 repeteres til alle lag er registrert.

Registrering av flere objekter på samme strekning

241-Vegdekke kan tillater i følge Datakatalogen ikke overlapp. Dersom dekke måles inn i flere objekter på samme strekning, f.eks. et objekt pr. retning/felt, sykkelfelt, avkjøringsfelt osv. må disse skilles ved å sette feltkode på objektene. Det er tillatt med et objekt pr. felt pr. punkt i vegnettet.

gang-/sykkelveg

Gangveg, gang-/sykkelveg og sykkelveg er egne vegsystemer som kan ha vegdekke. Vegdekke på disse vegene skal ikke stedfestes på hovedvegen men på sine respektive vegstrekninger.

Fortau

Fortau er ikke definert som felt i dagens vegnett. Dekke på fortau anbefales ikke å registreres som egne vegdekkeobjekter. Dette ivaretas i dag som egenskap på objektet 48-Fortau.

Dekker som ikke er del av vegen

Dekker på områder som ikke er en del av vegen skal ikke registreres som vegdekke i NVDB selv om det er vegeier som forvalter dekket. Dette kan være gangstier på/rundt kollektivpunkter, turistattraksjoner, holdeplasser osv.

Utvikling fremover

  • Vi håper på at utviklingen av registreringsklienter på sikt vil automatisere mye av problematikken rundt dekkelegging. Vi ser for eksempel for oss at klienten kan skille på om det er bindelag/slitelag og ta inn be om dato for legging av de ulike lagene og på den måten håndtere alt med deling, lukking og oppdatering.
  • Fortau og gangstier vil på sikt få vegsystemreferanser i NVDB. Når det skjer vil det være mulig å legge vegdekke på disse objektene likt med gan-/sykkelveg.
  • Vi vurderer innføring av et nytt objekt «Dekke» som kan benyttes til dekkeobjekter som ikke er del av vegen, men likevel har en tilhørighet.
  • Vi vurdere endring av Vegdekkeobjektet fra dagens utforming som tillater egengeometri til å være et «abstrakt» objekt som bare forholder seg til stedfesting (og feltvalg) på vegnettet.

Hvordan beregne veglengder i en kommune?

Tidligere har vi publisert oppskrifter på hvordan du kan bruke vegkart til å finne lengder av veg til KOSTRA-rapportering. Disse oppskriftene er fremdeles gyldige, men nå er det kommet flere muligheter.

Bruk «NVDB rapporterut vegnettsrapport for valgfritt område.

Fra systemet «NVDB rapporter» for driftskontrakter , under fanen for «Egendefinerte rapporter kan du ta ut «vegnettsrapport» for en kommune. Denne løsningen finner du her: https://nvdb-vegnett-og-objektdata.atlas.vegvesen.no/generisk/

Skjermdump fra https://nvdb-vegnett-og-objektdata.atlas.vegvesen.no/generisk/ . Velg "Vegnettsrapport (V1)" og angi kommune og eventuell dato før knappen "Hent data" blir aktiv.
Skjermdump fra https://nvdb-vegnett-og-objektdata.atlas.vegvesen.no/generisk/ . Velg «Vegnettsrapport (V1)» og angi kommune og eventuell dato før knappen «Hent data» blir aktiv.

Velg «Vegnettsrapport (V1)» og angi kommune og eventuell dato før knappen «Hent data» blir aktiv.Valgene for Kontraktsområde og Fylke lar du stå tomme.

Skjermdump fra https://nvdb-vegnett-og-objektdata.atlas.vegvesen.no/generisk/ . Vi har valgt "Vegnettsrapport (V1)" og latt alternativene for Kontraktsområde og Fylke være tomme, men har valgt Holmestrand kommune og datoen 2020-12-31. Knappen "Hent data" er nå aktiv, og kan brukes til å laste ned vegnettsrapporten.
Ferdig utfylt skjema for Holmestrand kommune per nyttår 2020, du er nå klar til å laste ned vegnettrapporten.

Last ned ved å klikke den blå knappen «Hent data». Hvis knappen er grå (dvs inaktiv) betyr det at du må se over valgene en gang til. Knappen byttes ut med beskjeden «kjører» og hvor lang tid det har gått til nå. Etter et par minutters venting er rapporten klar, og telleverket byttes ut med dialog for nedlasting:

Skjermdump, slik det ser ut når rapporten er klar til nedlasting. Telleverk byttes ut med overskriften "Rapporten er klart til nedlasting" og en blå knapp for å laste ned. En rød knapp tilbyr alternativet "nytt søk".
Slik ser det ut når rapporten er ferdig beregnet og klar til nedlasting.

Last ned rapporten ved å klikke på den blå knappen.

Filtrering av vegnettsrapport

Vegnettsrapporten (excel) må filtreres før den gir riktige verdier. Den har fanene «Samlet, alt vegnett» som inneholder alle vegkategorier, for både gående og syklende. I tillegg har vi egne faner for kjørende og gående for hhv «riksveg» (vegkategori E og R), fylkesveg og «andre» (vegkategoriene K, P og S). Stort sett må du alltid filtrere regnearket for å få fornuftige tall.

Her er oppskriften på «Kostra»-rapportering med utgangspunkt i fanen «Samlet, alt vegnett»

  • Kolonne E «Trafikkantgruppe»: Velg «G» (gående og syklende) eller «K), alt etter hva som passer best.
  • Filtrer vekk sideanlegg – kolonne N: KS/SA
    • Fjern verdien SA (sideanlegg), behold Blanks (vanlig veg) og KS (kryssdel).
  • Filtrer kolonnen Y «typeVeg»
    • Du skal ha med Blanks, rampe, rundkjøring, gatetun
    • TypeVeg kan ha flere verdier samtidig, for eksempel konnektering, rampe. Ta vekk de verdiene der noen av de ikke-gyldige begrepene inngår. For eksempel skal du velge vekk alternativet «rampe, Konnektering»
  • Filtrer W «adskilte løp»
    • Verdien «Mot» skal velges bort. Du skal ha med verdiene ‘Ukjent», «Nei» og «Med».
  • B «Vegkategori «Til sist filtrerer du på den vegkategorien du ønsker,

Etter filtrering summeres lengden med kolonne V «Lengde veg (m)»

Skjermdump, eksempel på filterfunksjon i Excel. TypeVeg filtreres slik at vi kun teller de riktige vegtypene.
Eksempel på hvordan «typeVeg» – filteret (kolonne Y) kan se ut. Her har vi filtrert vekk Konnektering, kombinasjonen rampe, Konnektering og Serviceveg.
Filtreringsvalg for kolonne "
Velg vekk SA fra kolonne N: KS/SA, dvs du skal ikke ha med sideanlegg. Kun kryssdel (KS) og vanlig veg (Blanks).