PlasmaCalcs.dimensions.subsampling.Subsamplable

class PlasmaCalcs.dimensions.subsampling.Subsamplable

Bases: object

object that can be subsampled.
Subclass should implement:
- rawvars_loadable(src): list of all directly loadable vars within snap src.
- rawvar_load(var, src): load a single raw var from snap src.
OR override rawvar_load_and_subsample(var, src, info) to avoid using rawvar_load.
- rawvar_save(var, data, dst): save a single raw var to snap dst.
Before overwriting any existing data, subclass’s implementation should crash by default.
- _snap_src_to_filepath(self, src): return filepath for snap src.
- self.snapdir: should tell abspath of folder with all snapshots.
OR, override subsampling_path_manager() to avoid using snapdir.
- self.snaps.file_path(self): should tell array of snapshot filepaths.
OR, override subsampling_snap_srcs to avoid using self.snaps.file_path(self).
Subclass may use str for snap src but might use something else.
The only requirement for snap src imposed here is that it must be hashable.
__init__()

Methods

__init__()

load_subsampling_info()

rawvar_load(src)

rawvar_load_and_subsample(var, src, info)

rawvar_save(data, dst)

rawvars_loadable()

rawvars_loadable_across([srcs])

snap_src_to_filepath(src)

subsample(subsampling_info, *[, ...])

subsampler(subsampling_info)

subsampling_snap_srcs()

Attributes

subsampling_info

load_subsampling_info()
load subsampling info from {self.dirname}/subsampling_info.
rawvar_load(src)
load a single raw var from snap src.
Subclass can implement this or override rawvar_load_and_subsample instead.
rawvar_load_and_subsample(var, src, info)
returns var loaded and subsampled from src.
Subclass should either:
- implement rawvar_load(var, src)
- override rawvar_load_and_subsample instead,
e.g. slice h5py object instead of loading full array to slice.
rawvar_save(data, dst)
save a single raw var to snap dst.
Subclass must implement this.
Before overwriting any existing data, subclass’s implementation should crash by default.
rawvars_loadable()
returns list of all directly loadable vars within snap src.
Subclass must implement this.
rawvars_loadable_across(srcs=None)
returns dict of {src: [vars loadable from src]} for all snap srcs
The implementation here just calls rawvars_loadable for each src.
if srcs is None, use self.subsampling_snap_srcs().
snap_src_to_filepath(src)
return filepath for snap src. See also: self.subsampling_snap_srcs().
Subclass must implement this.
subsample(subsampling_info, *, subsampled_data_exist_ok=False)
apply subsampling to all data indicated by subsampling_result_info.
returns SubsamplingResultPathManager with relevant paths.
(results will be saved to paths determined by SubsamplingResultPathManager;
probably ‘subsampling_result’ at the same directory-level as target.snapdir.)
Never overwrites any of the pre-subsampling data.
By default, refuses to overwrite any existing data at all.
subsampling_info: SubsamplingInfo, str, or json-like dict
str –> path to load subsampling info from.
can be filename or directory. see SubsamplingInfo.load for details.
dict –> subsampling info in json-like format, see SubsamplingInfo for details.
subsampled_data_exist_ok: bool
whether it is okay for subsampled data file(s) to already exist before saving any data. Default False.
(Doesn’t interact with any subsampling_info files.)
subsampler(subsampling_info)
return self.subsampler_cls instance with self and subsampling_info.
See help(self.subsample) for details on subsampling_info.
subsampler_cls

alias of Subsampler

property subsampling_info
SubsamplingInfo telling how existing data was subsampled from prior data.
By default, this info will be loaded from {self.dirname}/subsampling_info.
subsampling_info_cls

alias of SubsamplingInfo

subsampling_info_path_manager_cls

alias of SubsamplingInfoPathManager

subsampling_snap_srcs()
list of all snap srcs in self (before applying any subsampling)