IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4946


Ignore:
Timestamp:
Sep 5, 2005, 2:25:53 PM (21 years ago)
Author:
eugene
Message:

major name re-organization, added output modes, consistent with psLib/psModules names

Location:
trunk/psphot
Files:
18 added
17 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/Makefile

    r4901 r4946  
    33        @echo "USAGE: make psphot"
    44
    5 CC      =       gcc -g -Wall -O2
     5# CC      =       gcc -g -Wall -O2
     6CC      =       gcc -g -Wall
    67SRC     =       src
    78BIN     =       bin
     
    1819
    1920PSPHOT = \
    20 $(SRC)/psphot.$(ARCH).o \
    21 $(SRC)/pspsf.$(ARCH).o \
    22 $(SRC)/psphot-utils.$(ARCH).o \
    23 $(SRC)/psPolynomials.$(ARCH).o \
    24 $(SRC)/psUtils.$(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)/psLine.$(ARCH).o \
    40 $(SRC)/output.$(ARCH).o
     21$(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
    4142
    4243FITSOURCE = \
  • trunk/psphot/src/psphot.c

    r4901 r4946  
    99    pmPSF       *psf     = NULL;
    1010    psStats     *sky     = NULL;
     11    pmPSFClump   psfClump;
    1112
    12     config = load_args (&argc, argv);
     13    config = psphotArguments (&argc, argv);
    1314
    1415    // load input data (image and config)
    1516    // create or load mask and noise images
    1617    // we have memory leaks here -- may be from psMetadata
    17     imdata = setup (config);
     18    imdata = psphotSetup (config);
    1819
    1920    // measure image stats for initial guess
    20     sky = image_stats (imdata, config);
     21    sky = psphotImageStats (imdata, config);
    2122
    2223    // find the peaks in the image
    23     peaks = find_peaks (imdata, config, sky);
     24    peaks = pmPeaksSigmaLimit (imdata, config, sky);
    2425
    2526    // construct sources and measure basic stats
    26     sources = source_moments (imdata, config, peaks);
     27    sources = psphotSourceStats (imdata, config, peaks);
    2728
    2829    // 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);
    3035
    3136    // source analysis is done in S/N order (brightest first)
    32     sources = psArraySort (sources, by_SN);
     37    sources = psArraySort (sources, psphotSortBySN);
    3338
    3439    // use bright stellar objects to measure PSF
    35     psf = choose_psf_model (config, sources, sky);
     40    psf = psphotChoosePSF (config, sources, sky);
    3641
    3742    // 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);
    3944
    4045    // fit extended objects with galaxy models
    41     fit_galaxies (imdata, config, sources, sky);
     46    psphotFitGalaxies (imdata, config, sources, sky);
    4247
    4348    // write out data in appropriate format
    44     output (imdata, config, sources);
    45 
     49    psphotOutput (imdata, config, sources);
    4650    exit (0);
    4751}
  • trunk/psphot/src/psphot.h

    r4901 r4946  
    3838} psLine;
    3939
     40enum {
     41    PSPHOT_MASK_INVALID   = 0x01,
     42    PSPHOT_MASK_SATURATED = 0x02,
     43    PSPHOT_MASK_KEEP      = 0x08,
     44} MaskValues;
     45
    4046// used by mask operations
    4147# define AND true
     
    4551
    4652// 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);
     53psMetadata  *psphotArguments (int *argc, char **argv);
     54psImageData *psphotSetup (psMetadata *config);
     55psStats     *psphotImageStats (psImageData *imdata, psMetadata *config);
     56psArray     *pmPeaksSigmaLimit (psImageData *imdata, psMetadata *config, psStats *sky);
     57psArray     *psphotSourceStats (psImageData *imdata, psMetadata *config, psArray *allpeaks);
     58pmPSF       *psphotChoosePSF (psMetadata *config, psArray *sources, psStats *sky);
     59bool         psphotApplyPSF (psImageData *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
     60bool         psphotFitGalaxies (psImageData *imdata, psMetadata *config, psArray *sources, psStats *skyStats);
     61void         psphotOutput (psImageData *imdata, psMetadata *config, psArray *sources);
     62
     63bool         psphotMarkPSF (psSource *source, float shapeNsigma, float minSN, float maxChi, float SATURATE);
     64bool         psphotSubtractPSF (psSource *source);
     65int          psphotSortBySN (const void **a, const void **b);
     66
     67// psImageData functions
     68psImageData *psImageDataAlloc (psImage *image, psImage *noise, psImage *mask, psMetadata *header);
    6269
    6370// 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);
     71pmPSF       *pmPSFAlloc (psModelType type);
     72pmPSF_Test  *pmPSF_TestAlloc (psArray *stars, char *modelName);
     73pmPSF_Test  *pmPSF_TestModel (psArray *sources, char *modelName, float radius);
     74bool        pmPSFFromModels (pmPSF *psf, psArray *models, psVector *mask);
     75psModel    *psModelFromPSF (psModel *model, pmPSF *psf);
     76bool        pmSourcePhotometry (float *fitMag, float *obsMag, psModel *model, psImage *image, psImage *mask);
     77bool        pmPSFMetricModel (pmPSF_Test *test, float RADIUS);
    7178
    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
     80bool         pmSourcesWriteText (psImageData *imdata, char *filename, psArray *sources);
     81bool         pmSourcesWriteOBJ (psImageData *imdata, char *filename, psArray *sources);
     82bool         pmSourcesWriteCMP (psImageData *imdata, char *filename, psArray *sources);
     83bool         pmSourcesWriteCMF (psImageData *imdata, char *filename, psArray *sources);
     84bool         pmSourcesWriteSX (psImageData *imdata, char *filename, psArray *sources);
     85int          pmSourcesDophotType (psSource *source);
     86bool         psPeaksWriteText (psArray *sources, char *filename);
     87bool         psMomentsWriteText (psArray *sources, char *filename);
     88bool         psModelWritePSFs (psArray *sources, char *filename);
     89bool         psModelWriteFLTs (psArray *sources, char *filename);
     90bool         psModelWriteNULLs (psArray *sources, char *filename);
    8991
    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
     93bool         pmSourceDefinePixels(psSource *mySource, const psImageData *imdata, psF32 x, psF32 y, psF32 Radius);
     94bool         pmSourceLocalSky_EAM (psSource *source, psStatsOptions statsOptions, psF32 Radius);
     95bool         pmSourceFitModel_EAM(psSource *source, psModel *model, const bool PSF);
     96bool         pmSourceMoments_EAM(psSource *source, psF32 radius);
     97bool         pmModelFitStatus (psModel *model);
     98int          pmSourceDophotType (psSource *source);
    10599
    106 // fitsource utilities
    107 bool onesource (psImageData *imdata, psMetadata *config, char *modelName, float x, float y);
    108 psMetadata *fs_args (int *argc, char **argv);
    109 int fs_usage ();
     100// minimize
     101psBool       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);
     102psBool       psMinimizeLMChi2_EAM(psMinimization *min, psImage *covar, psVector *params, const psVector *paramMask, const psArray *x, const psVector *y, const psVector *yErr, psMinimizeLMChi2Func func);
     103psF64        p_psMinLM_dLinear (const psVector *Beta, const psVector *beta, psF64 lambda);
    110104
    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
     106bool         psTimerStart (char *name);
     107void         psTimerFree ();
     108bool         psTimerClear (char *name);
     109psF64        psTimerMark (char *name);
     110psS32        psLogArguments (int *argc, char **argv);
     111psS32        psTraceArguments (int *argc, char **argv);
     112int          psArgumentGet (int argc, char **argv, char *arg);
     113int          psArgumentRemove (int N, int *argc, char **argv);
     114psF32        pmConfigLookupF32 (bool *status, psMetadata *config, psMetadata *header, char *name);
     115psVector    *psVectorCreate (double lower, double upper, double delta, psElemType type);
     116void         psImageMaskRegion (psImage *image, psRegion *region, bool logical_and, int maskValue);
     117void         psImageKeepRegion (psImage *image, psRegion *region, bool logical_and, int maskValue);
     118void         psImageMaskCircle (psImage *image, double x, double y, double radius, bool logical_and, int maskValue);
     119void         psImageKeepCircle (psImage *image, double x, double y, double radius, bool logical_and, int maskValue);
     120psVector    *psGetRowVectorFromImage(psImage *image, psU32 row);
    116121
    117122// 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);
     123bool         psImageInit (psImage *image,...);
     124void         psImageSmooth (psImage *image, float sigma, float Nsigma);
     125psRegion    *psRegionForImage (psRegion *out, psImage *image, psRegion *in);
     126psRegion    *psRegionSquare (psF32 x, psF32 y, psF32 radius);
     127int          psphotSaveImage (psMetadata *header, psImage *image, char *filename);
    138128
    139129// psLine functions
    140 psLine *psLineAlloc (int Nline);
    141 bool psLineInit (psLine *line);
    142 bool psLineAdd (psLine *line, char *format, ...);
     130psLine      *psLineAlloc (int Nline);
     131bool        psLineInit (psLine *line);
     132bool        psLineAdd (psLine *line, char *format, ...);
    143133
    144134// 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);
     135psF32           Polynomial2DEval(const psPolynomial2D* myPoly, psF32 x, psF32 y);
     136psImage        *psBuildSums2D(psImage* sums,psF64 x,psF64 y,psS32 nXterm, psS32 nYterm);
     137psPolynomial2D *VectorFitPolynomial2DOrd_EAM(psPolynomial2D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr);
     138psPolynomial2D *Polynomial2DAlloc(psS32 nXorder, psS32 nYorder, psPolynomialType type);
     139void            psPolynomial2DDump (psPolynomial2D *poly);
     140psPolynomial2D *RobustFit2D_nomask(psPolynomial2D* poly, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr);
     141psPolynomial2D *RobustFit2D(psPolynomial2D* poly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr);
     142psVector       *Polynomial2DEvalVector(const psPolynomial2D *myPoly, const psVector *x,const psVector *y);
     143psVector       *psBuildSums1D(psVector* sums, psF64 x,psS32 nTerm);
     144void            psPolynomial1DDump (psPolynomial1D *poly);
     145psF32           Polynomial1DEval_EAM(psF32 x, const psPolynomial1D* myPoly);
     146psVector       *Polynomial1DEvalVector_EAM(const psPolynomial1D *myPoly, const psVector *x);
     147psPolynomial1D *Polynomial1DAlloc(psS32 nOrder, psPolynomialType type);
     148psPolynomial1D *VectorFitPolynomial1DOrd_EAM(psPolynomial1D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* yErr);
    153149
    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
     151bool            onesource (psImageData *imdata, psMetadata *config, char *modelName, float x, float y);
     152psMetadata     *fs_args (int *argc, char **argv);
     153int             fs_usage ();
     154bool            DumpImage (psImage *image, char *filename);
    160155
    161156// 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.