Ejemplo n.º 1
0
def disk_function(I_0=0.0, h=0.0, PA=0.0, ell=0.0):
    disk = function_description('Exponential', name='disk')
    disk.I_0.setValue(I_0)
    disk.h.setValue(h)
    disk.PA.setValue(PA)
    disk.ell.setValue(ell)
    return disk
Ejemplo n.º 2
0
def disk_function(I_0, h, PA, ell):
    disk = function_description('Exponential', name='disk')
    disk.I_0.setValue(I_0, vmin=1e-33, vmax=10*I_0)
    disk.h.setValue(h, vmin=1e-33, vmax=10*h)
    disk.PA.setValue(PA, vmin=0, vmax=180)
    disk.ell.setValue(ell, vmin=0, vmax=1)
    return disk
Ejemplo n.º 3
0
def bulge_function(I_e=0.0, r_e=0.0, n=0.0, PA=0.0, ell=0.0):
    bulge = function_description('Sersic', name='bulge')
    bulge.I_e.setValue(I_e)
    bulge.r_e.setValue(r_e)
    bulge.n.setValue(n)
    bulge.PA.setValue(PA)
    bulge.ell.setValue(ell)
    return bulge
Ejemplo n.º 4
0
def bulge_function(I_e, r_e, n, PA, ell):
    bulge = function_description('Sersic', name='bulge')
    bulge.I_e.setValue(I_e, vmin=1e-33, vmax=10*I_e)
    bulge.r_e.setValue(r_e, vmin=1e-33, vmax=10*r_e)
    bulge.n.setValue(n, vmin=0.5, vmax=5.9)
    bulge.PA.setValue(PA, vmin=0, vmax=180)
    bulge.ell.setValue(ell, vmin=0, vmax=1)
    return bulge
Ejemplo 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
Ejemplo n.º 6
0
def example_model_description():
    fs = FunctionSetDescription('example')
    fs.x0.setValue(36.0, [25, 45])
    fs.y0.setValue(32.0, [25, 45])
    
    sersic = function_description('Sersic')
    sersic.PA.setValue(93.0217, [0, 180])
    sersic.ell.setValue(0.37666, [0, 1])
    sersic.n.setValue(4, fixed=True)
    sersic.I_e.setValue(1, [0, 10])
    sersic.r_e.setValue(25, [0, 100])
    
    exponential = function_description('Exponential')
    exponential.PA.setValue(93.0217, [0, 180])
    exponential.ell.setValue(0.37666, [0, 1])
    exponential.I_0.setValue(1, [0, 10])
    exponential.h.setValue(25, [0, 100])
    
    fs.addFunction(sersic)
    fs.addFunction(exponential)
    return ModelDescription([fs])
Ejemplo n.º 7
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
Ejemplo n.º 8
0
flux = []
for cube in cubes:
    f = pyfits.open(cube)
    shape = f[0].data.shape
    _mask = f[0].data <= 0
    _flux = np.ma.array(f[0].data, mask=_mask)
    y0, x0 = np.where(_flux == _flux.max())
    r = distance(shape, x0, y0)
    _flux[r > fitradius] = np.ma.masked
    y0 = shape[0] / 2
    _flux /= _flux.max()
    flux.append(_flux)
    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)
Ejemplo n.º 9
0
label = {0.5: r'$n=0.5$',
         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))
Ejemplo n.º 10
0
    bins_c = bins[:-1] + 0.5
    y0 = psfradius
    x0 = psfradius
    pa = 90.0
    ba = 1.0
    flux_r = radialProfile(psfflux[i_plot], bins, x0, y0, pa, ba)
    bg_r = radialProfile(psfbg[i_plot], bins, x0, y0, pa, ba)
    flux_bg_r = radialProfile(psfflux[i_plot] - psfbg[i_plot], bins, x0, y0, pa, ba)
    
    plt.clf()
    plt.plot(bins_c, flux_r)
    plt.plot(bins_c, flux_bg_r)
    plt.plot(bins_c, bg_r)
    plt.show()

psf_func = function_description(func, 'psf')
psf_func.PA.setValue(0.0, 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=1e-20, vmax=20.0)
else:
    psf_func.fwhm.setValue(3.0, vmin=1e-20, vmax=20.0)
if func == 'Moffat':
    if beta4:
        psf_func.beta.setValue(4.0, fixed=True)
    else:
        psf_func.beta.setValue(2.0, vmin=1.0, vmax=20.0)

model = SimpleModelDescription()
model.x0.setValue(psfradius)