Import/Catalogue/Road import (Norway)

From OpenStreetMap Wiki
Jump to navigation Jump to search


The Norwegian Mapping Authority (Kartverket) has released two road data products: Vbase and Elveg. Both products contain data from the National Road Database (nasjonal vegdatabank, NVDB).

Both Elveg and Vbase contain the road geometry. The road geometry data of the two products are identical. However, Elveg contains some additional data about the characteristics of the road, such as speed limits, height restrictions, etc. as well as address nodes. Therefore, Elveg will be used for this import.

Further information:

  • Information (in Norwegian) about Elveg on Kartverket's website: [1]
  • Information from the National Public Road Administration (Statens vegvesen) about the National Road Database: [2]
  • For information about other imports from Kartverket, see No:Kartverket import (page in Norwegian only).

Here is a practical guide step-by-step guide for the import: No:Veileder Elveg-import.


This import serves three main goals:

  • Add missing roads to OSM
  • Increase accuracy of existing road geometry
  • Add/update OSM tags


Due to the manual nature of the import this will be a long-term project. The work is separated into municipalities. Progress is tracked and reported here: Import/Catalogue/Road import (Norway)/Progress.

Per 2018-02-09 the status of the progress is 24.4% finished, 7.1% started, 68.5% untouched municipalities

Import data


  • Data source site: [3]
  • Data license: [4]
  • Type of license: CC BY 4.0
  • Link to permission: [5]
  • OSM attribution: [6]

Import type

Since road geometry already exists in many places in Norway, this will be a manual import. Data from Elveg will be carefully integrated with existing data by updating geometry of existing roads (preserving history, relations, etc.) and transferring relevant tags. JOSM will be used for this purpose.

Data Preparation

Tagging plans

elveg2osm performs the following mapping. Some ambiguity exists, and manual intervention is required when importing. General guidelines for how to tag roads in Norway are given on No:Map Features#Norwegian roads.

OBJTYPE Objekttype Importbeskrivelse Tagging
Bilferjestrekning Bilferjestrekning Importere manglende objekter eller objekter med større nøyaktighet enn i OSM. route=ferry.

Vegnummer (VNR) tagges på samme måte som for vege, men istedenfor highway=* brukes taggen ferry=*.
Ferjekai Ferjekai Importere manglende objekter eller objekter med større nøyaktighet enn i OSM. amenity=ferry_terminal.
FrittståendeTrapp Trapp Importere manglende objekter eller objekter med større nøyaktighet enn i OSM. highway=steps.
GangSykkelvegSenterlinje Gang- og sykkelveg Importere manglende objekter eller objekter med større nøyaktighet enn i OSM. highway=cycleway.

Hvis MEDIUM=L, sett bridge=yes og layer=1.
Hvis MEDIUM=U, sett tunnel=yes og layer=-1.
Hvis MEDIUM=B, sett tunnel=building_passage.

Kommunedele Punkt (på veg) som angir hvor kommunegrensa går. Importeres ikke.
Planovergang Planovergang Importere manglende objekter eller objekter med større nøyaktighet enn i OSM. railway=level_crossing.
Veg Importere manglende objekter eller objekter med større nøyaktighet enn i OSM. VNR (vegnummer) inneholder en bokstavkode der første bokstav angir vegkategori: E europaveg, R riksveg, F fylkesveg, K kommunal veg, P privat veg, S skogsbilveg eller G gang- og sykkelveg.

Neste bokstav angir vegstatus: A anleggsveg, V eksisterende veg, T veg med midlertidig status, W midlertidig veg, S eksisterende ferjestrekning.

VNR=E V nn: highway=trunk.
VNR=R V nn: highway=trunk.
VNR=F V nn: highway=secondary. Bruk highway=primary isteden dersom det er en primær fylkesveg.
VNR=K V nn: highway=residential. Erstattes evt. med highway=unclassified, highway=tertiary eller highway=service etter hva som passer best på grunnlag av synfaring/lokalkunnskap/flyfoto.
VNR=P V nn: highway=service. Erstattes evt. med highway=residential, highway=unclassified eller highway=track etter hva som passer best på grunnlag av synfaring/lokalkunnskap/flyfoto.
VNR=S V nn: highway=service. Erstattes evt. med highway=track etter hva som passer best på grunnlag av synfaring/lokalkunnskap/flyfoto.

NB: Kolon kan være brukt etter bokstavene i VNR (eksempel: VNR=R: W: 163).

For europaveger tagger vi vegnummer slik: ref=E 6.
For riksveger og fylkesveger tagger vi vegnummer bare med tall: ref=9.
For kommunale og private veger og skogsbilveger tas vegnummer ikke med.

GATENAVN tilsvarer name=*.

VKJORFLT: Oddetall betyr kjørefelt i samme retning som way-en, partall betyr kjørefelt i motsatt retning. Eksempler:
VKJORFLT=1#2 innebærer at vegen ikke er envegskjørt.
Hvis VKJORFLT=1, sett oneway=yes.
Hvis VKJORFLT=2, snu vegens retning og sett oneway=yes.
Hvis VKJORFLT=1#3, sett lanes=2 og oneway=yes.
Hvis VKJORFLT=2#4, sett lanes=2, snu vegens retning og sett oneway=yes.
Hvis VKJORFLT=1#3#5, sett lanes=3 og oneway=yes.
Hvis VKJORFLT=2#4#6, sett lanes=3, snu vegens retning og sett oneway=yes.

NB: Det finnes andre verdier for VKJORFLT, også verdier som angir forbikjøringsfelt, kollektivfelt, svingfelt osv. Se side 9 i produktspesifikasjonen fra Kartverket.

Hvis MEDIUM=L, sett bridge=yes og layer=1.
Hvis MEDIUM=U, sett tunnel=yes og layer=-1.
Hvis MEDIUM=B, sett tunnel=building_passage.

Vegsperring Bom eller annen vegsperring Importere manglende objekter eller objekter med større nøyaktighet enn i OSM. VEGSPERRINGTYPE angir typen vegsperring. Lovlige verdier er:

Hvis VEGSPERRINGTYPE=Betongkjegle, sett barrier=yes.
Hvis VEGSPERRINGTYPE=Bilsperre, sett barrier=yes.
Hvis VEGSPERRINGTYPE=Bussluse, sett barrier=bus_trap.
Hvis VEGSPERRINGTYPE=Låst bom, sett barrier=gate.
Hvis VEGSPERRINGTYPE=New Jersey, sett barrier=jersey_barrier.
Hvis VEGSPERRINGTYPE=Rørgelender, sett barrier=yes.
Hvis VEGSPERRINGTYPE=Steinblokk, sett barrier=block.
Hvis VEGSPERRINGTYPE=Trafikkavviser, sett barrier=yes.
Hvis VEGSPERRINGTYPE=Ukjent, sett barrier=yes.

Veg under bane Veg under bane. (Steder hvor veg krysser under jernbane er registrert som frittstående enkeltpunkt knyttet til vegnettet.) Importeres ikke.

Her bør det vurderes å tagge jernbanen som bru.

Changeset tags

Changesets shall be tagged with source=Kartverket.

Data transformation

sosi2osm is used to convert the SOSI files from Kartverket to OSM format. Then elveg2osm maps the Elveg tags to the correct OSM tags as per the table above. Update: nvdb2osm now provides even more comprehensive tagging.

Data transformation results

OSM data files have been uploaded here (from elveg2osm) and here (from nvdb2osm).

The source (and processed) data files are split into municipalities. The source data are updated ten times per year.

Data merge workflow

Team approach

This is a community effort. Users will have individual responsibility for single municipalities. Only experienced mappers are encouraged to import data.

Workflow: Getting started

  1. Find a municipality in the table at Import/Catalogue/Road import (Norway)/Progress and fill out the necessary details. Update the color of the table row accordingly (see examples at the top of the table). If you want to work on a large municipality that another is working on, that might technically possible using version control systems like git or similar; ask on the mailing list.
  2. Download the latest import file for your municipality from this NVDB page.
  3. Open your import file in JOSM and download OSM data
  4. Right-click the data layer, select Info, and insert the number of ways into the progress table at Import/Catalogue/Road import (Norway)/Progress

Workflow: Actual import

Suggested workflow:

  1. Find a way you would like to work on.
  2. Copying over new roads:
    • If the road doesn't exist at all in OSM, make sure it actually exists in real life first (using local knowledge, up-to-date satellite imagery, etc.) - the Elveg data are known to contain some roads which no longer exist.
    • Copy the road over from Elveg into the OSM layer.
    • Make sure the tags are correct. In particular, correct highway=road to the correct type.
    • Use "Simplify ways". Elveg data contain many more nodes than are needed for accurate representation in OSM, so use "Simplify Ways" after setting simplify-way.max-error to 0.2 or 0.3 or thereabouts (in the Advanced Preferences).
    • When copying roads, you should not join together road segments at intersections.
    • When copying roads, you should leave the nvdb:id tag in place.
  3. Improving geometry of existing roads: Use "Improve Way Accuracy mode" in JOSM and correct OSM geometry based on the Elveg layer you have underneath. You should not use "Replace geometry". There are several reasons for this, mainly:
    • Replace Geometry disconnects all the intersections to the road you are replacing. They must be reconnected manually, which increases the chance for errors.
    • Replace Geometry doesn't work properly when the roads have relations, and messing with copying/pasting relations is probably a recipe for disaster.
  4. Improving tags of existing OSM roads: Perform a manual inspection of the Elveg tags and copy the ones you deem correct over to the corresponding OSM data. Do not mindlessly replace existing tags, see section below on conflicts.
  5. After you are completely done with a way in Elveg: Delete it from the Elveg layer and save it. This allows you to keep track of how many ways are left. When you are done for the "day", update the progress (percentage) in the progress table at Import/Catalogue/Road import (Norway)/Progress.

NOTEː The directions of the roads in Elveg do generally not match the direction of the roads in OSM. Make sure that existing directional tags are correct after import (e.g. oneway=yes, cycleway:right=lane, incline=5%).

Conflation/conflicts with existing OSM data

There are already much Norwegian road data in OSM. The OSM data may be more up-to-date or correct than Elveg (all datasets contain errors, including Elveg). If there are conflicts between existing OSM data and Elveg data, ALWAYS keep the OSM data UNLESS you know that the OSM data are wrong (local knowledge, aerial or other imagery, etc.).

Changeset size policy

Upload data in small chunks. Uploading small changesets makes it easier to revert changes.

Dedicated import accounts

The users importing the data will use separate import accounts, preferably named username_import, where username is their original username. They will be personally responsible for the quality of their imports.

Do's and dont's

  • DO NOT mindlessly copy data from Elveg and upload to OSM
  • DO NOT replace existing OSM data unless you KNOW the OSM data are incorrect/incomplete
  • DO NOT start working on this import until you have some experience with JOSM and OSM in general
  • DO come by the mailing list or forum and say "Hi" when you start something :)
  • DO ask in the mailing list or forum if you have questions, no matter how stupid they are
  • DO keep in touch with the community on the mailing list or forum
  • DO double-check everything you transfer from Elveg to OSM
  • DO have a good time! :)

Workflow for updates

The python script (Github) produces a diff file with all highways in NVDB which are missing in OSM, for example highways which have been constructed after the import. Files with missing highways for each municipality may be downloaded from this folder (subfolder "NVDB mangler"). This wiki-page contains an overview of the missing highways as well as update status: Road import (Norway)/Update.

Workflow for updating missing highways:

  • Download a file with missing highways for a given municipality from this folder (subfolder "NVDB mangler").
  • Download the existing highways in the chosen municipality to JOSM. Overpass query: "highway=* in Lillehammer".
  • Copy the highways (or a selection of them if there are more than approx. 100) to the layer with existing OSM highways.
  • Add the new highways to the To-do plugin in JOSM and step through each highway to verify and to connect the new highway to the existing road network.
  • Delete highways which should not be added (note: a few false positives are in the files).
  • Please enter the date of your upload in the table on Road import (Norway)/Update when you are done.


Any questions and answers will appear here.