# -*- coding: utf-8 -*-
import logging
__all__ = ('Gauss1D', 'Gauss2D', 'Moffat2D')
[docs]class Gauss1D(object):
"""This class stores 1D Gaussian parameters.
Attributes
----------
cont : float
Continuum value.
fwhm : float
Gaussian fwhm.
lpeak : float
Gaussian center.
peak : float
Gaussian peak value.
flux : float
Gaussian integrated flux.
err_fwhm : float
Estimated error on Gaussian fwhm.
err_lpeak : float
Estimated error on Gaussian center.
err_peak : float
Estimated error on Gaussian peak value.
err_flux : float
Estimated error on Gaussian integrated flux.
chisq : float
minimization process info (Chi-sqr)
dof : float
minimization process info (number of points - number of parameters)
"""
def __init__(self, lpeak, peak, flux, fwhm, cont, err_lpeak,
err_peak, err_flux, err_fwhm, chisq, dof):
self.cont = cont
self.fwhm = fwhm
self.lpeak = lpeak
self.peak = peak
self.flux = flux
self.err_fwhm = err_fwhm
self.err_lpeak = err_lpeak
self.err_peak = err_peak
self.err_flux = err_flux
self.chisq = chisq
self.dof = dof
[docs] def copy(self):
"""Copy Gauss1D object in a new one and returns it."""
return Gauss1D(self.lpeak, self.peak, self.flux, self.fwhm,
self.cont, self.err_lpeak, self.err_peak,
self.err_flux, self.err_fwhm, self.chisq, self.dof)
[docs] def print_param(self):
"""Print Gaussian parameters."""
info = logging.getLogger(__name__).info
info('Gaussian center = %g (error:%g)', self.lpeak, self.err_lpeak)
info('Gaussian integrated flux = %g (error:%g)',
self.flux, self.err_flux)
info('Gaussian peak value = %g (error:%g)', self.peak, self.err_peak)
info('Gaussian fwhm = %g (error:%g)', self.fwhm, self.err_fwhm)
info('Gaussian continuum = %g', self.cont)
[docs]class Gauss2D(object):
"""This class stores 2D gaussian parameters.
Attributes
----------
center : (float,float)
Gaussian center (y,x).
flux : float
Gaussian integrated flux.
fwhm : (float,float)
Gaussian fwhm (fhwm_y,fwhm_x).
cont : float
Continuum value.
rot : float
Rotation in degrees.
peak : float
Gaussian peak value.
err_center : (float,float)
Estimated error on Gaussian center.
err_flux : float
Estimated error on Gaussian integrated flux.
err_fwhm : (float,float)
Estimated error on Gaussian fwhm.
err_cont : float
Estimated error on continuum value.
err_rot : float
Estimated error on rotation.
err_peak : float
Estimated error on Gaussian peak value.
ima : `~mpdaf.obj.Image`
Gaussian image
"""
def __init__(self, center, flux, fwhm, cont, rot, peak, err_center,
err_flux, err_fwhm, err_cont, err_rot, err_peak, ima=None):
self.center = center
self.flux = flux
self.fwhm = fwhm
self.cont = cont
self.rot = rot
self.peak = peak
self.err_center = err_center
self.err_flux = err_flux
self.err_fwhm = err_fwhm
self.err_cont = err_cont
self.err_rot = err_rot
self.err_peak = err_peak
self.ima = ima
[docs] def copy(self):
"""Copy Gauss2D object in a new one and returns it."""
return Gauss2D(self.center, self.flux, self.fwhm, self.cont,
self.rot, self.peak, self.err_center, self.err_flux,
self.err_fwhm, self.err_cont, self.err_rot,
self.err_peak)
[docs] def print_param(self):
"""Print Gaussian parameters."""
info = logging.getLogger(__name__).info
info('Gaussian center = (%g,%g) (error:(%g,%g))', self.center[0],
self.center[1], self.err_center[0], self.err_center[1])
info('Gaussian integrated flux = %g (error:%g)',
self.flux, self.err_flux)
info('Gaussian peak value = %g (error:%g)', self.peak, self.err_peak)
info('Gaussian fwhm = (%g,%g) (error:(%g,%g))',
self.fwhm[0], self.fwhm[1], self.err_fwhm[0], self.err_fwhm[1])
info('Rotation in degree: %g (error:%g)', self.rot, self.err_rot)
info('Gaussian continuum = %g (error:%g)', self.cont, self.err_cont)
[docs]class Moffat2D(object):
"""This class stores 2D moffat parameters.
Attributes
----------
center : (float,float)
peak center (y,x).
flux : float
integrated flux.
fwhm : (float,float)
fwhm (fhwm_y,fwhm_x).
cont : float
Continuum value.
n : int
Atmospheric scattering coefficient.
rot : float
Rotation in degrees.
peak : float
intensity peak value.
err_center : (float,float)
Estimated error on center.
err_flux : float
Estimated error on integrated flux.
err_fwhm : (float,float)
Estimated error on fwhm.
err_cont : float
Estimated error on continuum value.
err_n : float
Estimated error on n coefficient.
err_rot : float
Estimated error on rotation.
err_peak : float
Estimated error on peak value.
ima : `~mpdaf.obj.Image`
Moffat image
"""
def __init__(self, center, flux, fwhm, cont, n, rot, peak, err_center,
err_flux, err_fwhm, err_cont, err_n, err_rot, err_peak,
ima=None):
self.center = center
self.flux = flux
self.fwhm = fwhm
self.cont = cont
self.rot = rot
self.peak = peak
self.n = n
self.err_center = err_center
self.err_flux = err_flux
self.err_fwhm = err_fwhm
self.err_cont = err_cont
self.err_rot = err_rot
self.err_peak = err_peak
self.err_n = err_n
self.ima = ima
[docs] def copy(self):
"""Return a copy of a Moffat2D object."""
return Moffat2D(self.center, self.flux, self.fwhm, self.cont,
self.n, self.rot, self.peak, self.err_center,
self.err_flux, self.err_fwhm, self.err_cont,
self.err_n, self.err_rot, self.err_peak)
[docs] def print_param(self):
"""Print Moffat parameters."""
info = logging.getLogger(__name__).info
info('center = (%g,%g) (error:(%g,%g))', self.center[0],
self.center[1], self.err_center[0], self.err_center[1])
info('integrated flux = %g (error:%g)', self.flux, self.err_flux)
info('peak value = %g (error:%g)', self.peak, self.err_peak)
info('fwhm = (%g,%g) (error:(%g,%g))',
self.fwhm[0], self.fwhm[1], self.err_fwhm[0], self.err_fwhm[1])
info('n = %g (error:%g)', self.n, self.err_n)
info('rotation in degree: %g (error:%g)', self.rot, self.err_rot)
info('continuum = %g (error:%g)', self.cont, self.err_cont)