Data Recorder Module

class joulescope.data_recorder.DataReader[source]

Read Joulescope data from a file.

close()[source]

Close the recording file.

data_get(start, stop, increment=None, units=None, out=None)[source]

Get the samples with statistics.

Parameters:
  • start – The starting sample id (inclusive).

  • stop – The ending sample id (exclusive).

  • increment – The number of raw samples.

  • units – The units for start and stop. ‘seconds’ or None is in floating point seconds relative to the view. ‘samples’ is in stream buffer sample indices.

  • out – The optional output np.ndarray((N, STATS_FIELD_COUNT), dtype=DTYPE) to populate with the result. None (default) will construct and return a new array.

Returns:

The np.ndarray((N, STATS_FIELD_COUNT), dtype=DTYPE) data.

property duration

The data file duration, in seconds.

get_reduction(start=None, stop=None, units=None, out=None)[source]

Get the fixed reduction with statistics.

Parameters:
  • start – The starting sample identifier (inclusive).

  • stop – The ending sample identifier (exclusive).

  • units – The units for start and stop. ‘seconds’ or None is in floating point seconds relative to the view. ‘samples’ is in stream buffer sample indices.

Returns:

The The np.ndarray((N, STATS_FIELD_COUNT), dtype=DTYPE) reduction data which normally is memory mapped to the underlying data, but will be copied on rollover.

property input_sampling_frequency

The original input sampling frequency.

normalize_time_arguments(start, stop, units=None)[source]

Normalize time arguments to range.

Parameters:
  • start – The start time or samples. None gets the first sample, equivalent to self.sample_id_range[0].

  • stop – The stop time or samples. None gets the last sample, equivalent to self.sample_id_range[1].

  • units – The time units which is one of [‘seconds’, ‘samples’] None (default) id equivalent to ‘samples’.

Returns:

(start_sample, stop_sample).

When units==’samples’, negative values are interpreted in standard Python notation relative to the last sample. None

open(filehandle)[source]

Open a recording file.

Parameters:

filehandle – The seekable filehandle or filename string.

property output_sampling_frequency

The output sampling frequency.

property reduction_frequency

The reduction frequency or 1 if no reduction.

property sample_id_range

The sample ID range.

Returns:

[start, stop] sample identifiers.

samples_get(start=None, stop=None, units=None, fields=None)[source]

Get exact samples over a range.

Parameters:
  • start – The starting time.

  • stop – The ending time.

  • units – The units for start and stop. ‘seconds’ or None is in floating point seconds relative to the view. ‘samples’ is in stream buffer sample indicies.

  • fields – The fields to get.

property sampling_frequency

The output sampling frequency.

statistics_get(start=None, stop=None, units=None)[source]

Get the statistics for the collected sample data over a time range.

Parameters:
  • start – The starting time relative to the first sample.

  • stop – The ending time.

  • units – The units for start and stop. ‘seconds’ is in floating point seconds relative to the view. ‘samples’ or None is in stream buffer sample indices.

Returns:

The statistics data structure. See the statistics documentation for details.

property voltage_range

The data file voltage range.

class joulescope.data_recorder.DataRecorder(filehandle, calibration=None, user_data=None)[source]

Record Joulescope data to a file.

Parameters:
  • filehandle – The file-like object or file name.

  • calibration – The calibration bytes in datafile format. None (default) uses the unit gain calibration.

  • user_data – Arbitrary JSON-serializable user data that is added to the file.

close(footer_user_data=None)[source]

Finalize and close the recording.

insert(data)[source]

Insert sample data.

Parameters:

data – A dict in the StreamBuffer.samples_get() format.

stream_notify(stream_buffer)[source]

Process data from a stream buffer.

Parameters:

stream_buffer – The stream_buffer instance which has: * “output_sampling_frequency” member -> float * “has_raw” member -> in [True, False] * “sample_id_range” member => (start, stop) * “voltage_range” member -> in [0, 1] * samples_get(start_sample_id, stop_sample_id, dtype) * data_get(start_sample_id, stop_sample_id, increment, out) * __len__ : maximum number of samples that stream_buffer holds