Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
 def load(cls, config):
     model = SimpleModelDescription.load(config)
     model = cls(model)
     return model
Esempio n. 7
0
    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])
Esempio n. 8
0
         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))