Source code for anesthetic.read.ultranest

"""Read NestedSamples from UltraNest results."""
import os
import json
from anesthetic.samples import NestedSamples


[docs] def read_ultranest(root, *args, **kwargs): """Read UltraNest files. Parameters ---------- root : str root name for reading files in UltraNest format, i.e. the files ``<root>/info/results.json`` and ``<root>/results/points.hdf5``. """ with open(os.path.join(root, 'info', 'results.json')) as infofile: labels = json.load(infofile)['paramnames'] num_params = len(labels) filepath = os.path.join(root, 'results', 'points.hdf5') try: import h5py except ImportError: raise ImportError('h5py is required to read UltraNest results') with h5py.File(filepath, 'r') as fileobj: points = fileobj['points'] _, ncols = points.shape x_dim = ncols - 3 - num_params logL_birth = points[:, 0] logL = points[:, 1] samples = points[:, 3+x_dim:3+x_dim+num_params] kwargs['label'] = kwargs.get('label', os.path.basename(root)) columns = kwargs.pop('columns', labels) labels = kwargs.pop('labels', labels) data = samples return NestedSamples(data=data, logL=logL, logL_birth=logL_birth, columns=columns, labels=labels, *args, **kwargs)