Source code for convnwb.timestamps.utils
"""Utility functions for working with samples and timestamps."""
import numpy as np
###################################################################################################
###################################################################################################
[docs]def convert_samples_to_time(n_samples, fs, output='minutes'):
"""Convert a number of samples to corresponding time length.
Parameters
----------
n_samples : in
Number of samples.
fs : int
Sampling rate.
output : {'minutes', 'seconds'}
The output unit.
Returns
-------
float
Time value, in unit of `output`.
"""
assert output in ['minutes', 'seconds'], "Output format not understood."
n_seconds = n_samples / fs
if output == 'minutes':
return n_seconds / 60
else:
return n_seconds
[docs]def create_timestamps_from_samples(samples, fs, offset=0):
"""Create a set of timestamps for a set of samples.
Parameters
----------
samples : int or 1d array
Number of samples to create timestamps for.
fs : int
Sampling rate.
offset : float, optional
Time value to offset time values by.
Returns
-------
timestamps : 1d array
Timestamps, in seconds.
"""
if isinstance(samples, (np.ndarray, list)):
n_samples = len(samples)
offset = offset + samples[0] / fs
else:
n_samples = samples
return offset + np.arange(0, n_samples / fs, 1/fs)