Finland:HSL/HSL bus stop import

From OpenStreetMap Wiki
Jump to navigation Jump to search

Please note that this page is still under construction!

HSL bus stop import is an import of Helsinki Regional Public Transportation Authority (HSL) public transportation stop data covering city of Helsinki in Finland. The import is currently (as of May 21th 2019) at the planning stage.


  • Update the ref=*-tag of local public transportation stops (bus, commuter train, tram and subway stops) in Helsiki area to include the "H" letter in front of the numeral identifier.
  • Import attribute data for public transportation stops from HSL data for the whole HSL-area. For example if a stop is sheltered or if a name is missing in either Finnish or Swedish.


By the end of year 2019.

Import Data


Provide links to your sources.

Data source site:
Data license:
Type of license (if applicable): CC-BY
Link to permission (if required):
OSM attribution (if required):
ODbL Compliance verified: yes

Attributes to be imported

Waiting for the final open data release for more details.

  • If a stop is sheltered or not sheltered
  • Finnish and Swedish name for stop

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

Initial import is a one-time import with the main purpose to update the existing ref-tags of Helsinki public transportation stops to within city of Helsinki include the letter H prefix and adding stop attribute data for whole HSL area stops.

JOSM will be used for entering the updated data into the OSM database.

Data Preparation

Data Reduction & Simplification

The import will target public transportation stops within the Helsinki area by updating and adding new tags to existing nodes. The import will not add, edit or remove any geometry. Only tags of matching stops are added / updated. OSM data is considered "master data". Attribute data will not be imported in conflicting cases.

Tagging Plans

Only stops with a matching ref=*-tag will be updated. Following stop types are targeted:

Stop type OSM-tags Example
Bus stops highway=bus_stop
Tram stops railway=tram_stop
Commuter train and metro stations railway=station with public_transport=station
Metro station platforms public_transport=platform with railway=platform that are parts of route=subway-relation
Metro station platform stop position public_transport=stop_position with railway=stop that are part of route=subway-relation

1. Updating the ref-tag

Public transportation stops are first validated against the source dataset. If a stop exists in the HSL source data, it's identifier is matched with the OSM ref-tag value.

Existing nodes and areas with highway=bus_stop and railway=tram_stop including a ref=*-tag with 4 digits will be updated. The letter "H" is prefixed in front of the existing 4-digit identifier.

2. Updating the attributes of stops

Attribute data is added to each stop after initial matching between the source data set and the existing OSM stops. Following tags are added only if the target OSM stop does not already have it:

  • shelter=yes if the stop is protected from the rain by a shelter
  • shelter=no if the stop is not protected from the rain by a shelter
  • name=*, name:fi=* and name:sv=* for Finnish and Swedish name for the stop.

Changeset Tags

Data Transformation

Postgres database is used for storing the HSL public transport stop data. OSM Data is downloaded via the Overpass API. A Python script is used in the transformation.

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

Step by step

  • Import HSL stop data from Helsinki to PostGIS-database.
  • Query public_transportation stops with ref=*-tags from HSL area via Overpass Turbo to .OSM XML-file.
try it yourself in overpass-turbo
// define HSL area filter with HSL member municipalities (OSM municipality)

// different public transportation stop types in HSL area

  // tram stops
  // bus stops
  // train and subway stations
  // include stop area relations

// nodes part of subway relation in HSL area.

// subway station platforms and stop positions (each subway station has two platforms with unique ref)

// output union
out body;
out meta;
  • Python scripts manipulates the .OSM file returned by Overpass Turbo and matches OSM-stops to HSL-data with ref=* value.
    • Script takes into account alterations of the ref=*-value and transforms it into 4 digit form if needed. (for example "70" to "0070")
    • Script updates OSM ref=*-value with "H"-prefix if the municipality of the matched Stop is Helsinki.
    • Script adds tag shelter=yes or shelter=no if the OSM stop does not already have shelter=*-value *and* HSL data has shelter info.
    • Script adds name=*, name:fi=* and name:sv=* if the OSM does not already have them.
  • . Upload the modified .OSM file to with JOSM.


Identify your approach to conflation here.


Add your QA plan here.

See also

The email to the Imports mailing list was sent on YYYY-MM-DD and can be found in the archives of the mailing list at [1].