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.

Methods

load_subsampling_info()

load subsampling info from {self.dirname}/subsampling_info.

rawvar_load(src)

load a single raw var from snap src.

rawvar_load_and_subsample(var, src, info)

returns var loaded and subsampled from src.

rawvar_save(data, dst)

save a single raw var to snap dst.

rawvars_loadable()

returns list of all directly loadable vars within snap src.

rawvars_loadable_across([srcs])

returns dict of {src: [vars loadable from src]} for all snap srcs

snap_src_to_filepath(src)

return filepath for snap src.

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

apply subsampling to all data indicated by subsampling_result_info.

subsampler(subsampling_info)

return self.subsampler_cls instance with self and subsampling_info.

subsampling_snap_srcs()

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

_default_subsampling_info()

default value for self.subsampling_info: load from {self.dirname}/subsampling_info.

Attributes

subsampling_info

SubsamplingInfo telling how existing data was subsampled from prior data.

_default_subsampling_info()

default value for self.subsampling_info: load from {self.dirname}/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)