Skip to main content

Read and write turn-by-turn measurement files from different particle accelerator formats.

Project description

Turn-By-Turn

Cron Testing Code Climate coverage Code Climate maintainability (percentage) GitHub last commit GitHub release

This package provides reading functionality for turn-by-turn BPM measurements data from different particle accelerators. It also provides writing functionality in the LHC's own SDDS format, through our sdds package. Files are read into a custom-made TbtData dataclass encompassing the relevant information.

Installing

Installation is easily done via pip:

pip install turn_by_turn

Example Usage

The package is imported as turn_by_turn, and exports top-level functions for reading and writing:

import turn_by_turn as tbt

# Loading a file is simple and returns a custom dataclass named TbtData
data: tbt.TbtData = tbt.read("Beam2@BunchTurn@2018_12_02@20_08_49_739.sdds", datatype="lhc")

# Easily access relevant information from the loaded data: transverse data, measurement date, 
# number of turns, bunches and IDs of the recorded bunches
first_bunch_transverse_positions: tbt.TransverseData = data.matrices[0]
measurement_date = data.date  # a datetime.datetime object

# Transverse positions are recorded as pandas DataFrames
first_bunch_x = first_bunch_transverse_positions.X.copy()
first_bunch_y = first_bunch_transverse_positions.Y.copy()

# Do any operations with these as you usually do with pandas
first_bunch_mean_x = first_bunch_x.mean()

# Average over all bunches/particles at all used BPMs from the measurement
averaged_tbt: tbt.TbtData = tbt.utils.generate_average_tbtdata(data)

# Writing out to disk (in the LHC's SDDS format) is simple too, potentially with added noise
tbt.write("path_to_output.sdds", averaged_tbt, noise=1e-5)

See the API documentation for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turn_by_turn-0.2.0.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turn_by_turn-0.2.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file turn_by_turn-0.2.0.tar.gz.

File metadata

  • Download URL: turn_by_turn-0.2.0.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for turn_by_turn-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a60d32019b8f07f1cd7352c6bd19952ac56579e436dfb3b7bd1ce9aeb987cce1
MD5 ee5cfb82e7925639581ff3914d2520c3
BLAKE2b-256 a454f4a6ae7ade7bc5bf243726ff1732dd1df974f615359dc098f19199b0d08f

See more details on using hashes here.

File details

Details for the file turn_by_turn-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: turn_by_turn-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for turn_by_turn-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ceac5577c17a0ac4b2880b5f5186d0e9279db0c309d3976b452d1eb93c3f4fe
MD5 447b56907d4714667dd902a4541bb826
BLAKE2b-256 a2d21d1a196c8be595b68ce1fc814a250516423a3599bdd8af60e2adef818854

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page