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 filemetadata.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:
- Metadata Sector
- 8-byte header indicating file version type and sector length
- user-defined metadata stored as raw bytes
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a18532cb19394590c53ab69e4fdc7661cd9967a03b56d71f7a8c21ea0d91d768
|
|
| MD5 |
ab3b40750c6d8f21adae048a9f18bc74
|
|
| BLAKE2b-256 |
e8580b41eddcf1d2b4c4ee49faae080e14fb564cd652d479788774b6e4cbfbf7
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b26d2b280bbd44120df4e6497c7abfde7b1676f3b5687355996c0303b3aa14d9
|
|
| MD5 |
ba294a1cd8a6e96dc24ef7cb62f7dabe
|
|
| BLAKE2b-256 |
87e58d20a6354691719ace74fc83c6acdec8da864d051a5cc2c30362ef7f90a6
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
805979a2145d4c8c3d843f92cf348e5f85ea437f483223d9f5c7dfc17fbb64f3
|
|
| MD5 |
02727b65d9b62f69fac41b4076584019
|
|
| BLAKE2b-256 |
d2e100b0d649f82166a3edf9746d0eb2a52327cdadad209d915b96ecf85bb5e4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dd4c2b139fcf8e430044d6d0684164e1d0e68e9193d2bf956885ac72b7933a8
|
|
| MD5 |
b1440a6390b66864b16ebfbafb6dcec3
|
|
| BLAKE2b-256 |
04cf362545c48595b7875202d7a18d9e93129c4d430325f038b02554dc3b7b9c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a296b7b4f01b6e950f6c256482edcfc2f3c6be8a97ea99622df17b8fb99c1eda
|
|
| MD5 |
a45866bce70c735d73ec7fa414206219
|
|
| BLAKE2b-256 |
b68b67a87ad76b383828c053bd384f191a192ce0a658465d1735d2b9372067c7
|