def disk_model(wl, x0, y0, I_0, h, PA, ell): model = SimpleModelDescription() model.wl = wl model.x0.setValue(x0) model.y0.setValue(y0) disk = disk_function(I_0, h, PA, ell) model.addFunction(disk) return model
def bulge_model(wl, x0, y0, I_e, r_e, n, PA, ell): model = SimpleModelDescription() model.wl = wl model.x0.setValue(x0) model.y0.setValue(y0) bulge = bulge_function(I_e, r_e, n, PA, ell) model.addFunction(bulge) return model
def galaxy_model(x0, y0, bulge=False, disk=False, PA_b=0.0, ell_b=0.0, I_e=0.0, r_e=0.0, n=0.0, PA_d=0.0, ell_d=0.0, I_0=0.0, h=0.0): if not (bulge or disk): raise Exception('At least one of bulge or disk must be set.') model = SimpleModelDescription() model.x0.setValue(x0, vmin=x0-10, vmax=x0+10) model.y0.setValue(y0, vmin=y0-10, vmax=y0+10) if bulge: bulge = bulge_function(I_e, r_e, n, PA_b, ell_b) model.addFunction(bulge) if disk: disk = disk_function(I_0, h, PA_d, ell_d) model.addFunction(disk) return model
def create_model(): model = SimpleModelDescription() model.x0.setValue(50, vmin=40, vmax=60) model.y0.setValue(50, vmin=40, vmax=60) bulge = function_description('Sersic', name='bulge') bulge.I_e.setValue(1.0, vmin=0.5, vmax=1.5) bulge.r_e.setValue(10, vmin=5, vmax=15) bulge.n.setValue(4, vmin=3, vmax=5) bulge.PA.setValue(45, vmin=30, vmax=60) bulge.ell.setValue(0.5, vmin=0, vmax=1) disk = function_description('Exponential', name='disk') disk.I_0.setValue(0.7, vmin=0.4, vmax=0.9) disk.h.setValue(15, vmin=10, vmax=20) disk.PA.setValue(60, vmin=45, vmax=90) disk.ell.setValue(0.2, vmin=0, vmax=0.5) model.addFunction(bulge) model.addFunction(disk) return model
def create_model(): model = SimpleModelDescription() model.x0.setValue(50, vmin=40, vmax=60) model.y0.setValue(50, vmin=40, vmax=60) bulge = function_description('Sersic', name='bulge') bulge.I_e.setValue(1.0, vmin=0.5, vmax=1.5) bulge.r_e.setValue(10, vmin=5, vmax=15) bulge.n.setValue(4, vmin=3, vmax=5) bulge.PA.setValue(45, vmin=30, vmax=60) bulge.ell.setValue(0.5, vmin=0, vmax=1) disk = function_description('Exponential', name='disk') disk.I_0.setValue(0.7, vmin=0.4, vmax=0.9) disk.h.setValue(15, vmin=10, vmax=20) disk.PA.setValue(60, vmin=45, vmax=90) disk.ell.setValue(0.2, vmin=0, vmax=0.5) model.addFunction(bulge) model.addFunction(disk) return model
def load(cls, config): model = SimpleModelDescription.load(config) model = cls(model) return model
f.close() psf_func = function_description(func, name='psf') psf_func.PA.setValue(60, vmin=-190, vmax=190) psf_func.ell.setValue(0.2, vmin=-1.0, vmax=1.0) psf_func.I_0.setValue(1.0, vmin=1e-20, vmax=10.0) if func == 'Gaussian': psf_func.sigma.setValue(1.0, vmin=0.1, vmax=20.0) else: psf_func.fwhm.setValue(2.5, vmin=0.1, vmax=20.0) if func == 'Moffat': if beta4: psf_func.beta.setValue(4, fixed=True) else: psf_func.beta.setValue(1.9, vmin=1e-20, vmax=20.0) model = SimpleModelDescription() model.x0.setValue(flux[0].shape[1] / 2) model.x0.setLimitsRel(5, 5) model.y0.setValue(flux[0].shape[0] / 2) model.y0.setLimitsRel(5, 5) model.addFunction(psf_func) print 'Initial PSF model:' print model good = [] chi2 = [] flag = [] fitmodel = [] modelflux = [] for i, f in enumerate(flux): star = path.basename(cubes[i])
1: r'$n=1\ (\mathrm{exponencial})$', 4: r'$n=4\ (\mathrm{de\ Vaucouleurs})$', 10: r'$n=10$', } line = {0.5: 'k:', 1: 'b-', 4: 'r-', 10: 'k-.', } bins = np.arange(100) bins_c = bins[1:] - 0.5 sersic = function_description('Sersic') model = SimpleModelDescription() model.addFunction(sersic) model.x0.setValue(x0 + 1) model.y0.setValue(x0 + 1) model.Sersic.I_e.setValue(1.0) model.Sersic.r_e.setValue(r_e) model.Sersic.PA.setValue(0.0) model.Sersic.ell.setValue(0.0) model.Sersic.n.setValue(4) plot_setup() width_pt = 448.07378 width_in = width_pt / 72.0 * 0.95 fig = plt.figure(figsize=(width_in, width_in * 0.5))