IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 33690 for trunk/psphot/src


Ignore:
Timestamp:
Apr 3, 2012, 5:46:39 PM (14 years ago)
Author:
bills
Message:

In psphot and psphotStack accept exposure number images (EXPNUM) as inputs.
If supplied set the N_FRAMES value for each source based on the
value in the EXPNUM image.

Location:
trunk/psphot/src
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/Makefile.am

    r32633 r33690  
    206206        psphotPetrosianStats.c         \
    207207        psphotPetrosianVisual.c        \
    208         psphotEfficiency.c
     208        psphotEfficiency.c             \
     209        psphotSetNFrames.c
    209210
    210211# re-instate these
  • trunk/psphot/src/psphot.h

    r32695 r33690  
    481481bool psphotStackObjectsSelectForAnalysis (pmConfig *config, const pmFPAview *view, const char *filerule, psArray *objects);
    482482
     483bool psphotSetNFrames (pmConfig *config, const pmFPAview *view, const char *filerule);
     484bool psphotSetNFramesReadout (pmConfig *config, const pmFPAview *view, const char *filerule, int index);
     485
    483486#endif
  • trunk/psphot/src/psphotArguments.c

    r31154 r33690  
    217217    pmConfigFileSetsMD (config->arguments, &argc, argv, "PSPHOT.PSF", "-psf",      "-psflist");
    218218    pmConfigFileSetsMD (config->arguments, &argc, argv, "SRC",        "-src",      "-srclist");
     219    pmConfigFileSetsMD (config->arguments, &argc, argv, "EXPNUM",     "-expnum",   "-expnumlist");
    219220
    220221    if (argc == 1) {
  • trunk/psphot/src/psphotKronIterate.c

    r33089 r33690  
    150150            if (!psphotKronIterate_Threaded(job)) {
    151151                psError(PS_ERR_UNKNOWN, false, "Unable to guess model.");
    152                 psFree(AnalysisRegion);
     152                // psFree(AnalysisRegion);
    153153                return false;
    154154            }
     
    222222            float windowRadius = PS_MAX(RADIUS, maxWindow);
    223223
     224#ifdef notdef
     225            fprintf(stderr, "Redefining pixels for source: %d %4d %4d new radius: %f\n",
     226                                        i, source->peak->x, source->peak->y, windowRadius+2);
     227#endif
    224228            // re-allocate image, weight, mask arrays for each peak with box big enough to fit BIG_RADIUS
    225229            pmSourceRedefinePixels (source, readout, source->peak->x, source->peak->y, windowRadius + 2);
  • trunk/psphot/src/psphotParseCamera.c

    r29936 r33690  
    22
    33// define the needed / desired I/O files
     4
     5
    46bool psphotParseCamera (pmConfig *config) {
    57
     
    4042    }
    4143
     44    pmFPAfileBindFromArgs (&status, input, config, "PSPHOT.EXPNUM", "EXPNUM");
     45    if (!status) {
     46        psError (PS_ERR_UNKNOWN, false, "failed to load find definition");
     47        return NULL;
     48    }
     49
     50
    4251    // define the additional input/output files associated with psphot
    4352    if (!psphotDefineFiles (config, input)) {
  • trunk/psphot/src/psphotStackArguments.c

    r31154 r33690  
    5353        psMetadataAddStr (options, PS_LIST_TAIL, "BREAK_POINT", PS_META_REPLACE, "", argv[N]);
    5454        psArgumentRemove (N, &argc, argv);
     55    }
     56    if ((N = psArgumentGet (argc, argv, "-ds9regions"))) {
     57        psArgumentRemove (N, &argc, argv);
     58        pmSubtractionRegions(true);
    5559    }
    5660
  • trunk/psphot/src/psphotStackImageLoop.c

    r33030 r33690  
    3030    }
    3131
     32    psMetadata *recipe = psMetadataLookupPtr (NULL, config->recipes, PSPHOT_RECIPE);
     33    bool useRaw = psMetadataLookupBool (NULL, recipe, "PSPHOT.STACK.USE.RAW");
     34    if (useRaw && inputRaw == NULL) {
     35        psLogMsg ("psphot", 1, "PSPHOT.STACK.USE.RAW set but no raw input.");
     36        useRaw = false;
     37    }
     38
    3239    pmFPAview *view = pmFPAviewAlloc (0);
    3340
    34     // XXX for now, just load the full set of images up front
     41
     42    // XXX for now, just load the full set of images up front except for EXPNUM which we defer
     43    pmFPAfileActivate (config->files, false, "PSPHOT.STACK.EXPNUM.RAW");
    3544    if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE ("failed input for fpa in psphot.");
    3645
     
    8695        UpdateHeadersForChip(config, view);
    8796
    88         // save output which is saved at the chip level
    89         if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE ("failed output for Chip in psphot.");
     97        // Defer output until we have performed psphotSetNFrames()
     98        pmFPAfileActivate (config->files, false, NULL);
     99
     100        // Iterate up
     101        if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE ("failed pmFPAfileIOChecks for Chip in psphot.");
    90102    }
    91103    psMemDump("doneloop");
     
    93105    UpdateHeadersForFPA(config, view);
    94106
    95     // save output which is saved at the fpa level
     107    // Iterate up output which is saved at the fpa level
     108    if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE ("failed ouput pmFPAfileIOChecks FPA in psphot.");
     109
     110    // Load the appropriate EXPNUM image
     111    pmFPAfileActivate (config->files, true, useRaw ? "PSPHOT.STACK.EXPNUM.RAW" : "PSPHOT.STACK.EXPNUM.CNV");
     112
     113    if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE ("failed input for fpa EXPNUM in psphot.");
     114
     115    // for psphot, we force data to be read at the chip level
     116    while ((chip = pmFPAviewNextChip (view, input->fpa, 1)) != NULL) {
     117        psLogMsg ("psphot", 4, "Chip %d: %x %x\n", view->chip, chip->file_exists, chip->process);
     118        if (! chip->process || ! chip->file_exists) { continue; }
     119        if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE ("failed input for Chip EXPNUM in psphotStack.");
     120
     121        // there is now only a single chip (multiple readouts?). loop over it and process
     122        while ((cell = pmFPAviewNextCell (view, input->fpa, 1)) != NULL) {
     123            psLogMsg ("psphot", 5, "Cell %d: %x %x\n", view->cell, cell->file_exists, cell->process);
     124            if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE ("failed input for Cell in psphotStack.");
     125
     126            // process each of the readouts
     127            while ((readout = pmFPAviewNextReadout (view, input->fpa, 1)) != NULL) {
     128                psLogMsg ("psphot", 6, "Readout %d: %x %x\n", view->readout, cell->file_exists, cell->process);
     129                if (! readout->data_exists) { continue; }
     130
     131                if (!psphotSetNFrames (config, view, useRaw ? inputRaw->name : inputCnv->name)) ESCAPE ("failed to setNFrames.");
     132            }
     133        }
     134        // now activate all files to trigger final output
     135        pmFPAfileActivate (config->files, true, NULL);
     136
     137        if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE ("failed output for Chip in psphot.");
     138    }
    96139    if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE ("failed ouput for FPA in psphot.");
    97140
  • trunk/psphot/src/psphotStackParseCamera.c

    r31154 r33690  
    5959                }
    6060            }
     61            psString expnum = psMetadataLookupStr(&status, input, "RAW:EXPNUM"); // Name of expnum image
     62            if (expnum && strlen(expnum) > 0) {
     63                if (!defineFile(config, rawInputFile, "PSPHOT.STACK.EXPNUM.RAW", expnum, PM_FPA_FILE_EXPNUM)) {
     64                    psError(PS_ERR_UNKNOWN, false, "Unable to define file from expnum %d (%s)", i, expnum);
     65                    return false;
     66                }
     67            }
    6168            nRaw ++;
    6269        }
     
    8188                if (!defineFile(config, cnvInputFile, "PSPHOT.STACK.VARIANCE.CNV", variance, PM_FPA_FILE_VARIANCE)) {
    8289                    psError(PS_ERR_UNKNOWN, false, "Unable to define file from variance %d (%s)", i, variance);
     90                    return false;
     91                }
     92            }
     93            psString expnum = psMetadataLookupStr(&status, input, "CNV:EXPNUM"); // Name of EXPNUM image
     94            if (expnum && strlen(expnum) > 0) {
     95                if (!defineFile(config, cnvInputFile, "PSPHOT.STACK.EXPNUM.CNV", expnum, PM_FPA_FILE_EXPNUM)) {
     96                    psError(PS_ERR_UNKNOWN, false, "Unable to define file from expnum %d (%s)", i, expnum);
    8397                    return false;
    8498                }
Note: See TracChangeset for help on using the changeset viewer.