예제 #1
0
class CosmoPipeLikelihood(Likelihood):

    def initialize(self):
        self.pipeline = BasePipeline(config_block=self.config_file)
        self.pipeline.setup()

    def get_requirements(self):
        return {}

    def logp(self, **kwargs):
        for key,val in kwargs.items():
            self.pipeline.data_block[section_names.parameters,key] = val
        self.pipeline.execute()
        return self.pipeline.data_block[section_names.likelihood,'loglkl']

    def clean(self):
        pass
예제 #2
0
class CosmoPipeLikelihood(object):
    def __init__(self, options):
        self.pipeline = BasePipeline(
            config_block=options.get_string('config_file'))

    def setup(self):
        self.pipeline.setup()

    def execute(self, block):
        for section, name in block.keys(
                section=cosmosis_names.cosmological_parameters):
            self.pipeline.data_block[section_names.parameters,
                                     name] = block[section, name]
        self.pipeline.execute()
        block[cosmosis_names.likelihoods,
              'cosmopipe_like'] = self.pipeline.data_block[
                  section_names.likelihood, 'loglkl']

    def cleanup(self):
        self.pipeline.cleanup()
예제 #3
0
def test_demo2():

    config_fn = os.path.join(demo_dir, 'demo2.ini')
    graph_fn = os.path.join(demo_dir, 'pipe2.ps')

    mapping_proj = ['ell_0', 'ell_2', 'ell_4']
    make_data_covariance(data_fn=data_fn,
                         covariance_fn=covariance_fn,
                         mapping_proj=mapping_proj)

    pipeline = BasePipeline(config_block=config_fn)
    pipeline.plot_pipeline_graph(graph_fn)
    pipeline.setup()
    pipeline.data_block[section_names.parameters, 'a'] = 0.
    pipeline.execute()
    loglkl = pipeline.data_block[section_names.likelihood, 'loglkl']
    pipeline.data_block[section_names.parameters, 'a'] = 4.
    pipeline.execute()
    assert pipeline.data_block[section_names.likelihood, 'loglkl'] != loglkl
    pipeline.cleanup()
예제 #4
0
def test_demo3b():

    config_fn = os.path.join(demo_dir, 'demo3.ini')
    graph_fn = os.path.join(demo_dir, 'pipe3b.ps')

    mapping_proj = ['ell_0', 'ell_2', 'ell_4']
    make_data_covariance(data_fn=data_fn,
                         covariance_fn=covariance_fn,
                         mapping_proj=mapping_proj)
    config_block = ConfigBlock(config_fn)
    data1 = BaseModule.from_library(name='data1',
                                    options=SectionBlock(
                                        config_block, 'data1'))
    model1 = FlatModel(name='model1')
    data2 = BaseModule.from_library(name='data2',
                                    options=SectionBlock(
                                        config_block, 'data2'))
    model2 = BaseModule.from_library(name='model2',
                                     options=SectionBlock(
                                         config_block, 'model2'))
    cov = BaseModule.from_library(name='cov',
                                  options=SectionBlock(config_block, 'cov'))
    like1 = BaseLikelihood(name='like1', modules=[data1, model1])
    like2 = BaseLikelihood(name='like2', modules=[data2, model2])
    like = JointGaussianLikelihood(name='like',
                                   join=[like1, like2],
                                   modules=[cov])
    pipeline = BasePipeline(modules=[like])
    pipeline.plot_pipeline_graph(graph_fn)
    pipeline.setup()
    pipeline.data_block[section_names.parameters, 'a'] = 0.
    pipeline.execute()
    loglkl = pipeline.data_block[section_names.likelihood, 'loglkl']
    pipeline.data_block[section_names.parameters, 'a'] = 4.
    pipeline.execute()
    assert pipeline.data_block[section_names.likelihood, 'loglkl'] != loglkl
    pipeline.cleanup()
예제 #5
0
def test_demo1():

    os.chdir(base_dir)
    config_fn = os.path.join(demo_dir, 'demo1.ini')
    graph_fn = os.path.join(demo_dir, 'pipe1.ps')

    mapping_proj = ['ell_0', 'ell_2', 'ell_4']
    make_data_covariance(data_fn=data_fn,
                         covariance_fn=covariance_fn,
                         mapping_proj=mapping_proj)

    pipeline = BasePipeline(config_block=config_fn)
    pipeline.plot_pipeline_graph(graph_fn)
    pipeline.setup()
    pipeline.data_block[section_names.parameters, 'a'] = 0.
    pipeline.execute()
    loglkl = pipeline.data_block[section_names.likelihood, 'loglkl']
    pipeline.data_block[section_names.parameters, 'a'] = 4.
    pipeline.execute()
    assert pipeline.data_block[section_names.likelihood, 'loglkl'] != loglkl
    pipeline.cleanup()

    graph_fn = os.path.join(demo_dir, 'inheritance.ps')
    BaseModule.plot_inheritance_graph(graph_fn, exclude=['AffineModel'])