def __init__(self, *args, **kwargs): root = kwargs.pop('root', None) if root is not None: reader = SampleReader(root) samples, logL, logL_birth = reader.samples() params, tex = reader.paramnames() columns = kwargs.pop('columns', params) limits = reader.limits() kwargs['label'] = kwargs.get('label', os.path.basename(root)) self.__init__(data=samples, columns=columns, logL=logL, logL_birth=logL_birth, tex=tex, limits=limits, *args, **kwargs) self.root = root else: logzero = kwargs.pop('logzero', -1e30) self._beta = kwargs.pop('beta', 1.) logL_birth = kwargs.pop('logL_birth', None) if not isinstance(logL_birth, int) and logL_birth is not None: logL_birth = np.where(logL_birth <= logzero, -np.inf, logL_birth) super().__init__(logzero=logzero, *args, **kwargs) if logL_birth is not None: self.recompute(logL_birth, inplace=True) self._set_automatic_limits()
def __init__(self, *args, **kwargs): root = kwargs.pop('root', None) if root is not None: reader = SampleReader(root) if hasattr(reader, 'birth_file') or hasattr(reader, 'ev_file'): raise ValueError("The file root %s seems to point to a Nested " "Sampling chain. Please use NestedSamples " "instead which has the same features as " "MCMCSamples and more. MCMCSamples should be " "used for MCMC chains only." % root) burn_in = kwargs.pop('burn_in', False) weights, logL, samples = reader.samples(burn_in=burn_in) params, tex = reader.paramnames() columns = kwargs.pop('columns', params) limits = reader.limits() kwargs['label'] = kwargs.get('label', os.path.basename(root)) self.__init__(data=samples, columns=columns, weights=weights, logL=logL, tex=tex, limits=limits, *args, **kwargs) self.root = root else: logzero = kwargs.pop('logzero', -1e30) logL = kwargs.pop('logL', None) if logL is not None: logL = np.where(logL <= logzero, -np.inf, logL) self.tex = kwargs.pop('tex', {}) self.limits = kwargs.pop('limits', {}) self.label = kwargs.pop('label', None) self.root = None super().__init__(*args, **kwargs) if logL is not None: self['logL'] = logL self.tex['logL'] = r'$\log\mathcal{L}$' self._set_automatic_limits()
def __init__(self, *args, **kwargs): root = kwargs.pop('root', None) if root is not None: reader = SampleReader(root) if hasattr(reader, 'birth_file') or hasattr(reader, 'ev_file'): raise ValueError("The file root %s seems to point to a Nested " "Sampling chain. Please use NestedSamples " "instead which has the same features as " "MCMCSamples and more. MCMCSamples should be " "used for MCMC chains only." % root) w, logL, samples = reader.samples() params, tex = reader.paramnames() columns = kwargs.pop('columns', params) limits = reader.limits() kwargs['label'] = kwargs.get('label', os.path.basename(root)) self.__init__(data=samples, columns=columns, w=w, logL=logL, tex=tex, limits=limits, *args, **kwargs) self.root = root else: logL = kwargs.pop('logL', None) self.tex = kwargs.pop('tex', {}) self.limits = kwargs.pop('limits', {}) self.label = kwargs.pop('label', None) self.root = None super(MCMCSamples, self).__init__(*args, **kwargs) if logL is not None: self['logL'] = logL self.tex['logL'] = r'$\log\mathcal{L}$' if self._weight is not None: self['weight'] = self.weight self.tex['weight'] = r'MCMC weight'
def __init__(self, *args, **kwargs): root = kwargs.pop('root', None) if root is not None: reader = SampleReader(root) samples, logL, logL_birth = reader.samples() params, tex = reader.paramnames() columns = kwargs.pop('columns', params) limits = reader.limits() kwargs['label'] = kwargs.get('label', os.path.basename(root)) self.__init__(data=samples, columns=columns, logL=logL, logL_birth=logL_birth, tex=tex, limits=limits, *args, **kwargs) self.root = root else: self._beta = kwargs.pop('beta', 1.) logL_birth = kwargs.pop('logL_birth', None) super(NestedSamples, self).__init__(*args, **kwargs) if logL_birth is not None: self._compute_nlive(logL_birth)