# Determining the Optimal Positions of Infill Balise Groups for ERTMS/ETCS Level 1 Applications
## 2 Materials and Methods
### Output  
The most important outputs of the program are the positions of the optimized infill balise group locations and the corresponding weighted additional run time. To better understand the results and enable further use of them, different output files can be generated:  
* input parameters and key results as a JSON file;
* two-dimensional plot of the trajectories (optional);
* three-dimensional plot of the weighted additional runtime over all possible distances (optional);
* 360 single frames of the three-dimensional plot to generate an animation (optional). The JSON file contains all the input parameters and appended the positions of the infill balise groups and the additional runtime, cf. Table 3. This enables an easy comparison of different scenarios, even at a later point in time. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Category** & **Parameter** & **Unit** & **Variable** & **Data Type** \\ \hline \multirow{4}{*}{Track} & Line Speed & \([\text{km}\cdot\text{h}^{-1}]\) & line\_speed & integer \\  & Release Speed & \([\text{km}\cdot\text{h}^{-1}]\) & release\_speed & integer \\  & Gradient & \([\%]\) & gradient & integer/float \\  & Balises & \([\cdot]\) & balises & integer \\  & Balise Group Distance & \([\text{m}]\) & balise\_group\_distance & integer \\  & Balise Positions & \([\text{m}]\) & balise\_positions & list of integers \\ \hline \multirow{4}{*}{Train} & Speed & \([\text{km}\cdot\text{h}^{-1}]\) & speed & integer \\  & Acceleration & \([\text{m}\cdot\text{s}^{-2}]\) & acceleration: steps/values & object of two integer-/float-arrays \\  & Deceleration & \([\text{m}\cdot\text{s}^{-2}]\) & deceleration: steps/values & object of two integer-/float-arrays \\  & Rotating Masses & \([\%]\) & rotating\_masses & integer/float \\  & Indication Point & \([\text{m}]\) & indication\_point & integer \\  & Minimum Cruising Time & \([\text{s}]\) & min\_cruise\_time & integer/float \\  & Processing Time & \([\text{s}]\) & processing\_time & integer/float \\ \hline \multirow{4}{*}{Tech} & Steps & \([\text{m}]\) & steps & integer \\  & Weighting & \([-]\) & weighting & string \(\in\) [’TIME’; ”DISTANCE’; ”EQUAL’] \\ \cline{1-1}  & Plot Trajectories & \([-]\) & plot\_trajectories & Boolean \\ \cline{1-1}  & Plot 3d contour & \([-]\) & plot\_3d & Boolean \\ \cline{1-1}  & Rotate 3d contour & \([-]\) & rotate\_plot & Boolean \\ \cline{1-1}  & Locale & \([-]\) & locale & string \(\in\) [’en’; “de’] \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Input parameters of the algorithm’s implementation in Python. As one of the graphical outputs, the calculated trajectories overlaid with the optimal positions of the infill balise groups accompanied by key parameters and results can be plotted as shown in Figure 4. In the example provided, three infill balise groups were placed, leading to four different trajectories. The green trajectory serves as the baseline where the train travels at the maximum allowed speed without the need to brake because the block section ahead is free and the main signal at position \(0\,\mathrm{m}\) is open. This trajectory is only possible if the updated MA containing the information of the open main signal is available at the farthest infill balise group (IF_1) at position \(-1500\,\mathrm{m}\) (meaning \(1.5\,\mathrm{km}\) ahead of the main signal) when the train passes over it. If this information is not available at that time, the ETCS On-board Unit (OBU) will invite the driver to apply the brakes starting at the IP, situated at position \(-1400\,\mathrm{m}\). The next possible infill (IF_2) is found at position \(-665\,\mathrm{m}\) and would allow the yellow trajectory. One can distinguish the processing time after passing the infill balise group, during which the OBU processes the information received but has not yet displayed the new MA to the train driver, so the braking continues. After that, the cruising time of constant speed while transitioning from braking to acceleration is visible as the horizontal part of the trajectory.