Changeset 4946
- Timestamp:
- Sep 5, 2005, 2:25:53 PM (21 years ago)
- Location:
- trunk/psphot
- Files:
-
- 18 added
- 17 deleted
- 3 edited
-
Makefile (modified) (2 diffs)
-
src/LocalSky.c (deleted)
-
src/apply_psf_model.c (deleted)
-
src/basic_classes.c (deleted)
-
src/by_SN.c (deleted)
-
src/choose_psf_model.c (deleted)
-
src/find_peaks.c (deleted)
-
src/fit_galaxies.c (deleted)
-
src/image_stats.c (deleted)
-
src/load_args.c (deleted)
-
src/mark_psf_source.c (deleted)
-
src/output.c (deleted)
-
src/pmPeaksSigmaLimit.c (added)
-
src/pmSourceUtils.c (added)
-
src/psImageData.c (added)
-
src/psLibUtils.c (added)
-
src/psLine.c (added)
-
src/psMinimize.c (added)
-
src/psModulesUtils.c (added)
-
src/psUtils.c (deleted)
-
src/psphot-utils.c (deleted)
-
src/psphot.c (modified) (1 diff)
-
src/psphot.h (modified) (2 diffs)
-
src/psphotApplyPSF.c (added)
-
src/psphotArguments.c (added)
-
src/psphotChoosePSF.c (added)
-
src/psphotFitGalaxies.c (added)
-
src/psphotImageStats.c (added)
-
src/psphotMarkPSF.c (added)
-
src/psphotOutput.c (added)
-
src/psphotSetup.c (added)
-
src/psphotSortBySN.c (added)
-
src/psphotSourceStats.c (added)
-
src/psphotSubtractPSF.c (added)
-
src/setup.c (deleted)
-
src/source_moments.c (deleted)
-
src/subtract_psf_source.c (deleted)
-
src/test_psf_scatter.c (deleted)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/Makefile
r4901 r4946 3 3 @echo "USAGE: make psphot" 4 4 5 CC = gcc -g -Wall -O2 5 # CC = gcc -g -Wall -O2 6 CC = gcc -g -Wall 6 7 SRC = src 7 8 BIN = bin … … 18 19 19 20 PSPHOT = \ 20 $(SRC)/psphot.$(ARCH).o \21 $(SRC)/psp sf.$(ARCH).o\22 $(SRC)/psphot -utils.$(ARCH).o\23 $(SRC)/ps Polynomials.$(ARCH).o\24 $(SRC)/ps Utils.$(ARCH).o \25 $(SRC)/ load_args.$(ARCH).o\26 $(SRC)/ setup.$(ARCH).o\27 $(SRC)/ image_stats.$(ARCH).o \28 $(SRC)/ find_peaks.$(ARCH).o\29 $(SRC)/ source_moments.$(ARCH).o\30 $(SRC)/ choose_psf_model.$(ARCH).o \31 $(SRC)/ apply_psf_model.$(ARCH).o\32 $(SRC)/ test_psf_scatter.$(ARCH).o\33 $(SRC)/ mark_psf_source.$(ARCH).o\34 $(SRC)/ subtract_psf_source.$(ARCH).o\35 $(SRC)/ by_SN.$(ARCH).o \36 $(SRC)/ fit_galaxies.$(ARCH).o\37 $(SRC)/ LocalSky.$(ARCH).o\38 $(SRC)/ basic_classes.$(ARCH).o\39 $(SRC)/ps Line.$(ARCH).o\40 $(SRC)/ output.$(ARCH).o21 $(SRC)/psphot.$(ARCH).o \ 22 $(SRC)/psphotArguments.$(ARCH).o \ 23 $(SRC)/psphotSetup.$(ARCH).o \ 24 $(SRC)/psphotImageStats.$(ARCH).o \ 25 $(SRC)/psphotSourceStats.$(ARCH).o \ 26 $(SRC)/psphotChoosePSF.$(ARCH).o \ 27 $(SRC)/psphotApplyPSF.$(ARCH).o \ 28 $(SRC)/psphotFitGalaxies.$(ARCH).o \ 29 $(SRC)/psphotOutput.$(ARCH).o \ 30 $(SRC)/psphotMarkPSF.$(ARCH).o \ 31 $(SRC)/psphotSubtractPSF.$(ARCH).o \ 32 $(SRC)/pspsf.$(ARCH).o \ 33 $(SRC)/psLibUtils.$(ARCH).o \ 34 $(SRC)/psModulesUtils.$(ARCH).o \ 35 $(SRC)/pmSourceUtils.$(ARCH).o \ 36 $(SRC)/pmPeaksSigmaLimit.$(ARCH).o \ 37 $(SRC)/psLine.$(ARCH).o \ 38 $(SRC)/psPolynomials.$(ARCH).o \ 39 $(SRC)/psMinimize.$(ARCH).o \ 40 $(SRC)/psImageData.$(ARCH).o \ 41 $(SRC)/psphotSortBySN.$(ARCH).o 41 42 42 43 FITSOURCE = \ -
trunk/psphot/src/psphot.c
r4901 r4946 9 9 pmPSF *psf = NULL; 10 10 psStats *sky = NULL; 11 pmPSFClump psfClump; 11 12 12 config = load_args (&argc, argv);13 config = psphotArguments (&argc, argv); 13 14 14 15 // load input data (image and config) 15 16 // create or load mask and noise images 16 17 // we have memory leaks here -- may be from psMetadata 17 imdata = setup (config);18 imdata = psphotSetup (config); 18 19 19 20 // measure image stats for initial guess 20 sky = image_stats (imdata, config);21 sky = psphotImageStats (imdata, config); 21 22 22 23 // find the peaks in the image 23 peaks = find_peaks(imdata, config, sky);24 peaks = pmPeaksSigmaLimit (imdata, config, sky); 24 25 25 26 // construct sources and measure basic stats 26 sources = source_moments (imdata, config, peaks);27 sources = psphotSourceStats (imdata, config, peaks); 27 28 28 29 // classify sources based on moments, brightness 29 basic_classes (sources, config); 30 // XXX - this has 1 leak 31 psfClump = pmSourcePSFClump (sources, config); 32 33 // group into STAR, COSMIC, GALAXY, SATURATED 34 pmSourceRoughClass (sources, config, psfClump); 30 35 31 36 // source analysis is done in S/N order (brightest first) 32 sources = psArraySort (sources, by_SN);37 sources = psArraySort (sources, psphotSortBySN); 33 38 34 39 // use bright stellar objects to measure PSF 35 psf = choose_psf_model(config, sources, sky);40 psf = psphotChoosePSF (config, sources, sky); 36 41 37 42 // test PSF on all except SATURATE and DEFECT (artifacts) 38 apply_psf_model(imdata, config, sources, psf, sky);43 psphotApplyPSF (imdata, config, sources, psf, sky); 39 44 40 45 // fit extended objects with galaxy models 41 fit_galaxies (imdata, config, sources, sky);46 psphotFitGalaxies (imdata, config, sources, sky); 42 47 43 48 // write out data in appropriate format 44 output (imdata, config, sources); 45 49 psphotOutput (imdata, config, sources); 46 50 exit (0); 47 51 } -
trunk/psphot/src/psphot.h
r4901 r4946 38 38 } psLine; 39 39 40 enum { 41 PSPHOT_MASK_INVALID = 0x01, 42 PSPHOT_MASK_SATURATED = 0x02, 43 PSPHOT_MASK_KEEP = 0x08, 44 } MaskValues; 45 40 46 // used by mask operations 41 47 # define AND true … … 45 51 46 52 // top-level psphot functions 47 psImageData *setup (psMetadata *config); 48 psStats *image_stats (psImageData *imdata, psMetadata *config); 49 psArray *find_peaks (psImageData *imdata, psMetadata *config, psStats *sky); 50 psArray *source_moments (psImageData *imdata, psMetadata *config, psArray *allpeaks); 51 pmPSF *choose_psf_model (psMetadata *config, psArray *sources, psStats *sky); 52 bool apply_psf_model (psImageData *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky); 53 bool test_psf_scatter (psArray *sources); 54 bool mark_psf_sources (psArray *sources, psMetadata *config); 55 bool subtract_psf_sources (psArray *sources); 56 bool fit_galaxies (psImageData *imdata, psMetadata *config, psArray *sources, psStats *skyStats); 57 bool subtract_galaxies (psArray *sources, psMetadata *config); 58 bool subtract_psf_source (psSource *source); 59 bool mark_psf_source (psSource *source, float shapeNsigma, float minSN, float maxChi, float SATURATE); 60 bool find_defects (psImage *zapmask, psArray *sources, psMetadata *config, pmPSF *psf); 61 bool basic_classes (psArray *sources, psMetadata *config); 53 psMetadata *psphotArguments (int *argc, char **argv); 54 psImageData *psphotSetup (psMetadata *config); 55 psStats *psphotImageStats (psImageData *imdata, psMetadata *config); 56 psArray *pmPeaksSigmaLimit (psImageData *imdata, psMetadata *config, psStats *sky); 57 psArray *psphotSourceStats (psImageData *imdata, psMetadata *config, psArray *allpeaks); 58 pmPSF *psphotChoosePSF (psMetadata *config, psArray *sources, psStats *sky); 59 bool psphotApplyPSF (psImageData *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky); 60 bool psphotFitGalaxies (psImageData *imdata, psMetadata *config, psArray *sources, psStats *skyStats); 61 void psphotOutput (psImageData *imdata, psMetadata *config, psArray *sources); 62 63 bool psphotMarkPSF (psSource *source, float shapeNsigma, float minSN, float maxChi, float SATURATE); 64 bool psphotSubtractPSF (psSource *source); 65 int psphotSortBySN (const void **a, const void **b); 66 67 // psImageData functions 68 psImageData *psImageDataAlloc (psImage *image, psImage *noise, psImage *mask, psMetadata *header); 62 69 63 70 // psf utilities 64 pmPSF *pmPSFAlloc (psModelType type);65 pmPSF_Test *pmPSF_TestAlloc (psArray *stars, char *modelName);66 pmPSF_Test *pmPSF_TestModel (psArray *sources, char *modelName, float radius);67 bool pmPSFFromModels (pmPSF *psf, psArray *models, psVector *mask);68 psModel *psModelFromPSF (psModel *model, pmPSF *psf);69 bool pmSourcePhotometry (float *fitMag, float *obsMag, psModel *model, psImage *image, psImage *mask);70 bool pmPSFMetricModel (pmPSF_Test *test, float RADIUS);71 pmPSF *pmPSFAlloc (psModelType type); 72 pmPSF_Test *pmPSF_TestAlloc (psArray *stars, char *modelName); 73 pmPSF_Test *pmPSF_TestModel (psArray *sources, char *modelName, float radius); 74 bool pmPSFFromModels (pmPSF *psf, psArray *models, psVector *mask); 75 psModel *psModelFromPSF (psModel *model, pmPSF *psf); 76 bool pmSourcePhotometry (float *fitMag, float *obsMag, psModel *model, psImage *image, psImage *mask); 77 bool pmPSFMetricModel (pmPSF_Test *test, float RADIUS); 71 78 72 // output options 73 bool DumpPeaks (psArray *sources, char *filename); 74 bool DumpMoments (psArray *sources, char *filename); 75 bool DumpModelFits (psArray *models, char *filename); 76 bool DumpModelPSF (psArray *sources, char *filename); 77 bool DumpModelFLT (psArray *sources, char *filename); 78 bool DumpModelNULL (psArray *sources, char *filename); 79 bool DumpImage (psImage *image, char *filename); 80 bool DumpPSFTestData (pmPSF_Test *test, char *filename); 81 void output (psImageData *imdata, psMetadata *config, psArray *sources); 82 bool WriteSourcesText (psImageData *imdata, psMetadata *config, psArray *sources); 83 bool WriteSourcesOBJ (psImageData *imdata, psMetadata *config, psArray *sources); 84 bool WriteSourcesSX (psImageData *imdata, psMetadata *config, psArray *sources); 85 bool WriteSourcesCMP (psImageData *imdata, psMetadata *config, psArray *sources); 86 bool WriteSourcesCMF (psImageData *imdata, psMetadata *config, psArray *sources); 87 bool init_line (char *line, int *Nline); 88 bool add_to_line (char *line, int *Nline, char *format, ...); 79 // output functions 80 bool pmSourcesWriteText (psImageData *imdata, char *filename, psArray *sources); 81 bool pmSourcesWriteOBJ (psImageData *imdata, char *filename, psArray *sources); 82 bool pmSourcesWriteCMP (psImageData *imdata, char *filename, psArray *sources); 83 bool pmSourcesWriteCMF (psImageData *imdata, char *filename, psArray *sources); 84 bool pmSourcesWriteSX (psImageData *imdata, char *filename, psArray *sources); 85 int pmSourcesDophotType (psSource *source); 86 bool psPeaksWriteText (psArray *sources, char *filename); 87 bool psMomentsWriteText (psArray *sources, char *filename); 88 bool psModelWritePSFs (psArray *sources, char *filename); 89 bool psModelWriteFLTs (psArray *sources, char *filename); 90 bool psModelWriteNULLs (psArray *sources, char *filename); 89 91 90 // psphot utilities 91 int usage (); 92 psMetadata *load_args (int *argc, char **argv); 93 int by_SN (const void **a, const void **b); 94 psArray *pmPeaksSubset(psArray *peaks, psF32 maxValue, const psRegion *valid); 95 psArray *SelectPSFStars (psArray *sources); 96 bool pmSourceDefinePixels(psSource *mySource, const psImageData *imdata, psF32 x, psF32 y, psF32 Radius); 97 bool pmSourceLocalSky_EAM (psSource *source, psStatsOptions statsOptions, psF32 Radius); 98 bool pmSourceFitModel_EAM(psSource *source, psModel *model, const bool PSF); 99 bool pmSourceMoments_EAM(psSource *source, psF32 radius); 100 bool pmModelFitStatus (psModel *model); 101 psBool p_psMinLM_GuessABP_EAM (psImage *Alpha, psVector *Beta, psVector *Params, const psImage *alpha, const psVector *beta, const psVector *params, const psVector *paramMask, const psVector *beta_lim, const psVector *params_min, const psVector *params_max, psF64 lambda); 102 psBool psMinimizeLMChi2_EAM(psMinimization *min, psImage *covar, psVector *params, const psVector *paramMask, const psArray *x, const psVector *y, const psVector *yErr, psMinimizeLMChi2Func func); 103 psF64 p_psMinLM_dLinear (const psVector *Beta, const psVector *beta, psF64 lambda); 104 psImageData *psImageDataAlloc (psImage *image, psImage *noise, psImage *mask, psMetadata *header); 92 // psModule extra utilities 93 bool pmSourceDefinePixels(psSource *mySource, const psImageData *imdata, psF32 x, psF32 y, psF32 Radius); 94 bool pmSourceLocalSky_EAM (psSource *source, psStatsOptions statsOptions, psF32 Radius); 95 bool pmSourceFitModel_EAM(psSource *source, psModel *model, const bool PSF); 96 bool pmSourceMoments_EAM(psSource *source, psF32 radius); 97 bool pmModelFitStatus (psModel *model); 98 int pmSourceDophotType (psSource *source); 105 99 106 // fitsource utilities107 bool onesource (psImageData *imdata, psMetadata *config, char *modelName, float x, float y);108 ps Metadata *fs_args (int *argc, char **argv);109 int fs_usage ();100 // minimize 101 psBool p_psMinLM_GuessABP_EAM (psImage *Alpha, psVector *Beta, psVector *Params, const psImage *alpha, const psVector *beta, const psVector *params, const psVector *paramMask, const psVector *beta_lim, const psVector *params_min, const psVector *params_max, psF64 lambda); 102 psBool psMinimizeLMChi2_EAM(psMinimization *min, psImage *covar, psVector *params, const psVector *paramMask, const psArray *x, const psVector *y, const psVector *yErr, psMinimizeLMChi2Func func); 103 psF64 p_psMinLM_dLinear (const psVector *Beta, const psVector *beta, psF64 lambda); 110 104 111 // image mask functions 112 void psImageMaskRegion (psImage *image, psRegion *region, bool logical_and, int maskValue); 113 void psImageKeepRegion (psImage *image, psRegion *region, bool logical_and, int maskValue); 114 void psImageMaskCircle (psImage *image, double x, double y, double radius, bool logical_and, int maskValue); 115 void psImageKeepCircle (psImage *image, double x, double y, double radius, bool logical_and, int maskValue); 105 // psLib extra utilities 106 bool psTimerStart (char *name); 107 void psTimerFree (); 108 bool psTimerClear (char *name); 109 psF64 psTimerMark (char *name); 110 psS32 psLogArguments (int *argc, char **argv); 111 psS32 psTraceArguments (int *argc, char **argv); 112 int psArgumentGet (int argc, char **argv, char *arg); 113 int psArgumentRemove (int N, int *argc, char **argv); 114 psF32 pmConfigLookupF32 (bool *status, psMetadata *config, psMetadata *header, char *name); 115 psVector *psVectorCreate (double lower, double upper, double delta, psElemType type); 116 void psImageMaskRegion (psImage *image, psRegion *region, bool logical_and, int maskValue); 117 void psImageKeepRegion (psImage *image, psRegion *region, bool logical_and, int maskValue); 118 void psImageMaskCircle (psImage *image, double x, double y, double radius, bool logical_and, int maskValue); 119 void psImageKeepCircle (psImage *image, double x, double y, double radius, bool logical_and, int maskValue); 120 psVector *psGetRowVectorFromImage(psImage *image, psU32 row); 116 121 117 122 // basic image functions 118 bool psImageInit (psImage *image,...); 119 void psImageSmooth (psImage *image, float sigma, float Nsigma); 120 psRegion *psRegionForImage (psRegion *out, psImage *image, psRegion *in); 121 psRegion *psRegionSquare (psF32 x, psF32 y, psF32 radius); 122 123 // misc global functions 124 psVector *p_psGetRowVectorFromImage(psImage *image, psU32 row); 125 psVector *psGetRowVectorFromImage(psImage *image, psU32 row); 126 127 // utilities 128 bool psTimerStart (char *name); 129 void psTimerFree (); 130 bool psTimerClear (char *name); 131 psF64 psTimerMark (char *name); 132 psS32 psLogArguments (int *argc, char **argv); 133 psS32 psTraceArguments (int *argc, char **argv); 134 int get_argument (int argc, char **argv, char *arg); 135 int remove_argument (int N, int *argc, char **argv); 136 psF32 pmConfigLookupF32 (bool *status, psMetadata *config, psMetadata *header, char *name); 137 psVector *psVectorCreate (double lower, double upper, double delta, psElemType type); 123 bool psImageInit (psImage *image,...); 124 void psImageSmooth (psImage *image, float sigma, float Nsigma); 125 psRegion *psRegionForImage (psRegion *out, psImage *image, psRegion *in); 126 psRegion *psRegionSquare (psF32 x, psF32 y, psF32 radius); 127 int psphotSaveImage (psMetadata *header, psImage *image, char *filename); 138 128 139 129 // psLine functions 140 psLine *psLineAlloc (int Nline);141 bool psLineInit (psLine *line);142 bool psLineAdd (psLine *line, char *format, ...);130 psLine *psLineAlloc (int Nline); 131 bool psLineInit (psLine *line); 132 bool psLineAdd (psLine *line, char *format, ...); 143 133 144 134 // polynomial functions 145 psF32 Polynomial2DEval(const psPolynomial2D* myPoly, psF32 x, psF32 y); 146 psImage *psBuildSums2D(psImage* sums,psF64 x,psF64 y,psS32 nXterm, psS32 nYterm); 147 psPolynomial2D* VectorFitPolynomial2DOrd_EAM(psPolynomial2D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr); 148 psPolynomial2D* Polynomial2DAlloc(psS32 nXorder, psS32 nYorder, psPolynomialType type); 149 void psPolynomial2DDump (psPolynomial2D *poly); 150 psPolynomial2D* RobustFit2D_nomask(psPolynomial2D* poly, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr); 151 psPolynomial2D* RobustFit2D(psPolynomial2D* poly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr); 152 psVector *Polynomial2DEvalVector(const psPolynomial2D *myPoly, const psVector *x,const psVector *y); 135 psF32 Polynomial2DEval(const psPolynomial2D* myPoly, psF32 x, psF32 y); 136 psImage *psBuildSums2D(psImage* sums,psF64 x,psF64 y,psS32 nXterm, psS32 nYterm); 137 psPolynomial2D *VectorFitPolynomial2DOrd_EAM(psPolynomial2D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr); 138 psPolynomial2D *Polynomial2DAlloc(psS32 nXorder, psS32 nYorder, psPolynomialType type); 139 void psPolynomial2DDump (psPolynomial2D *poly); 140 psPolynomial2D *RobustFit2D_nomask(psPolynomial2D* poly, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr); 141 psPolynomial2D *RobustFit2D(psPolynomial2D* poly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr); 142 psVector *Polynomial2DEvalVector(const psPolynomial2D *myPoly, const psVector *x,const psVector *y); 143 psVector *psBuildSums1D(psVector* sums, psF64 x,psS32 nTerm); 144 void psPolynomial1DDump (psPolynomial1D *poly); 145 psF32 Polynomial1DEval_EAM(psF32 x, const psPolynomial1D* myPoly); 146 psVector *Polynomial1DEvalVector_EAM(const psPolynomial1D *myPoly, const psVector *x); 147 psPolynomial1D *Polynomial1DAlloc(psS32 nOrder, psPolynomialType type); 148 psPolynomial1D *VectorFitPolynomial1DOrd_EAM(psPolynomial1D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* yErr); 153 149 154 psVector *psBuildSums1D(psVector* sums, psF64 x,psS32 nTerm); 155 void psPolynomial1DDump (psPolynomial1D *poly); 156 psF32 Polynomial1DEval_EAM(psF32 x, const psPolynomial1D* myPoly); 157 psVector *Polynomial1DEvalVector_EAM(const psPolynomial1D *myPoly, const psVector *x); 158 psPolynomial1D* Polynomial1DAlloc(psS32 nOrder, psPolynomialType type); 159 psPolynomial1D* VectorFitPolynomial1DOrd_EAM(psPolynomial1D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* yErr); 150 // fitsource 151 bool onesource (psImageData *imdata, psMetadata *config, char *modelName, float x, float y); 152 psMetadata *fs_args (int *argc, char **argv); 153 int fs_usage (); 154 bool DumpImage (psImage *image, char *filename); 160 155 161 156 // deprecated 162 void pmSourceMaskRegion (psSource *source, psRegion *region);163 void pmSourceMaskSaturated (psSource *source, float saturate);157 // void pmSourceMaskRegion (psSource *source, psRegion *region); 158 //psVector *p_psGetRowVectorFromImage(psImage *image, psU32 row);
Note:
See TracChangeset
for help on using the changeset viewer.
