Er vegen kommunal eller privat?

I vegkart kan man klikke på en veg og få opp en såkalt vegreferanse.

Vegreferanse vist i Vegkart

Vegreferanse

Her får du opp en litt i overkant kryptisk kode:  «KV 4500 H1 m713»

Den første bokstaven («K» ) forteller deg at vegen er kommunal, mens tallet 4500 er selve vegnummeret. For skogsbilveger er første bokstav «S», private veger har en «P», mens europa-, riks-, og fylkesveger har «E», «R» eller «F». Resten av koden er grundig forklart her: Nasjonalt vegreferansesystem – håndbok v830

Men hvordan kan jeg få et kart som viser hvilke veger som er kommunale og private?

Med den nye versjonen av vegkart kan du nå søke på flere ganger på samme objekt. Kombinert med egenskapsfilter kan du for eksempel søke tre ganger på objektet «vegreferanse» med filter for vegkategori lik kommunal, privat og skogsbilveg, og dette vil bli tegnet opp med ulike farger i kartet. For eksempel slik:

Vegkart-søk for å vise private v.s. kommunale veger - og skogsbilveger

Vegkart-søk for å vise private v.s. kommunale veger – og skogsbilveger

Lenke til dette søket

Visst finnes det verktøy der det er mer intuitivt og kjappere å få fram kart over kommunale versus private veger. Vi har absolutt ingen ambisjon om at vegkart skal være førstevalg til absolutt alt — noen oppgaver er og blir mer rett fram i andre verktøy, og det er slik det skal være.

Vi vil først og fremst vise at vegkart nå kan brukes på nye og mer kreative måter, med enda smartere spørringer.

Tilføyelse: Vegreferanse er på mange måter spesiell, og den eneste objekttypen som har egenskapen Vegkategori som vi kan utnytte på akkurat denne måten. Hvis vi ønsker å avgrense søk etter andre typer data til f.eks. kommunale veger eller fylkesveger må vi gjøre ting på en litt annen måte. Vi sier litt mer om dette i dette innlegget.

Hva er forbindelsen mellom ELVEG, VBASE og NVDB?

Vegnettsdataene FKB veg, Elveg og Vbase bruker alle elementet TRANSID som unik nøkkel på akkurat denne vegstrekningen. Bruken av TransID er eldre enn NVDB, men NVDB er i dag orginalkilden til både TransID (og øvrige vegnettsdata). Disse TransID’ene vedlikeholdes i NVDB under navnet Transportlenke. NVDB ID’en til et transportlenke-objekt er identisk med transID-verdien i Elveg, Vbase eller FKB veg. Dermed er det trivielt å hente data ut fra det nye NVDB-api’et.

Et transportlenke-objekt i NVDB har vegreferanse (vegnummer, parsellnummer) og meterverdier (til-fra). Vegreferanse er en av tre mulige måter å søke opp vegstrekninger i NVDB (de to andre er geometri og ID til veglenken, ref http://api.vegdata.no/verdi/vegreferanse.html  ). Vegreferanser stammer fra tiden før presis satelittnavigasjon, og er en menneskelig forståelig måte å navigere vegnettet på. Interesserte kan lese mer om dette fascinerende temaet i den utmerkede håndbok v830 – anbefalt lesning!

Det å bruke vegreferanse som koblingsnøkkel har et par ulemper: Vegnettsendringer blir ikke håndtert på en robust måte, i tillegg til at kommunenummer og vegnummer kan endres ved et pennestrøk. Men bruken av vegreferanse er veldig innarbeidet. Som «dynamisk» oppslagsnøkkel funker det helt greit. Men ønsker du systemintegrasjon med persistent koblingsnøkkel mot NVDB bør du bruke NVDB ID til objektet — eller veglenkeID og posisjon.

Eksempel fra Elveg-SOSI versjon 4.0  (Eigersund kommune, Elveg-leveranse 1.9.2013)

.KURVE 2:
..OBJTYPE VegSenterlinje
..KVALITET 60 200
..DATAFANGSTDATO 20001206
..TRANSID 145816634
..KOMM 1101
..VNR K V 100
..VPA 1 28 48
..VKJORFLT 1#2
..VFRADATO 19500101
..NØH
652134340 -1759380 8560 ...KP 1
..NØH
652134680 -1759020 8570
652134930 -1758660 8590
652135270 -1758190 8620
652135580 -1757820 8650 ...KP 1

TransID’en kan da søkes opp i NVDB slik: https://www.vegvesen.no/nvdb/api/v2/vegobjekter/539/145816634.xml

Begrepet «TransID» eksisterer for øvrig ikke lenger fra og med Sosi 4.5. I stedet brukes de generelle Sosi-mekanismene for identifikasjon – slik:

..IDENT
...LOKALID 145816634
...NAVNEROM NVDB_Transportlenker

Hvordan laste vegnett fra NVDB inn i QGIS med 6 linjer Python

I dag ble Kartverkets og Statens vegvesens skattekister åpnet, et frislipp mange har ventet på lenge. Vi hadde gleden av å presentere en ny prototype for dataleveranser av vegnett, hvor vegnettet kan hentes på GeoJSON-format gjennom en REST-basert webtjeneste: http://vegnett.vegdata.no/ Prototypen er lagt i graven

Kombinasjonen GeoJSON og REST kan gi mange muligheter i GIS-verktøy, spesielt de som har integrasjon mot språk som Python. Dette innlegget beskriver hvor enkelt og raskt det er å importere vegnettet inn klienten Quantum GIS (QGIS), som er basert på åpen kildekode.

APIet som tilbyr vegnett har foreløpig ikke mange paremetere, siden det kun er en prototype. En bruker har følgende valg:

  • Hent vegnettet innenfor hele Norge, innenfor et bestemt fylke, eller innenfor en bestemt kommune.
  • Hent vegnettet innenfor én eller flere vegkategorier: Europaveg (E), RIksveg (R), Fylkesveg (F), Kommunalveg (K), Privatveg (P), Skogsbilveg (S)

For å importere vegnettet inn i QGIS, er det ønskelig å lage en funksjon i Python som oppretter et nytt vektorlag. Funksjonen skal ha tre innparametere:

  1. Lokasjon
  2. Vegkategorier
  3. Lagnavn
def lag(sted, vegkategori, navn):
    api = 'http://vegnett.vegdata.no/nvdb/api/vegnett/' 
    uri = api+sted+'.json?kategori='+vegkategori

    lag = QgsVectorLayer(uri, navn, "ogr")
    QgsMapLayerRegistry.instance().addMapLayer(lag)

UTDATERT – denne vegnetts-prototypen eksisterer ikke lengre. Vegnettsendepunktet til NVDB api V1 kan brukes i stedet. Eksempel 

Merk at NVDB api’et V2 har fått nytt vegnett-endepunkt.

Ovenfor er den ferdige funksjonen, med 5 linjer Python-kode, pluss et mellomrom for å øke lesbarheten. De tre øverste linjene er selvforklarende.

Den nest nedeste linjen laster et vektorlag fra APIet, ved hjelp av OGR-biblioteket: http://www.qgis.org/en/docs/pyqgis_developer_cookbook/loadlayer.html

Den nederste linjen registrerer laget i QGIS sitt brukergrensesnitt: http://www.qgis.org/en/docs/pyqgis_developer_cookbook/canvas.html

Funksjonen kan kalles på følgende måte:

lag('17/19', 'ERF', 'Levanger ERF')

Koden ovenfor laster ned alle europa-, riks- og fylkesveger i Levanger kommune. Lokasjon angis ved hjelp av fylke- og kommunenummer. For en rask referanse, kan dere benytte samme liste som APIet prototypen benytter: http://vegnett.vegdata.no/js/lokasjon.js

Nedenfor er et utsnitt fra QGIS etter at koden ovenfor er kjørt.

vegnett-prototype

Med den grunnleggende funksjonen i boks, er det lett å utvide med mer avanserte spørringer etter data. Funksjonen nedenfor henter hele vegnettet i en bestemt fylke eller kommune, og oppretter samtidig ett lag for hver vegkategori.

def lag_kategorier(sted, navn):
    vegkategorier = ['e', 'r', 'f', 'k', 'p', 's']

    for kategori in vegkategorier:
        lag(sted, kategori, navn+' '+kategori)

 

Hvordan finner jeg skilt med elg og julenisser?

Hvordan kan jeg finne posisjonen til alle elg-skilt i Norge via vegatabankens API? 🙂 Hva med løpende nisse med sekk-skilt?

Se opp for elg!

Fare for elg!
@ http://www.flickr.com/photos/antoinettejanssen/7016975067/ etter CC-lisens

Skilt er relativt komplisert å finne ut av – men håndbok 050 Trafikkskilt er til god hjelp. Det er også verdt å merke seg at vi skiller mellom skiltpunkt (fundamentet, om du vil) og skiltplate (selve tegningen). Ett skiltpunkt kan ha ett eller flere skiltplater som datterobjekter.

Elgskiltet er en skiltplate der egenskapen Skiltnummer HB-050 er satt lik 146.1 – Elg. I moderne nettlesere får du adskillig hjelp med å velge lovlige blant lovlige verdier for disse feltene. Her er f.eks. søk på elgskilt i Elverum (vegkart). Tilsvarende søk i API’et:

https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/96?segmentering=true&egenskap=(5530%3D8867)&kommune=3420&inkluder=lokasjon%2Cmetadata%2Cegenskaper%2Cgeometri%2Cvegsegmenter

Hvis du tør kan du jo prøve å hente elgene direkte i nettleseren din: https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/96?segmentering=true&egenskap=(5530%3D8867)&kommune=3420&inkluder=lokasjon%2Cmetadata%2Cegenskaper%2Cgeometri%2Cvegsegmenter

… men dette vil ikke funke i alle nettlesere.

Men hvor finner vi Julenissen???

Ryktene florerer om at det er observert julenisser i datakatalogen natt til 25. desember, men dette har ikke latt seg verifisere innenfor normal arbeidstid. Vi er nødt til å konkludere med at julenisser ikke er en gyldig objekttype i datakatalogen. Men det står da beviselig et julenisseskilt i Drøbak (der julenissen bor):

Annen fare - julenisse (c) julehus.no

Annen fare – julenisse
(c) julehus.no

Etter litt detektivarbeid har vi funnet ut at denne skiltplaten har nummer 156 – Annen fare og teksten Julenisse. Og ja – som dere ser  (vegkart-søk etter julenisseskilt) finnes det bare en forekomst i NVDB

 

Trafikkmengde (ÅDT) per 2013.08.06

Det tar TID å endre innarbeide vaner og metoder. Sist uke ble vi spurt veldig pent om vi kunne lage de samme dataene som i fjor og forfjor. Rent prinsippielt burde vi kanskje tvunget alle til å hente slike data fra vegkart og/eller api‘et, men så er det noe med å revolusjonere verden i små steg, respekt for at andre enn oss kan være i tidsnød og at vi generelt liker å føle oss snille.

I hvert fall, siden vi ble spurt veldig pent laget vi et datasett med ÅDT tall for europa-, riks-, fylkes- og kommunale veger på ESRI geodatabase (gdb-format) gyldig per 6. august 2013. Det finner du her (last ned).

Tilføyelse 13.08: Vi har også konvertert disse trafikkmengedatene til det åpne formatet spatialLIte. (last ned). Eller browse mappen på vår ftp-server ftp://vegvesen.hostedftp.com/~StatensVegvesen/trafikkmengde/ 

Merk at vi har opprettet et eget attribute domain for å få menneskelig lesbare egenskapsnavn. De fleste verktøy vil automatisk bruke disse navnene (f.eks. alle ESRI produkter). Men spatialLite-dataene viser egenskapsnavnene for selve tabellene, og disse er nok ikke så veldig intuitive uten kjennskap til NVDB datakatalog. (Dette gjelder også hvis man åpner gdb-dataene i f.eks. FME). De mest relevante egenskapene er

TADT_4623: Selve ÅDT verdiene (årsdøgntrafikk). 
AR_4621: Hvilket år ÅDT-tallet er beregnet for.
ALNGX_4624: Andel lange (>5.6m) kjøretøy, i prosent.

Tallverdiene i egenskapsnavnet er ID til denne egenskapen i NVDB datakatalog. Hva dette betyr kan du slå opp i api’et, f.eks. slik: https://www.vegvesen.no/nvdb/api/datakatalog/egenskapstype/4623 . Hver  objekttype har sitt sett med egenskaper, hvilke som gjelder for trafikkmengde kan du finne ut her https://www.vegvesen.no/nvdb/api/datakatalog/objekttyper/540. Eventuelt kan du finne de samme kodene i den offisielle datakatlogen (java-program).

Merk også at dette datasettet kun inkluderer de strekningene på ERFK-vegnettet som har trafikkdata (per 6. august 2013). Du får altså ikke et komplett vegnett ved å laste ned disse dataene.

Bruk av dataene skjer (som alltid) etter Norsk lisens for offentlige data.

 

Hvor finner jeg vegnettsdata til navigasjon?

Nå også på spatialLite – format 🙂 

ftp://vegvesen.hostedftp.com/~StatensVegvesen/vegnett/

Det fremgår av filnavnet når data sist ble oppdatert. Dette skjer 6-10 ganger årlig, gjerne samtidig med Elveg-leveransen.

Data om vegnettet — til f.eks. navigasjonsformål — frigis av Kartverket og Statens Vegvesen den 1. oktober 27. september 2013. Hvorfor akkurat 1/10 27/9? Fordi frigivelsen er en del av revidert nasjonalbudsjett (vedtatt i mai), og det gjelder fra 1/10.

Tilføyelse: Kartverket og Vegvesenet markerer frislipp av kartdata (inkludert vegnett) den 27/9, derfor åpnet vi tilgangen litt før.

I Statens Vegvesen ønsker vi selvsagt å servere vegnettsdata ut gjennom NVDB api‘et, åpent og fritt tilgjengelig for alle. Dette er en smule mer interessant — og komplekst — enn å servere objekter som finnes langs vegen, slik dagens api gjør. Slikt som fartsgrenser, bomstasjoner og sånn. Vi jobber med saken, men vil ikke ha noe ferdig til 1/10.

Imidlertid er det bare rett og rimelig at vi frigjør de samme dataene som vi bruker i vår egen ruteplantjeneste, på databaseformatene ESRI geodatabase og spatialLite. Dette er et fint supplement til ELVEG datasettet (SOSI format, inndelt kommunevis). Men — frem til 1/10 er var dette dessverre bare tilgjengelig for dem med rettigheter til ELVEG, d.v.s. Norge Digitalt-medlemmer og dem som har kjøpt ELVEG-tilgang.

Ruteplantjenesten er under utvikling, og dataene vi bruker frigis under forbehold om at formater og struktur kan og vil bli endret i takt med videreutvikling av tjenesten. Og vi tar forbehold om feil og intet ansvar for konsekvensene av feil — ref betingelsene i Norsk lisens for offentlige data (NLOD).

Nettverksdataene leveres som to datasett i samme geodatabase:

Databaser bilkjøring + sykkel, ESRI nettverksdatasett.

Databaser bilkjøring + sykkel, ESRI nettverksdatasett.

Der «Route» inneholder kjørbart vegnett med bil, «Route_bike» inneholder bilvegnett + gang/sykkel

Eksempel ESRI nettverksdatasett.

Eksempel ESRI nettverksdatasett.

Egenskapsdata:

Navn Forklaring Eksempel
ATTRIBUTES NVDB Attributter, Json format json:{«Rasteplass»:[{«Navn»:»Ramsund Vest»,»X»:231447.69121681788,»Y»:6577504.174785357}]}
DT_TURIST_FT Drivetime turistveg, Fra-Til 0,531499
DT_TURIST_TF Drivetime turistveg, Til-Fra 0,531499
FROM_M Start posisjon på NVDB Referanselenke 0
FROM_Z Z verdi start lenke 6,83
FromNodeID NodeID i ruteplandatasettet 1828553
FT_BOM_LIT Bomkostnad Liten bil. Fra-Til 0
FT_BOM_STO Bomkostnad Stor bil, Fra-Til 0
FT_Fart Skiltet hastighet, Fra-Til (-1: manglende verdi) -1
FT_MINUTES Beregnet kjøretid for å passere lenken, Fra-Til(minutter) 0,531499
FYLKE_ID Fylkes Nr 7
GATENAVN Gatenavn ( ERF veger overstyrer gatenavn utenfor vegarm/rampe) Fv1005
HIERARCHY Veg Hierarki (1: 2: 3: 4:, Se nedenfor) 2
IsBikeRoad Angir om lenke er Gang/Sykkle (utfra vegstatus) 1: Gang/Sykkel 1
Medium Medium fra sosi
METER_ORG Elveg atributt, angir lengde 354,332847
OBJECT_ID ArcGIS 686103
ONEWAY N: Ingen, B: Begge, FT: Fra-Til, TF: Til-Fra B
RoadClass For network analyst (1:, 2: 3: 4: 5: 6:, Se nedenfor) 4
ROUTEID NVDB Referanse lenke ID 1828550
SHAPE ArcGIS Polyline Z
SHAPE_Length ArcGIS 354,332847
SPECIALVEG Angir om det er, Turist, Ferge, ATK strekning [FERGE]
SPERRING 0: ikke sperret, -1: Vegsperring -1
TF_BOM_LIT Bomkostnad Liten bil. Til-Fra 0
TF_BOM_STO Bomkostnad Stor bil, Til-Fra 0
TF_Fart Skiltet hastighet, Til-Fra (-1: manglende verdi) -1
TF_MINUTES Beregnet kjøretid for å passere lenken, Til-Fra(minutter) 0,531499
TO_M Slutt posisjon på NVDB Referanselenke 1
TO_Z Z verdi slutt lenke 6,83
ToNodeID NodeID i ruteplandatasettet 1741699
URL URL til infosider. Ferge og turistveg http://dit.websrv02.reiseinfo.no/fellespIISStaticTables/ruter/t/07-230.htm
VEGID VegID {F1005}
VEGNUMMER Vegnr 1005
VEGTYPE Vegtype F

 

Hierakier

1:
E ,R, Primære fylkesveger, Riksveger fra 2010,Stamveger 2009
2:
Øvrige Fylkesveger, KV
3:
PV,SV

Drivetime

driveTime = ((Length / 1000) / SpeedLimit * 60.0) * k;

k: (faktor)
Ev: 1.15
Rv: 1.15
Primär Fv, Riksveg fra 2010, Stamveg 2009: 1.22
Annen Fv: 1.25
Kv: 1.46
Pv: 1.47
Sv: 1.0, men fart satt till 15km/h

Fergestrekninger har fart satt til 15km/h

På Kommunal og Privat veg er fart begrenset til maksimalt 60km/h
Dersom fart mangler i NVDB settes den til 50km/h

Dersom det er en fjellovergang som er «spesialhåndtert» for å unngå at denne foretrekkes, så leggs denne ekstratiden fra denne på kjøretidne (normalt 5-20 minutter ekstra).

RoadType Esri:

// The network edge is of an unknown road classification.
esriRCUnknown = 0,
// The network edge represents a surface street.
esriRCStreet = 1,
// The network edge represents a highway.
esriRCHighway = 2,
// The network edge represents a highway ramp.
esriRCRamp = 3,
// The network edge represents a ferry crossing.
esriRCFerry = 4,
// The network edge is part of a roundabout intersection.
esriRCRoundabout = 5,
// The network edge represents a major road.
esriRCMajorRoad = 6,

Mer raffinerte søk i vegkart

Siden mandag har man kunnet gjøre litt mer raffinerte søk i vegkart. Ta for eksempel dette spørsmålet:

Jeg lurer på om det finnes et komplett kart over veistrekninger i Norge der regelen «forbudt for gående og syklende» gjelder?

I NVDB har vi ikke data om det er forbudt å gå eller sykle på en strekning – men vi har masse skiltinformasjon. Innenfor dette søket har vi for eksempel 589 skiltplater (antallet kan variere litt i din nettleser pga ulik størrelse på kartflaten; nettleservindu har som regel ulik størrelse på ulike skjermer). 

Skiltplater nær Puddefjordsbrua i Bergen

Alle skiltplater nær Puddefjordsbrua i Bergen.

Men det var «forbudt for gående og syklende» vi ville ha. Da legger vi til et egenskapsfilter:

Klikk plusstegnet for å legge til egenskapsfilter. Mouseover er til god hjelp

Klikk plusstegnet for å legge til egenskapsfilter.

Her får en liste med egenskaper, men vi kan også begynne å skrive direkte i feltet. Vakker bruk av autofullfør!

Autocomplete gjør det enklere å velge egenskapen det skal filtreres på.

Vi velger «Skiltnummer HB-050» (HB står for håndbok 050, som finnes her). I neste rute velger vi likhetstegn.

Velg operator. Hva slags operator som er mulig å velge varierer ut fra hva som er mulig på denne egenskapstypen.

I siste rute velger vi 306.8 – Forbudt for syklende. Igjen gjør vi god bruk av autofullfør:

egenskapsfilter-skiltplate-skiltnummer_v2

Vips så ser vi at det finnes fem  «Forbudt for gående og syklende» – skilt nær Puddefjordsbrua.

Vegkart-søk, skilt med forbudt for gående og syklende nær Puddefjordsbrua.

Vegkart-søk, skilt med forbudt for gående og syklende nær Puddefjordsbrua.

Det vriene her er selvsagt å finne ut hvilke kombinasjoner av egenskaper og verdier som gir svaret på det man lurer på. Dette er ikke alltid like selvforklarende: Noen objekttyper (som skilt!) har et komplisert sett med egenskaper, mens andre  er vesentlig enklere.

I tillegg må man kanskje bruke resultatet fra flere søk for å få et komplett bilde. For eksempel har vi registrert 15 skiltplater av typen 306.6 Forbudt for syklende og 28 av typen Forbudt for gående og syklende på motorveg og motortrafikkveg i Norge.

Bruk av vegkart: Finn stigning på en strekning (kurvatur – stigning)

Jeg trenger en bekreftelse på stignings% / grad på noen veier som benyttes. Dette gjelder FV651 fra Tuddal sentrum mot Rjukan (vinterstengt) i Telemark og RV 55 fra Fortun opp på Sognefjellet i Sogn og Fjordane.

Åpne vegkart, Zoom inn på telemark og Tuddal-Rjukan, og begynn å skrive «stigning» i søkefeltet. Her får du god hjelp av ordforslag til å finne riktig søkeord (  «Kurvatur / stigning»).

soekefelt_vegkart_kurvatur_stigning

Føy til FV651 og trykk søk. For vårt kartutsnitt (lenke) får vi 1169 treff. Merk at kun de 200 første treffene vises i kartet. Grunnen er at eldre nettlesere ikke takler nedlasting og tegning av stort flere objekter samtidig. Derfor skriver vi også teksten  (200 av 1169 treff) i trefflisten.

Kurvatur, stigning for FV651 mellom Rjukan og E134.

Kurvatur, stigning for FV651 mellom Rjukan og E134.

Hvis vi laster ned data til excel eller CSV får vi med alle 1169 treffene:

Nedlasting til excel (xsls eller csv fil)

Nedlasting til excel: Klikk teksten «kurvatur – stigning».

Eller vi kan zoome inn på den delen av ruta vi synes er mest spennende og klikke på strekningen:

Stigning for kurvene ned mot Rjukan, FV651.

Vi zoomer inn på hårnålsvingene ned mot Rjukan og klikker på den strekningen vi er interessert i.

Tilsvarende søk for FV55 Fortun – Sognefjell: Lenke

Stigningstall for FV 55 Fortun - Sognefjell

Stigning for FV 55 Fortun – Sognefjell