Skip to content

Releases: pylhc/turn_by_turn

Release 1.1.0

29 Oct 10:58
445318f

Choose a tag to compare

This release removes the experimental esrf module from the package, as it was both unused and out-of-date to the ESRF data format.

Release 1.0.0

28 Oct 09:41
0fdbbd1

Choose a tag to compare

This is the first major release of turn_by_turn, marking the transition from a pre-1.0 version to a stable API.
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.
Instead a new attribute meta has been added
which is a dictionary to hold any additional metadata that might be relevant for a specific datatype or reader in the future,
or can be used to store user-defined metadata,
but the entries should not be relied upon to be present across all datatypes or readers.

Some common meta-entries are:

  • date: The date and time of the measurement, if available from the file.
  • file: The path to the file the data was loaded from.
  • source_datatype: The datatype the data was loaded from, e.g. lhc, sps, doros, etc.
  • comment: Any comment on the measurement.

Changed:

  • Removed the date attribute from the TbtData dataclass.
  • Reordered the parameters of the TbtData dataclass to have matrices, nturns first, as required attributes, then optinally bunch_ids, and meta.
  • Added a meta attribute to the TbtData dataclass to hold additional metadata as a dictionary.
  • Updated all readers to populate the meta attribute with relevant metadata where available.
  • 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.

What's Changed

Full Changelog: 0.9.1...1.0.0

Release 0.9.1

10 Jul 09:49
4726ab1

Choose a tag to compare

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.

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 3s are present in the array and then the new format used, otherwise it will be checked if 0s are in the array and then the new format used. Otherwise the reader will raise an informative error.

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 1s) this will also cause the reader to not be able to determine the format and raise an error.

What's Changed

Full Changelog: 0.9.0...0.9.1

Release 0.9.0

09 Jul 15:52
a6f71aa

Choose a tag to compare

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 ParticleMonitors is necessary.

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.

Added:

  • A new module, turn_by_turn.xtrack_line, to handle loading data from an xtrack.Line after tracking. See the documentation for details.
  • A new function, turn_by_turn.convert, similar to turn_by_turn.read` but to handle in-memory data.

What's Changed

Full Changelog: 0.4.2...0.5.0

What's Changed

Full Changelog: 0.8.0...0.9.0

Release 0.8.0

08 Jan 09:53
cd27bef

Choose a tag to compare

What's Changed

Full Changelog: 0.7.2...0.8.0

Release 0.7.2

11 Oct 11:51
3163c5e

Choose a tag to compare

This patch release enables the capability to read also the oscillation data from DOROS and the means to switch between positions and oscillations data.

Added:

  • doros_oscillations: Read/write data into the oscillations attributes of the doros-hdf5 file.
  • doros_positions: Read/write data into the positions attributes of the doros-hdf5 file.
  • The original doros-datatype defaults now to oscillations.

What's Changed

  • DOROS: oscillations and positions by @JoschD in #20

Full Changelog: 0.7.1...0.7.2

Release 0.7.1

02 Oct 09:40
4fb38eb

Choose a tag to compare

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.

  • Changed:
    • Identifying BPMs in DOROS data by having the "nbOrbitSamplesRead" entry.

What's Changed

Full Changelog: 0.7.0...0.7.1

Release 0.7.0

20 Aug 15:59
f75a49c

Choose a tag to compare

In this release, a reader and writer for DOROS BPMs in hdf5 format has been added.

Changed:

  • Added DOROS hdf5 reader/writer
  • Clean-up of the Documentation

What's Changed

  • Migrate to pyproject.toml and common workflows by @fsoubelet in #17
  • Reader/writer for DOROS BPM data by @JoschD in #18

Full Changelog: 0.6.0...0.7.0

Release 0.6.0

01 Dec 09:59
843dd8b

Choose a tag to compare

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.
This allows compatibility with the MAD-X models.

Added:

  • sps-reader: remove_trailing_bpm_plane removes the trailing plane-suffixes (.H/.V) from the BPM names, if present
  • sps-writer: add_trailing_bpm_plane adds plane-suffixes (.H/.V) to the BPM names, if not already present

Fixed:

  • ascii-reader: returns TbtData-object instead of the individual parts for one.

What's Changed

  • remove trailing planes from sps data by @JoschD in #16

Full Changelog: 0.5.0...0.6.0

Release 0.5.0

05 Jun 13:57
0cdccf9

Choose a tag to compare

Release 0.5.0 adds functionality for the loading of tracking simulation data in the trackone module.

Important: With this release the minimum supported Python version is upped to 3.8

Added:

  • 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).
  • 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.
  • The numpy_to_tbt function in turn_by_turn.utils, which handles the loading, has a need argument to specify the datatype to load into. Default behavior is unchanged.
  • The generate_average_tbtdata function in turn_by_turn.utils handles the new class.

Fixed:

  • The fieldnames method in TransverseData and TrackingData is now a classmethod and is properly called.

What's Changed

Full Changelog: 0.4.2...0.5.0