Skip to main content

Library for opening Nalu Scientific data files

Project description

NaluACQ

naluacq is a Rust crate for I/O with Nalu Scientific acquisitions in the GbE-compatible format.

The crate encompasses the following:

  • Reading acquisitions
  • Writing acquisitions (mainly used by naludaq_rs)
  • Parsing events from acquisitions
  • Calibration of events
  • Exporting acquisitions to other formats

Some of these features are made available in the Python (PyO3) bindings for this crate.

Structure of Acquisitions

An acquisition in the new format is a directory containing multiple files describing various aspects of the acquisition.

  • {n}.bin - binary event data file "n" (up to 500 MB) containing raw events back-to-back
  • {n}.idx - index file containing the offset and length of each event in the corresponding .bin file
  • metadata.yml - user-defined string metadata. NaluDAQ uses this to store board parameters and registers.
  • readout_metadata - more user-defined binary metadata. NaluDAQ uses this for extra information about the readout.
  • [pedestals_calibration] - optional binary file containing pedestal calibration data
  • [timing_calibration] - optional binary file containing timing calibration data
  • [adc2mv_calibration] - optional binary file containing ADC to mV calibration data

Event Storage

Events are stored in groups of 500 MB maximum known as "chunks." Each chunk is represented using two files: a .bin file which contains the raw event data and an .idx file which points to each event in the .bin file.

Bin File

Events are stored back-to-back in the .bin files as unparsed binary data. A maximum of 500 MB (at the time of writing) is allowed to be stored in a single .bin file. The rough structure is as follows:

  1. Metadata Sector
    • 8-byte header indicating file version type and sector length
    • user-defined metadata stored as raw bytes
  2. Data Sector
    • Event 1 (raw bytes)
    • Event 2 (raw bytes)
    • ...

Idx File

Because searching through the entire file for a specific event would be painfully slow, an index file is used to store the offset and length of each event in the corresponding .bin file. The index file is comprised of several 8-byte entries, each indicating the offset and length of a single event in the .bin file. A specific event can be found by reading the entry at 8 * index bytes and then reading length bytes from the .bin file starting at offset bytes.

Examples

Reading an Acquisition

use naluacq::Acquisition;

let acq = Acquisition::open("path/to/acquisition.acq").unwrap();

let idx = 0;
let raw_event = acq.get(idx).unwrap()

Parsing an Acquisitions

use naluacq::{Acquisition, Aardvarcv3Event, ParseInto};

let acq = Acquisition::open("path/to/acquisition.acq").unwrap();

let idx = 0;
let raw_event = acq.get(idx).unwrap()

let parsed_event: Aardvarcv3Event = raw_event.parse_into().unwrap();

Building the Documentation

cargo doc --open

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

naluacq-0.4.8-cp313-cp313-win_amd64.whl (522.7 kB view details)

Uploaded CPython 3.13Windows x86-64

naluacq-0.4.8-cp312-cp312-win_amd64.whl (522.7 kB view details)

Uploaded CPython 3.12Windows x86-64

naluacq-0.4.8-cp311-cp311-win_amd64.whl (522.8 kB view details)

Uploaded CPython 3.11Windows x86-64

naluacq-0.4.8-cp310-cp310-win_amd64.whl (522.8 kB view details)

Uploaded CPython 3.10Windows x86-64

naluacq-0.4.8-cp39-cp39-win_amd64.whl (523.3 kB view details)

Uploaded CPython 3.9Windows x86-64

File details

Details for the file naluacq-0.4.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: naluacq-0.4.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 522.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.0

File hashes

Hashes for naluacq-0.4.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a18532cb19394590c53ab69e4fdc7661cd9967a03b56d71f7a8c21ea0d91d768
MD5 ab3b40750c6d8f21adae048a9f18bc74
BLAKE2b-256 e8580b41eddcf1d2b4c4ee49faae080e14fb564cd652d479788774b6e4cbfbf7

See more details on using hashes here.

File details

Details for the file naluacq-0.4.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: naluacq-0.4.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 522.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.0

File hashes

Hashes for naluacq-0.4.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b26d2b280bbd44120df4e6497c7abfde7b1676f3b5687355996c0303b3aa14d9
MD5 ba294a1cd8a6e96dc24ef7cb62f7dabe
BLAKE2b-256 87e58d20a6354691719ace74fc83c6acdec8da864d051a5cc2c30362ef7f90a6

See more details on using hashes here.

File details

Details for the file naluacq-0.4.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: naluacq-0.4.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 522.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.0

File hashes

Hashes for naluacq-0.4.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 805979a2145d4c8c3d843f92cf348e5f85ea437f483223d9f5c7dfc17fbb64f3
MD5 02727b65d9b62f69fac41b4076584019
BLAKE2b-256 d2e100b0d649f82166a3edf9746d0eb2a52327cdadad209d915b96ecf85bb5e4

See more details on using hashes here.

File details

Details for the file naluacq-0.4.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: naluacq-0.4.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 522.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.0

File hashes

Hashes for naluacq-0.4.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1dd4c2b139fcf8e430044d6d0684164e1d0e68e9193d2bf956885ac72b7933a8
MD5 b1440a6390b66864b16ebfbafb6dcec3
BLAKE2b-256 04cf362545c48595b7875202d7a18d9e93129c4d430325f038b02554dc3b7b9c

See more details on using hashes here.

File details

Details for the file naluacq-0.4.8-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: naluacq-0.4.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 523.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.0

File hashes

Hashes for naluacq-0.4.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a296b7b4f01b6e950f6c256482edcfc2f3c6be8a97ea99622df17b8fb99c1eda
MD5 a45866bce70c735d73ec7fa414206219
BLAKE2b-256 b68b67a87ad76b383828c053bd384f191a192ce0a658465d1735d2b9372067c7

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