Metadata-Version: 2.1
Name: adc64format
Version: 0.1.2
Summary: A python library to parse ADC64-formatted files
Author-email: Peter Madigan <pmadigan@berkeley.edu>, Livio Calivers <livio.calivers@unibe.ch>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: h5py
Requires-Dist: tqdm

adc64format
-----------

This is a script and library to help interfact with the ADC64 format.

To install::

    pip install adc64format

## mpd format (new)
To use interactively or within another python codebase::

    from adc64format import mpd_parse_chunk, mpd_parse_run_start, MPDReader

    input_file = adc64format.MPDReader(input_filename,n_adcs)
    input_file.open()

    # Read run info
    _, nbytes_runinfo, runinfo = adc64format.mpd_parse_run_start(input_file.stream)
    # use the first file for the event reference
    _, chunk_size, test_event = adc64format.mpd_parse_chunk(input_file.stream)
    
    events = input_file.next(batch_size)
    print(events.keys())
    

## adc64 format (old)

To dump the contents of a single ADC64 file to an HDF5 format::

    adc64_to_hdf5.py <input ADC64 file>.data <output HDF5 file>.h5

To use interactively or within another python codebase::

    from adc64format import dtypes, skip_chunks, parse_chunk, ADC64Reader

    # Option 1: Parse a single event from an ordinary file object
    with open('<ADC64 file>.data', 'rb') as f:

        # Load the first event
        chunk = parse_chunk(f)

        # Look at chunk data (as numpy arrays)
        for key in dtypes:
            print(chunk[key])

        # Skip N events
        n = 100
        skip_chunks(f, n)
        chunk = parse_chunk(f)


    # Option 2: Parse events from multiple files and align by timestamp
    with ADC64Reader('<ADC 64 file from ADC 0>.data', '<ADC 64 file from ADC 1>.data', ...) as reader:
        batch_size = 10 # how many events to load on each iteration
        events = reader.next(batch_size)
       
        # get matched events between multiple files
        events_file0, events_file1, ... = events

        # Look at data
        for key in dtypes:
            print(events_file0[key])
