Пример #1
0
 def __init__(self, psf_file_path):
     """Constructor.
     """
     logger.info("Reading PSF data from %s..." % psf_file_path)
     self.hdu_list = fits.open(psf_file_path)
     self.hdu_list.info()
     _data = self.hdu_list["PSF"].data
     W = _data["W"]
     sigma = _data["SIGMA"]
     N = _data["N"]
     r_c = _data["R_C"]
     eta = _data["ETA"]
     self.__params = (W, sigma, N, r_c, eta)
     # Tabulate the actual PSF values.
     _r = numpy.linspace(0, self.MAX_RADIUS, 250)
     _y = gauss_king(_r, *self.__params)
     fmt = dict(xname="r", xunits="arcsec", yname="PSF", yunits="sr$^{-1}$")
     xInterpolatedUnivariateSpline.__init__(self, _r, _y, k=2, **fmt)
     # Include the solid angle for the actual underlying random generator.
     _y *= 2 * numpy.pi * _r
     fmt = dict(rvname="r", rvunits="arcsec", pdfname="$2 \\pi r \\times$ PSF", pdfunits="")
     self.generator = xUnivariateGenerator(_r, _y, k=1, **fmt)
     # Finally, calculate the
     self.eef, self.hew = self.build_eef()
     logger.info(self)
Пример #2
0
 def __init__(self, rv, pdf, w=None, bbox=[None, None], k=1, rvname=None,
              rvunits=None, pdfname='pdf', pdfunits=None):
     """ Constructor.
     """
     if pdfunits is None and rvunits is not None:
         pdfunits = '1/%s' % rvunits
     xInterpolatedUnivariateSpline.__init__(self, rv, pdf, w, bbox, k,
                                            rvname, rvunits, pdfname,
                                            pdfunits)
     self.ppf = self.build_ppf()
Пример #3
0
 def __init__(self, rv, pdf, w=None, bbox=[None, None], k=1, rvname=None,
              rvunits=None, pdfname='pdf', pdfunits=None):
     """ Constructor.
     """
     if pdfunits is None and rvunits is not None:
         pdfunits = '1/%s' % rvunits
     xInterpolatedUnivariateSpline.__init__(self, rv, pdf, w, bbox, k,
                                            rvname, rvunits, pdfname,
                                            pdfunits)
     self.ppf = self.build_ppf()