AltoAdige - Südtirol/SASA Bus Stops Import

From OpenStreetMap Wiki
Jump to navigation Jump to search


Import of bus stops from the dataset. These are bus stops served by the SASA operated bus network in South Tyrol, Italy.


SASA is an operator of public transport in South Tyrol. SASA operates city bus lines in the cities Bolzano/Bozen and Merano/Meran, as well as some regional bus lines to the surrounding towns.

Recently, SASA published some of its data as “quasi open data” (CC-BY-NC) at This includes list of bus stops for the lines they operate on. The data contains location, stop name, serviced lines and some information about facilities at the bus stop (benches, shelter).

We would like to use the list to complete OpenStreetMaps data about bus stops in this region. A special permission for importing this data into OpenStreetMap has already been arranged and confirmed.


After several discussions, the import was approved and finally done on October 9, 2013.

Import Data


SASA started its open-data website in early 2013. Shortly after that, the OSM community began to get interested in the data because of its richness and completeness. Unfortunately, because of the relatively restrictive original data license (CC-3.0-BY-SA-NC), we had to negotiate a special permission to import the data.

Data source site:
Data license: Special permission to use the bus stop data for OpenStreetMap (data donation).[1]
Attribution: SASA SpA-AG |
Contact: open[at]sasabz[dot]it
ODbL Compliance verified: Yes


The original bus-stops data set contains a large variety of fields, of which only a few are of interest for OSM: the (localized) names, available amenities at the stop (shelter, bench), a list of serviced bus routes and the reference number.

Comparison With OSM Data

The following table compares the dataset with the bus stops in OSM (that lie in a 100m buffer) as of 2013-10-01: OSM
total 888 376
named 888 187
named and localized 888 74
shelter 307 67
bench 108 21
shelter & bench 0 19

Import Type

This is a manual one-time-import. JOSM will be used for checking, validation, conflation and upload of the data.

Data Preparation

Data Reduction & Simplification

Only data fields that contain meaningful properties of the bus stops will be imported.

Tagging Plans

The following tags are used for the imported bus stops:

OSM tag Description
name=* The name of the bus stop
name:de=* German name of bus stop
name:it=* Italian name of bus stop
shelter=yes only if the stop offers some kind of shelter
bench=yes only if the stop has benches[1]
ref:sasa=* internal reference number of the stop given and used by SASA[2]
route_ref=* list of bus lines that perform service on the respective stop [3]
  1. unfortunately, the data set does only provide information about benches on bus stops without shelter
  2. it's probably best to not import this information, as it is hard to maintain by mappers and only of very limited use for data-consumers.
  3. having a source tag on each stop is probably not very useful, as the origin of the data is already visible in the changeset's tags.

Data Transformation

The necessary data transformations of the raw data is conducted in two steps:

  1. the two cvs-tables is imported into a temporary sqlite3 database
  2. a simple sql-query strips all unnecessary columns and does some data transformation (i.e. splitting the name into its language parts)
  3. the final conversion will be done by hand in JOSM

Special care will be taken on how we treat the multilingual bus stop names: The original data has only one name field that contains both the Italian and German names in the form "<Italian name> - <German name>". The respective localized names name:it=* and name:de=* are automatically extracted from this string. For name=* we will use the concatenated name "<Italian name> - <German name>" in cities and towns where Italian is dominant, and "<German name> - <Italian name>" will be used elsewhere (as outlined here). For bus stops with names that are the same in both languages, the name will be in the non-concatenated form.

Furthermore, as the original dataset isn't very consistent with capitalization of (Italian) names and the use of abbreviations (Str. instead of Straße, v.le instead of viale, etc.) there is a separate post-processing step: This makes the names harmonize better with the naming convention of nearby OSM objects (such as street names, etc.).

Data Transformation Results

A preview of the ready-to-be-merged-into-OSM data is found here:

Changeset Tags

We will use the following changeset tags:

A dedicated user, SASA bus stops import was created for this import.

Data Merge Workflow

Team Approach

If any volunteers come by we can easily split the import over multiple shoulders. Otherwise I'll be doing it by myself.


This import has been announced on @talk-it-southtyrol on 2013-09-23, as a diary post on 2013-09-25 and on @imports on 2013-09-27.

Workflow & Conflation

An automated script filters out bus stops that are not in the vicinity of already existing stops. The used buffer size was 100m – samples showed that this is a safe limit. The resulting subset of stops can be uploaded right away. The rest has to be conflated manually. This was split by administrative boundaries (communes) and is going to be conflated manually with JOSM.

The resulting osm files can be found on Github.


file #stops import status
outside_buffer_100m.osm 427 imported18261329 (Visualise)
inside_buffer_100m.osm 461 not imported, see individual conflate_*.osm files
conflate_Algund.osm 16 imported18265485 (Visualise)
conflate_Andrian.osm 2 imported18265554 (Visualise)
conflate_Bozen.osm 186 imported18261567 (Visualise)
conflate_Branzoll.osm 8 imported18265647 (Visualise)
conflate_Burgstall.osm 11 imported18265692 (Visualise)
conflate_Karneid.osm 19 imported18265778 (Visualise)
conflate_Kuens.osm 3 imported18265819 (Visualise)
conflate_Lana.osm 6 imported18265870 (Visualise)
conflate_Leifers.osm 38 imported18266028 (Visualise)
conflate_Marling.osm 11 imported18271642 (Visualise)
conflate_Meran.osm 85 imported18272316 (Visualise)
conflate_Nals.osm 13 imported18271781 (Visualise)
conflate_Pfatten.osm 6 imported18266088 (Visualise)
conflate_Riffian.osm 1 imported18271824 (Visualise)
conflate_Schenna.osm 1 imported18271824 (Visualise)
conflate_Terlan.osm 16 imported18271898 (Visualise)
conflate_Tirol.osm 20 imported18271975 (Visualise)
conflate_Tisens.osm 5 imported18272014 (Visualise)
conflate_Toell.osm 13 imported18272092 (Visualise)
conflate_Tscherms.osm 6 imported18272119 (Visualise)