def testModelLibrary(space, seed): # Tests amplitude model and coorelated field model np.random.seed(seed) domain = ift.PowerSpace(space.get_default_codomain()) model = ift.SLAmplitude(target=domain, n_pix=4, a=.5, k0=2, sm=3, sv=1.5, im=1.75, iv=1.3) assert_(isinstance(model, ift.Operator)) S = ift.ScalingOperator(1., model.domain) pos = S.draw_sample() ift.extra.check_jacobian_consistency(model, pos, ntries=20) model2 = ift.CorrelatedField(space, model) S = ift.ScalingOperator(1., model2.domain) pos = S.draw_sample() ift.extra.check_jacobian_consistency(model2, pos, ntries=20) domtup = ift.DomainTuple.make((space, space)) model3 = ift.MfCorrelatedField(domtup, [model, model]) S = ift.ScalingOperator(1., model3.domain) pos = S.draw_sample() ift.extra.check_jacobian_consistency(model3, pos, ntries=20)
# Set up an amplitude operator for the field # We want to set up a model for the amplitude spectrum with some magic numbers dct = { 'target': power_space, 'n_pix': 64, # 64 spectral bins # Spectral smoothness (affects Gaussian process part) 'a': 10, # relatively high variance of spectral curvature 'k0': .2, # quefrency mode below which cepstrum flattens # Power-law part of spectrum: 'sm': -4, # preferred power-law slope 'sv': .6, # low variance of power-law slope 'im': -6, # y-intercept mean, in-/decrease for more/less contrast 'iv': 2. # y-intercept variance } A = ift.SLAmplitude(**dct) correlated_field = ift.CorrelatedField(position_space, A) ### SETTING UP SPECIFIC SCENARIO #### R = ift.GeometryRemover(position_space) data_space = R.target signal_response = R(correlated_field) # Set up likelihood and load data N = ift.ScalingOperator(0.1, data_space) data, ground_truth = generate_mysterious_data(position_space)
np.random.seed(42) position_space = ift.RGSpace(2*(256,)) harmonic_space = position_space.get_default_codomain() HT = ift.HarmonicTransformOperator(harmonic_space, target=position_space) power_space = ift.PowerSpace(harmonic_space) # Set up generative model A = ift.SLAmplitude( **{ 'target': power_space, 'n_pix': 64, # 64 spectral bins # Smoothness of spectrum 'a': 10, # relatively high variance of spectral curvature 'k0': .2, # quefrency mode below which cepstrum flattens # Power-law part of spectrum 'sm': -4, # preferred power-law slope 'sv': .6, # low variance of power-law slope 'im': -2, # y-intercept mean, in-/decrease for more/less contrast 'iv': 2. # y-intercept variance }) signal = ift.CorrelatedField(position_space, A) R = checkerboard_response(position_space) data_space = R.target signal_response = R @ signal # Set up likelihood and generate data from the model N = ift.ScalingOperator(0.1, data_space) data, ground_truth = generate_gaussian_data(signal_response, N)