Source code for scri.SpEC.file_io.rotating_paired_xor_multishuffle_bzip2

# Copyright (c) 2021, Michael Boyle
# See LICENSE file for details: <https://github.com/moble/scri/blob/master/LICENSE>

import sxs
from ... import WaveformModes


default_shuffle_widths = sxs.utilities.default_shuffle_widths


[docs] def save(w, file_name=None, file_write_mode="w", L2norm_fractional_tolerance=1e-10, log_frame=None, shuffle_widths=default_shuffle_widths): """Save a waveform in RPXMB format This function is essentially a backwards-compatibility wrapper for the the `sxs.rpxmb.save` function; see that function's docstring for details. """ return sxs.rpxmb.save( w.to_sxs, file_name=file_name, file_write_mode=file_write_mode, L2norm_fractional_tolerance=L2norm_fractional_tolerance, log_frame=log_frame, shuffle_widths=shuffle_widths )
[docs] def load(file_name, ignore_validation=False, check_md5=True, transform_to_inertial=False, **kwargs): """Load a waveform in RPXMB format This function is essentially a backwards-compatibility wrapper for the the `sxs.rpxmb.load` function; see that function's docstring for full details. However, note that this function has slightly different behavior (for backwards compatibility): 1. The default value of `ignore_validation` is `False`, which means that a `ValueError` is raised whenever validation fails, rather than just a warning. 2. The default value of `transform_to_inertial` is `False`, which means that the returned waveform will still be in the corotating frame (specified most precisely by the `log_frame` attribute of the returned waveform). 3. If `transform_to_inertial` is `False`, the return value is a tuple of `(w, log_frame)`; otherwise, it is just the waveform `w`. In both cases, `w.log_frame` will contain this data. """ w_sxs = sxs.rpxmb.load( file_name, ignore_validation=ignore_validation, check_md5=check_md5, transform_to_inertial=transform_to_inertial, **kwargs ) w = WaveformModes.from_sxs(w_sxs) w.json_data = w_sxs.json_data w.log_frame = w_sxs.log_frame if transform_to_inertial: return w else: return w, w.log_frame