IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 27, 2009, 11:34:07 AM (17 years ago)
Author:
eugene
Message:

merge changes from trunk

Location:
branches/eam_branches/20090715/ppStack/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/20090715/ppStack/src/ppStackCamera.c

    r23576 r25624  
    8585        psFree(runVars);
    8686
    87         psArray *runPSF = pmFPAfileDefineMultipleFromRun(&status, runImages, config,
    88                                                          "PPSTACK.INPUT.PSF"); // Input PSFs
    89         if (!status) {
    90             psError(PS_ERR_UNKNOWN, false, "Unable to define input PSFs from RUN metadata.");
    91             psFree(runImages);
    92             return false;
    93         }
    94         if (runPSF) {
    95             havePSFs = true;
    96         }
    97         psFree(runPSF);
    98 
    9987        psArray *runSrc = pmFPAfileDefineMultipleFromRun(&status, runImages, config,
    10088                                                         "PPSTACK.INPUT.SOURCES"); // Input sources
     
    112100
    113101        if (convolve) {
    114             psArray *runKernel = pmFPAfileDefineMultipleFromRun(&status, runImages, config,
    115                                                                 "PPSTACK.CONV.KERNEL"); // Convolution kernels
    116             if (!status) {
    117                 psError(PS_ERR_UNKNOWN, false, "Unable to define convolution kernels from RUN metadata.");
    118                 psFree(runImages);
    119                 return false;
    120             }
    121             if (!runKernel) {
    122                 psError(PS_ERR_UNEXPECTED_NULL, true,
    123                         "Unable to define convolution kernels from RUN metadata.");
    124                 psFree(runImages);
    125                 return false;
    126             }
    127             psFree(runKernel);
     102            {
     103                psArray *runPSF = pmFPAfileDefineMultipleFromRun(&status, runImages, config,
     104                                                         "PPSTACK.INPUT.PSF"); // Input PSFs
     105                if (!status) {
     106                    psError(PS_ERR_UNKNOWN, false, "Unable to define input PSFs from RUN metadata.");
     107                    psFree(runImages);
     108                    return false;
     109                }
     110                if (runPSF) {
     111                    havePSFs = true;
     112                }
     113                psFree(runPSF);
     114            }
     115            {
     116
     117                psArray *runKernel = pmFPAfileDefineMultipleFromRun(&status, runImages, config,
     118                                                                    "PPSTACK.CONV.KERNEL"); // Conv'n kernels
     119                if (!status) {
     120                    psError(PS_ERR_UNKNOWN, false, "Unable to define convolution kernels from RUN metadata.");
     121                    psFree(runImages);
     122                    return false;
     123                }
     124                if (!runKernel) {
     125                    psError(PS_ERR_UNEXPECTED_NULL, true,
     126                            "Unable to define convolution kernels from RUN metadata.");
     127                    psFree(runImages);
     128                    return false;
     129                }
     130                psFree(runKernel);
     131            }
    128132        }
    129133
  • branches/eam_branches/20090715/ppStack/src/ppStackMatch.c

    r25406 r25624  
    1515#define SOURCE_MASK (PM_SOURCE_MODE_FAIL | PM_SOURCE_MODE_DEFECT | PM_SOURCE_MODE_SATURATED | \
    1616                     PM_SOURCE_MODE_CR_LIMIT | PM_SOURCE_MODE_EXT_LIMIT) // Mask to apply to input sources
    17 #define FAINT_SOURCE_FRAC 1.0e-4         // Set minimum flux to this fraction of faintest source flux
     17#define NOISE_FRACTION 0.01             // Set minimum flux to this fraction of noise
    1818#define COVAR_FRAC 0.01                 // Truncation fraction for covariance matrix
    1919
     
    266266            psRegion *region = psMetadataLookupPtr(NULL, conv->analysis,
    267267                                                   PM_SUBTRACTION_ANALYSIS_REGION); // Convolution region
    268 
    269             pmSubtractionAnalysis(readout->analysis, kernels, region,
     268            pmSubtractionKernels *kernels = psMetadataLookupPtr(NULL, conv->analysis,
     269                                                                PM_SUBTRACTION_ANALYSIS_KERNEL);
     270
     271            pmSubtractionAnalysis(readout->analysis, NULL, kernels, region,
    270272                                  readout->image->numCols, readout->image->numRows);
    271273
     
    317319            pmReadout *fake = pmReadoutAlloc(NULL); // Fake readout with target PSF
    318320
     321            psStats *bg = psStatsAlloc(PS_STAT_ROBUST_STDEV); // Statistics for background
     322            psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS); // Random number generator
     323            if (!psImageBackground(bg, NULL, readout->image, readout->mask, maskVal | maskBad, rng)) {
     324                psError(PS_ERR_UNKNOWN, false, "Can't measure background for image.");
     325                psFree(fake);
     326                psFree(optWidths);
     327                psFree(conv);
     328                psFree(bg);
     329                psFree(rng);
     330                return false;
     331            }
     332            float minFlux = NOISE_FRACTION * bg->robustStdev; // Minimum flux level for fake image
     333            psFree(rng);
     334            psFree(bg);
     335
    319336            // For the sake of stamps, remove nearby sources
    320337            psArray *stampSources = stackSourcesFilter(options->sourceLists->data[index],
     
    323340            if (!pmReadoutFakeFromSources(fake, readout->image->numCols, readout->image->numRows,
    324341                                          stampSources, SOURCE_MASK, NULL, NULL, options->psf,
    325                                           NAN, footprint + size, false, true)) {
     342                                          minFlux, footprint + size, false, true)) {
    326343                psError(PS_ERR_UNKNOWN, false, "Unable to generate fake image with target PSF.");
    327344                psFree(fake);
     
    369386                                                               PM_SUBTRACTION_ANALYSIS_KERNEL); // Conv kernel
    370387            if (kernel) {
    371                 if (!pmSubtractionMatchPrecalc(conv, NULL, readout, fake, readout->analysis,
     388                if (!pmSubtractionMatchPrecalc(NULL, conv, fake, readout, readout->analysis,
    372389                                               stride, sysError, maskVal, maskBad, maskPoor,
    373390                                               poorFrac, badFrac)) {
     
    383400                }
    384401            } else {
    385                 if (!pmSubtractionMatch(conv, NULL, readout, fake, footprint, stride, regionSize, spacing,
     402                if (!pmSubtractionMatch(NULL, conv, fake, readout, footprint, stride, regionSize, spacing,
    386403                                        threshold, stampSources, stampsName, type, size, order, widths,
    387404                                        orders, inner, ringsOrder, binning, penalty,
    388405                                        optimum, optWidths, optOrder, optThresh, iter, rej, sysError,
    389406                                        maskVal, maskBad, maskPoor, poorFrac, badFrac,
    390                                         PM_SUBTRACTION_MODE_1)) {
     407                                        PM_SUBTRACTION_MODE_2)) {
    391408                    psError(PS_ERR_UNKNOWN, false, "Unable to match images.");
    392409                    psFree(fake);
  • branches/eam_branches/20090715/ppStack/src/ppStackPSF.c

    r23192 r25624  
    99#include "ppStack.h"
    1010
     11//#define TESTING
     12
    1113pmPSF *ppStackPSF(const pmConfig *config, int numCols, int numRows,
    1214                  const psArray *psfs, const psVector *inputMask)
    1315{
     16#ifndef TESTING
    1417    // Get the recipe values
    1518    psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // ppStack recipe
     
    3538        return NULL;
    3639    }
     40#else
     41    // Dummy PSF
     42    pmPSF *psf = pmPSFBuildSimple("PS_MODEL_PS1_V1", 4.0, 4.0, 0.0, 1.0);
     43    if (!psf) {
     44        psError(PS_ERR_UNKNOWN, false, "Unable to build dummy PSF.");
     45        return NULL;
     46    }
     47#endif
    3748
    3849    return psf;
  • branches/eam_branches/20090715/ppStack/src/ppStackReject.c

    r23573 r25624  
    99#include "ppStack.h"
    1010#include "ppStackLoop.h"
     11
     12//#define TESTING
    1113
    1214bool ppStackReject(ppStackOptions *options, pmConfig *config)
Note: See TracChangeset for help on using the changeset viewer.