You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All notable changes to **turn_by_turn** will be documented in this file.
4
+
5
+
#### v1.0.0 – 2025-10-27
6
+
7
+
This is the first major release of `turn_by_turn`, marking the transition from a pre-1.0 version to a stable API.
8
+
This release includes introduces some small breaking changes to the API, mainly the removal of the `date` attribute from the `TbtData` dataclass, as it was not consistently populated across all datatypes and readers.
9
+
Instead a new attribute `meta` has been added
10
+
which is a dictionary to hold any additional metadata that might be relevant for a specific datatype or reader in the future,
11
+
or can be used to store user-defined metadata,
12
+
but the entries should not be relied upon to be present across all datatypes or readers.
13
+
14
+
Some common meta-entries are:
15
+
16
+
-`date`: The date and time of the measurement, if available from the file.
17
+
-`file`: The path to the file the data was loaded from.
18
+
-`source_datatype`: The datatype the data was loaded from, e.g. `lhc`, `sps`, `doros`, etc.
19
+
-`comment`: Any comment on the measurement.
20
+
21
+
**Changed:**
22
+
23
+
- Removed the `date` attribute from the `TbtData` dataclass.
24
+
- Reordered the parameters of the `TbtData` dataclass to have `matrices`, `nturns` first, as required attributes, then optinally `bunch_ids`, and `meta`.
25
+
- Added a `meta` attribute to the `TbtData` dataclass to hold additional metadata as a dictionary.
26
+
- Updated all readers to populate the `meta` attribute with relevant metadata where available.
27
+
- Restructured the `iota` module. This should be mostly transparent to the user, unless they were using internal functions or classes from the `iota` module directly.
28
+
- Added a test for `esrf` datatype reading.
29
+
30
+
31
+
#### v0.9.1 – 2025-07-10
32
+
33
+
This patch release fixes the reading of SPS files after the technical stop in 2025, during which the format seems to have been changed. The array `MonPlanes` in the SDDS file, which before contained `1` if the BPM was vertical and `0` if it was horizontal switched to using `3` for vertical and `0` for horizontal BPMs.
34
+
The current implementation now tries to determine the BPM plane not from this array, but from the ‘.H’ and ‘.V’ at the end of the BPM name in the file. Only if this ending is not present — you are able to deactivate it in the writer as this ending is also not present in the SPS model — it will first be checked if `3`s are present in the array and then the new format used, otherwise it will be checked if `0`s are in the array and then the new format used.
35
+
Otherwise the reader will raise an informative error.
36
+
If you only have vertical BPMs in the old format or only horizontal BPMs in the new format (i.e. your `MonPlanes` array will consist only of `1`s) this will also cause the reader to not be able to determine the format and raise an error.
37
+
38
+
#### v0.9.0 – 2025-07-09
39
+
40
+
Release `0.9.0` adds functionality for the loading of tracking simulation data from an `xtrack.Line`. A specific tracking setup and the use of `ParticleMonitor`s is necessary.
41
+
This version introduces a new top-level function, `convert`, to handle data that already lives in-memory: the result of an `xtrack.Line` tracking and potentially data from `MAD_NG`, for now.
42
+
43
+
**Added:**
44
+
45
+
- A new module, `turn_by_turn.xtrack_line`, to handle loading data from an `xtrack.Line` after tracking. See the documentation for details.
46
+
- A new function, `turn_by_turn.convert`, similar to `turn_by_turn.read` but to handle in-memory data.
47
+
48
+
#### v0.8.0 – 2025-01-08
49
+
50
+
In release 0.8.0:
51
+
Added support for converting MAD-NG tracking results into turn-by-turn (“TBT”) form.
52
+
53
+
#### v0.7.2 – 2024-10-11
54
+
55
+
This patch release enables the capability to read also the oscillation data from DOROS and the means to switch between positions and oscillations data.
56
+
57
+
**Added:**
58
+
59
+
-`doros_oscillations`: Read/write data into the oscillations attributes of the doros-hdf5 file.
60
+
-`doros_positions`: Read/write data into the positions attributes of the doros-hdf5 file.
61
+
- The original `doros` datatype defaults now to `oscillations`.
62
+
63
+
#### v0.7.1 – 2024-10-02
64
+
65
+
In this patch release, the DOROS reader has been updated to handle files that have more entries on the root level than BPMs and `METADATA`.
66
+
67
+
**Changed:**
68
+
69
+
- Identifying BPMs in DOROS data by having the `"nbOrbitSamplesRead"` entry.
70
+
71
+
#### v0.7.0 – 2024-08-20
72
+
73
+
In this release, a reader and writer for DOROS BPMs in `hdf5` format has been added.
74
+
75
+
**Changed:**
76
+
77
+
- Added DOROS `hdf5` reader/writer
78
+
- Clean-up of the Documentation
79
+
80
+
#### v0.6.0 – 2023-12-01
81
+
82
+
Release `0.6.0` adds to the SPS-module the possibility to remove the trailing planes (.H/.V) from the BPM names upon reading, and adding them back on writing. Both are enabled by default.
83
+
This allows compatibility with the MAD-X models.
84
+
85
+
**Added:**
86
+
87
+
- sps-reader: `remove_trailing_bpm_plane` removes the trailing plane-suffixes (.H/.V) from the BPM names, if present
88
+
- sps-writer: `add_trailing_bpm_plane` adds plane-suffixes (.H/.V) to the BPM names, if not already present
89
+
Fixed:
90
+
- ascii-reader: returns `TbtData`-object instead of the individual parts for one.
91
+
92
+
#### v0.5.0 – 2023-06-05
93
+
94
+
Release `0.5.0` adds functionality for the loading of tracking simulation data in the `trackone` module.
95
+
Important: With this release the minimum supported Python version is upped to 3.8
96
+
97
+
**Added:**
98
+
99
+
- A new class, `TrackingData`, was added to `turn_by_turn.structures` which is similar to `TransverseData` but holds all 8 dimensions (`X`, `PX`, `Y`, `PY`, `T`, `PT`, `S`, `E`).
100
+
- The `read_tbt` function in `turn_by_turn.trackone` has a new boolean argument, `is_tracking_data`, to specify data should be loaded with this new class. Default behavior is unchanged.
101
+
- The `numpy_to_tbt` function in `turn_by_turn.utils`, which handles the loading, has a `dtype` argument to specify the datatype to load into. Default behavior is unchanged.
102
+
- The `generate_average_tbtdata` function in `turn_by_turn.utils` handles the new class.
103
+
Fixed:
104
+
- The `fieldnames` method in `TransverseData` and `TrackingData` is now a `classmethod` and is properly called.
105
+
106
+
#### v0.4.2 – 2022-09-21
107
+
108
+
A patch release, that now allows the ASCII module to be accessed directly from the main read/write functionality.
109
+
110
+
#### v0.4.1 – 2022-09-21
111
+
112
+
This is a bugfix release.
113
+
114
+
**Fixed:**
115
+
116
+
- Less strict checking for ASCII-File format (only a `#` in the first line is now required)
<!-- [](https://github.com/pylhc/turn_by_turn/) -->
0 commit comments