예제 #1
0
    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()
예제 #2
0
    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()
예제 #3
0
    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'
예제 #4
0
 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)