00001 /** @file pmPSF.h 00002 * 00003 * This file contains typedefs for the Point-Spread Function and prototypes 00004 * for functions that calculate the PSF. 00005 * 00006 * @author EAM, IfA 00007 * 00008 * @version $Revision: 1.1.1.1 $ $Name: $ 00009 * @date $Date: 2005/10/14 00:29:27 $ 00010 * 00011 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii 00012 * 00013 */ 00014 00015 # ifndef PM_PSF_H 00016 # define PM_PSF_H 00017 00018 00019 /** pmPSF data structure 00020 * 00021 * It is useful to generate a model to define the point-spread-function which 00022 * describes the flux distribution for unresolved sources in an image. In 00023 * general, the PSF varies with position in the image. We allow any of the source 00024 * models defined for the pmModel to represent the PSF. For a given source model, 00025 * the 2D spatial variation of all of the source parameters, except the first 00026 * four PSF-independent parameters, are represented as polynomial, stored in a 00027 * psArray. The other elements of the structure define the quality of the PSF 00028 * determination. 00029 * 00030 */ 00031 typedef struct 00032 { 00033 pmModelType type; ///< PSF Model in use 00034 psArray *params; ///< Model parameters (psPolynomial2D) 00035 float chisq; ///< PSF goodness statistic 00036 float ApResid; ///< ??? 00037 float dApResid; ///< ??? 00038 float skyBias; ///< ??? 00039 int nPSFstars; ///< number of stars used to measure PSF 00040 } 00041 pmPSF; 00042 00043 00044 /** 00045 * 00046 * Allocator for the pmPSF structure. 00047 * 00048 */ 00049 pmPSF *pmPSFAlloc( 00050 pmModelType type ///< Add comment 00051 ); 00052 00053 00054 /** 00055 * 00056 * This function takes a collection of pmModel fitted models from across a 00057 * single image and builds a pmPSF representation of the PSF. The input array of 00058 * model fits may consist of entries to be ignored (noted by a non-zero mask 00059 * entry). The analysis of the models fits a 2D polynomial for each parameter to 00060 * the collection of model parameters as a function of position (and 00061 * normalization?). In this process, some of the input models may be marked as 00062 * outliers and excluded from the fit. These elements will be marked with a 00063 * specific mask value (1 == PSFTRY_MASK_OUTLIER). 00064 * 00065 */ 00066 bool pmPSFFromModels( 00067 pmPSF *psf, ///< Add comment 00068 psArray *models, ///< Add comment 00069 psVector *mask ///< Add comment 00070 ); 00071 00072 00073 /** 00074 * 00075 * This function constructs a pmModel instance based on the pmPSF description 00076 * of the PSF. The input is a pmModel with at least the values of the centroid 00077 * coordinates (possibly normalization if this is needed) defined. The values of 00078 * the PSF-dependent parameters are specified for the specific realization based 00079 * on the coordinates of the object. 00080 * 00081 */ 00082 pmModel *pmModelFromPSF( 00083 pmModel *model, ///< Add comment 00084 pmPSF *psf ///< Add comment 00085 ); 00086 00087 # endif
1.4.2