**BTP** is written in **C++** using the
**Qt5.1**
programming environment. The Program is based on
**OpenStreetMap**
(OSM) data and the Digital Elevation Model (DEM)
**SRTM3**
data of the NASA.

The core of the BTP consist of a custom rendering engine, a special routing algorithm, called the
**STRONG algorithm**,
and a power analysis module.

The program is able to load OSM and SRTM3 data and render a topography map including features like contour lines and hill shading.

While the ordinary shortest path is found by the Dijkstra routing algorithm, the STRONG algorithm is the most important feature of **BTP**. It is correlated to the training track **STRONG**. The STRONG algorithm is designed to find the track with maximized altitude gain [=hight meters (Hm)] under given boundary conditions. This means for example the track with maximized hight meters on a given length.
BTP also offers a modified Dijkstra algorithm routing the flattest track (i.e. least altitude gain) instead of shortest one between two points.

The
**power analysis module**
is calculating the expected average power output of the cyclist at an user defined riders profile. This includes a heap of configurable parameters to achieve accurate results. Parameters are e.g. the cyclists weight, aerodynamic drag (c_{w}), rolling friction, preferences to change from “Oberlenker” to “Unterlenker”, max. power target, …, temperature, air pressure, wind velocity & direction. Additionally acceleration, breaking and sharp turns are considered in the power analysis.

With BTP 3 the new feature of
**global climb analysis**
for a hole street network has been added to BTP. This allows to calculated hole maps with all significant climbs!