Vermont road surfaces

From OpenStreetMap Wiki
Jump to: navigation, search


I'm hoping to import road surface data provided by the Vermont State government in order to assist in adding full coverage of road surface data for the state. As far as I'm aware, I'm the only OSM contributor who has added road surface tags in Vermont and I would like to use data from the State government to assist my efforts.

This import would add surface=* tags to existing OSM ways that are tagged as highway=*. No additional geometry will be added.

Import Plan Outline


  • Import road-surface data for the state of Vermont, USA.
  • Existing ways tagged as highway=* will have surface=* tags added/updated.
  • Impassible/Untraveled ways will be tagged as highway=track,surface=dirt


Be sure to list the general timeframe of your project.

Import Data


Data source site:
Data license: unknown
Type of license (if applicable): e.g. CC-BY-SA, Public Domain, Public Domain with Attribution, etc.
Link to permission (if required): e.g. link to mail list reference url -
OSM attribution (if required):
ODbL Compliance verified: yes/no

OSM Data Files

Link to your source data files that you have prepared for the import - e.g. the .osm files you have derived from the data sources.

Import Type

Identify if this is a one-time or recurring import and whether you'll be doing it with automated scripts, etc.

This will be a one-time import that will be followed by manual tagging of missing areas.

Identify what method will be used for entering the imported data into the OSM database - e.g. API, JOSM,, etc.

Question: What is the best/safest method for adding/updating tags without geometry changes?

Data Preparation

Data Reduction & Simplification

Tags will only be added to existing ways, no geometry additions or changes will be made.

Tagging Plans

The TransRoad_RDS shapefile includes a SURFACE attribute:

Attribute_Definition: Road surface type. Roads surface types are generally based on VTrans Town Highway Maps, or on regional/local review.
Attribute_Definition_Source: VGIS Road Centerline Data Standard

  • Enumerated_Domain:
    • Enumerated_Domain_Value: 1
    • Enumerated_Domain_Value_Definition: Hard surface (pavement)
  • Enumerated_Domain:
    • Enumerated_Domain_Value: 2
    • Enumerated_Domain_Value_Definition: Gravel
  • Enumerated_Domain:
    • Enumerated_Domain_Value: 3
    • Enumerated_Domain_Value_Definition: Soil or graded and drained earth
  • Enumerated_Domain:
    • Enumerated_Domain_Value: 5
    • Enumerated_Domain_Value_Definition: Unimproved/Primitive
  • Enumerated_Domain:
    • Enumerated_Domain_Value: 6
    • Enumerated_Domain_Value_Definition: Impassable or untravelled
  • Enumerated_Domain:
    • Enumerated_Domain_Value: 9
    • Enumerated_Domain_Value_Definition: Unknown surface type

Attribute_Value_Accuracy: SURFACE
Attribute_Value_Accuracy_Explanation: Roads surface types are generally based on VTrans Town Highway Maps, or on regional/local review. Little or no photo interpretation was done, but road shapes and distances were originally used to assign SURFACE codes. Some regional and local knowledge has been used to update SURFACE codes in updated datasets (see the updates listing). Legal trails and discontinued roads were all originally assigned SURFACE equals 9 (unknown). The surface types of some very short roads could not be determined from the VTrans maps, especially differentiating between gravel (2) and soil (3). Surface types for these arcs were coded 'unknown' (9), or a best judgement was made. The Town Highway Maps are being generated from the TransRoad_RDS data and require public highways to have surface code other than 9. The QA/QC process flags highways that don't comform and are corrected.

Way/Shape Matching

OSM ways are matched first by name to records in the TransRoad_RDS shapefile. The bounding box of the way is then compared to the bounding box of the record in the shapefile by adding the absolute value of the difference of each bbox side. If the difference in bounding box extent is greater than 10km the record is ignored as a potential match. Potential matches are then ordered by closest bounding box match. The best match is used as the primary value and matches that are up to twice the extent of the closest match are considered.


The OSM way 12345 has a name of "Elm St" and a bounding box (S,W,N,E) of 44.0000,-73.0001,44.0001,-73.0000.

Multiple records in the shapefile exist with a name of "ELM ST":

  • ELM ST - bounding-box difference: 125 meters, surface: #1 - Hard surface (paved)
  • ELM ST - bounding-box difference: 200 meters, surface: #1 - Hard surface (paved)
  • ELM ST - bounding-box difference: 900 meters, surface: #2 - Gravel
  • ELM ST - bounding-box difference: 255,000 meters, surface: #1 - Hard surface (paved)
  • ELM ST - bounding-box difference: 700,000 meters, surface: #1 - Hard surface (paved)

The best-fit shape has a bounding box difference of 125 meters, so only shapes with differences up to 250 meters will be considered. There are two shapes that fall into this match; since they both have the same surface (#1 - Hard surface) we will consider that the surface for this way. If there was a shape with a difference under 250 meters that had a different surface we would consider this a mixed result and not apply a tag to the way.

Tag mapping

  • 1 - Hard surface (paved) adds surface=paved if the surface is not already one of surface=asphalt, surface=asphalt, surface=concrete.
  • 2 - Gravel adds/updates-to surface=gravel
  • 3 - Soil or graded and drained earth adds/updates-to surface=dirt
  • 5 - Unimproved/Primitive adds/updates-to surface=dirt
  • 6 - Impassable or untravelled adds/updates-to surface=dirt, highway=track
  • A mixture of different 2 - Gravel, 3 - Soil or graded and drained earth, and/or 5 - Unimproved/Primitive will add the generic tag surface=unpaved if no surface=* tag is already set.

All other tags or mixtures of tags will not modify the OSM way.

Visualization of changes

The vermont-proposed-surfaces.kmz shows the changes that will be made. Grey-scale ways will be unchanged due to missing or inconclusive data. Colored ways will be tagged as described above.


Changeset Tags

Describe how you'll use changeset tags in the import.

Data Transformation

Describe the transformations you'll need to conduct, the tools you're using, and any specific configurations or code that will be used in the transformation.

The script to generate the import and visualizations lives at

Data Transformation Results

Post a link to your OSM XML files.

Data Merge Workflow

Team Approach

Describe if you'll be doing this solo or as a team.


List all factors that will be evaluated in the import.


Detail the steps you'll take during the actual import.

Information to include:

  • Step by step instructions
  • Changeset size policy
  • Revert plans


Identify your approach to conflation here.


Add your QA plan here.