Tracking SNCF Réseau revenue trains (STC project)

By Wednesday February 10th, 2021Data, Non classé
Motrice IRIS320, équipée pour la détection de défauts (vu sur, CC-BY-SA-4.0)

During this period of forced sedentariness, here is an article that will probably make you travel, at least metaphorically! It deals with the collaboration between SNCF Réseau and Oslandia in order to automatically detect railways defects. This article has been co-written with our clients, whom we sincerely thank for their contribution!

Introduction: the origins of STC project

What is STC ?

Over time, railways get distorted: both rails of a track may undergo vertical and/or lateral movements due to train traffic and weather variations. All these distortions are called “track geometry”.

Typologie de défauts sur les voies

Typology of track defects

To prevent railways’ defects from affecting the security of train movements, SNCF Réseau regularly monitors conditions of the track geometry. It consists in measuring these distortions, such as track levelling, buckling, cant, and twist. These measurements can either be performed manually by SNCF agents, or be automatically recorded by dedicated machines.
These rounds of inspection are done in accordance with a fixed process and need to be scheduled in advance. However, scheduling the transit of a dedicated machine in a high density zone is more difficult because of the heavy traffic and train timetables.

Therefore, in order to better monitor the conditions of the track geometry and their evolution, one of the solutions consists in equipping some commercial trains with specific sensors in order to contineously monitor railway deformations. This very approach is experimented by SNCF in STC project.

First phases of the project

The STC project started in 2011 with a proof of concept (until 2013), which enabled to check the industrial interest and the technical feasibility of monitoring railways using commercial trains. Between 2014 and 2017, a conception phase led to overcome technological barriers regarding the measuring device deployed on trains, and to develop a method to analyse raw data acquired on these trains.

These analysis rules should respect the following constraints:

  • Obtaining geometry indicators that are consistent with what the railway maintainer is used to (i.e. transform accelerations into levelling, buckling, twist, and cant measures)
  • Optimising data location in a system that is specific to the railway domain

In 2017, a first version of the analysis code was built.

Oslandia’s entry to the project

However, the analysis code remained to be released. We dealt with performance issues and we had to check that the code still worked even with a huge amount of data, not to mention that an IT projet of such size generates significant technical debt. This is why Oslandia was called to join the project at that time : our Python developers’ expertise was requested to re-write the code and prepare its standardisation.

This collaboration between SNCF Réseau and Oslandia constitutes a good example of an Agile project management, where domain experts and developers work hand in hand on an industrial field, using a shared GitLab.

As an exception, in this project, GIS dimension was put backward – for railways location was already given – at the expense of data analysis.

Between signal processing and data analysis

In the first place, STC project relies on the collection of physical sensor signals. Accelerometer measurements are combined to GNSS data (Global Navigation Satellite System) and to the speed of trains, which are compiled by an odometric system, in order to be projected into a specific referential to the railway domain. This referential is composed of the following indicators: train line, train track, and kilometer marker.

Then, accelerations that are measured on the trains are processed into indicators which qualify track geometry (e.g. levelling, cant, twisting, etc.). This part of the process includes a phase of integration and of specific filterings that were patented.

Accélération, en fonction du référentiel kilométrique

Acceleration as a function of the kilometer mark

n comparison with traditional methods, STC processing stands out for its statistical validation procedure: by definition, commercial trains do not provide reference measurements. However, the compilation of a great number of train passing over an area allows to draw the profile of track geometry parameters. Finally, in the third phase, we extract what matches with geometry defects: measurements that overrun a threshold, for each day and for each area.

Signature d'un défaut, déclinée sur un ensemble de tournées

Defect’s signature, collected on a set of train visits

The fourth and last phase of the process provides a monitoring over time of these geometry defects. This monitoring allows the maintainer to organise as precisely as possible field interventions by prioritising defects which quickly evolve.

Distribution des dépassements de seuil, au cours du temps

Distribution of threshold overruns that are linked to a same defect, over time

All of these processings rely on the use of numerous Python libraries dedicated to scientific computation, such as: numpy, scipy, pandas.

STC project today

The idea developed in STC to monitor the condition of track geometries greatly attracted geometry maintainers. Indeed, this monitoring was then applied to other types of measurement data. Such data was collected from sources that were different from SNCF commercial trains: surveillance trains dedicated to high speed lines, which have more measurement cycles than the rest of the railway network (every 15 days), or the RER B commercial trains which belong to the RATP and circulate on a section of SNCF’s network.
Every one of these new measurement data has its own specificities, thus the code analysis needs to be adapted to new geometry indicators or other new constraints.

In parallel with these generalization efforts, this project is in a DataBricks framework, on a preproduction stage.
STC project’s introduction to the SNCF Réseau infrastructure is becoming more and more significant. It is likely to be an important tool for track prediction maintenance.


In the end, this project allowed Oslandia to collaborate with SNCF Réseau on a complex and industrial issue. The implementation of applied mathematics notions and the use of Python libraries for data analysis constitute a challenge that is particularly fulfilling for us developers.

If you’re interested in this subject, or if you’re faced with industrial problems involving applied mathematics and scientific computing, don’t hesitate to contact us at to discuss this fascinating topic in greater detail!