Source code for dc2subset_sampler
import numpy as np
from magnificat.samplers.dc2_sampler import DC2Sampler
[docs]class DC2SubsetSampler:
def __init__(self, seed, bandpasses, std_factor=0.5):
self.seed = seed
self.rng = np.random.default_rng(self.seed)
self.bandpasses = bandpasses
self.std_factor = std_factor
dc2_sampler = DC2Sampler(self.seed, bandpasses)
cat = dc2_sampler.cat.copy().drop('galaxy_id', axis=1)
self.mean = cat.mean()
self.std = cat.std()*self.std_factor
self.n_params = len(self.mean)
[docs] def sample(self):
eps = self.rng.standard_normal(self.n_params)
return eps*self.std + self.mean
if __name__ == '__main__':
[docs] sampler = DC2SubsetSampler(123, list('ugri'))
s = sampler.sample()
print(s)
s = sampler.sample()
print(s)