Source code for pmrf.fitting.results._anesthetic

from typing import Any
import io   
import h5py

from pmrf.fitting._bayesian import BayesianResults

[docs] class AnestheticResults(BayesianResults): from anesthetic import NestedSamples @property def nested_samples(self) -> NestedSamples: return self.solver_results
[docs] def samples(self): nested_samples = self.nested_samples columns = nested_samples.columns param_names = [columns[i][0] for i in range(len(columns))] param_names = [name for name in param_names if name not in {'logL', 'logL_birth', 'nlive'}] return nested_samples.loc[:, param_names]
[docs] def prior_samples(self): nested_samples = self.nested_samples.prior() columns = nested_samples.columns param_names = [columns[i][0] for i in range(len(columns))] param_names = [name for name in param_names if name not in {'logL', 'logL_birth', 'nlive'}] return nested_samples.loc[:, param_names]
[docs] def weights(self): nested_samples = self.nested_samples return nested_samples.get_weights()
[docs] def prior_weights(self): nested_samples = self.nested_samples return nested_samples.prior().get_weights()
[docs] def encode_solver_results(self, group: h5py.Group): samples = self.solver_results group['samples'] = samples.to_csv()
[docs] @classmethod def decode_solver_results(cls, group: h5py.Group) -> Any: from anesthetic import NestedSamples, read_csv import pandas as pd csv_str = group['samples'][()] csv_str = csv_str.decode('utf-8') if isinstance(csv_str, bytes) else csv_str samples = NestedSamples(read_csv(io.StringIO(csv_str))) # samples = NestedSamples(pd.read_csv(io.StringIO(csv_str), index_col=0)) return samples