Skip to content

Io

rionid.io

handle_spectrumnpz_data(filename, frequency_key='arr_0', amplitude_key='arr_1', **kwargs)

Handles simple 1D Spectrum NPZ files.

Parameters:

Name Type Description Default
filename str

Path to the .npz file.

required
frequency_key str

Key for frequency array. Default 'arr_0'.

'arr_0'
amplitude_key str

Key for amplitude array. Default 'arr_1'.

'arr_1'

Returns:

Type Description
tuple

(frequency_array, amplitude_array)

Source code in src/rionid/io.py
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def handle_spectrumnpz_data(filename, frequency_key="arr_0", amplitude_key="arr_1", **kwargs):
    """
    Handles simple 1D Spectrum NPZ files.

    Parameters
    ----------
    filename : str
        Path to the .npz file.
    frequency_key : str, optional
        Key for frequency array. Default 'arr_0'.
    amplitude_key : str, optional
        Key for amplitude array. Default 'arr_1'.

    Returns
    -------
    tuple
        (frequency_array, amplitude_array)
    """
    data = np.load(filename)
    return data[frequency_key].flatten(), data[amplitude_key]

write_arrays_to_ods(file_name, sheet_name, names, *arrays)

Writes data arrays to an OpenDocument Spreadsheet (.ods).

Parameters:

Name Type Description Default
file_name str

Output filename.

required
sheet_name str

Name of the sheet to create.

required
names list of str

List of column headers.

required
*arrays list of array-like

Variable number of arrays to write as columns.

()
Source code in src/rionid/io.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
def write_arrays_to_ods(file_name, sheet_name, names, *arrays):
    """
    Writes data arrays to an OpenDocument Spreadsheet (.ods).

    Parameters
    ----------
    file_name : str
        Output filename.
    sheet_name : str
        Name of the sheet to create.
    names : list of str
        List of column headers.
    *arrays : list of array-like
        Variable number of arrays to write as columns.
    """
    # Create the ods spreadsheet and add a sheet
    spreadsheet = ezodf.newdoc(doctype="ods", filename=file_name)
    max_len = max(len(arr) for arr in arrays)
    sheet = ezodf.Sheet(sheet_name, size=(max_len + 1, len(arrays)))
    spreadsheet.sheets += sheet

    for i, arr in enumerate(arrays):
        sheet[(0, i)].set_value(str(names[i]))
        for j in range(len(arr)):
            sheet[j + 1, i].set_value(arr[j])

    # Save the spreadsheet
    spreadsheet.save()