IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 9, 2013, 1:33:36 PM (13 years ago)
Author:
watersc1
Message:

ppStack changes to fix source matching bug.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppStack/src/ppStackMatch.c

    r34089 r35383  
    88// #define TESTING                         // Enable debugging output
    99// #define TESTING_REUSE_CONV           // Enable debugging for re-using convolved outputs from previous run
     10
     11// #define TESTING_CZW
    1012
    1113#ifdef TESTING_REUSE_CONV
     
    264266            // Add the background into the target image
    265267            psImage *bgImage = stackBackgroundModel(readout, config); // Image of background
    266             psBinaryOp(fake->image, fake->image, "+", bgImage);
     268            psBinaryOp(fake->image, fake->image, "+", bgImage);
    267269            psFree(bgImage);
    268270#endif
    269271
    270 #ifdef TESTING
     272#ifdef TESTING_CZW
    271273            {
    272274                pmHDU *hdu = pmHDUFromCell(readout->parent);
    273275                psString name = NULL;
    274                 psStringAppend(&name, "fake_%03d.fits", index);
     276                psStringAppend(&name, "/local/tmp/fake_%03d.fits", index);
    275277                pmStackVisualPlotTestImage(fake->image, name);
    276278                psFits *fits = psFitsOpen(name, "w");
     
    282284                pmHDU *hdu = pmHDUFromCell(readout->parent);
    283285                psString name = NULL;
    284                 psStringAppend(&name, "real_%03d.fits", index);
     286                psStringAppend(&name, "/local/tmp/real_%03d.fits", index);
    285287                pmStackVisualPlotTestImage(readout->image, name);
    286288                psFits *fits = psFitsOpen(name, "w");
    287289                psFree(name);
    288290                psFitsWriteImage(fits, hdu->header, readout->image, 0, NULL);
     291                psFitsClose(fits);
     292            }
     293            {
     294                pmHDU *hdu = pmHDUFromCell(readout->parent);
     295                psString name = NULL;
     296                psStringAppend(&name, "/local/tmp/real_var_%03d.fits", index);
     297                pmStackVisualPlotTestImage(readout->variance, name);
     298                psFits *fits = psFitsOpen(name, "w");
     299                psFree(name);
     300                psFitsWriteImage(fits, hdu->header, readout->variance, 0, NULL);
    289301                psFitsClose(fits);
    290302            }
     
    355367
    356368
    357 #ifdef TESTING
     369#ifdef TESTING_CZW
    358370            {
    359371                pmHDU *hdu = pmHDUFromCell(readout->parent);
    360372                psString name = NULL;
    361                 psStringAppend(&name, "conv_%03d.fits", index);
     373                psStringAppend(&name, "/local/tmp/conv_%03d.fits", index);
    362374                pmStackVisualPlotTestImage(conv->image, name);
    363375                psFits *fits = psFitsOpen(name, "w");
     
    369381                pmHDU *hdu = pmHDUFromCell(readout->parent);
    370382                psString name = NULL;
    371                 psStringAppend(&name, "diff_%03d.fits", index);
     383                psStringAppend(&name, "/local/tmp/conv_var_%03d.fits", index);
     384                pmStackVisualPlotTestImage(conv->variance, name);
     385                psFits *fits = psFitsOpen(name, "w");
     386                psFree(name);
     387                psFitsWriteImage(fits, hdu->header, conv->variance, 0, NULL);
     388                psFitsClose(fits);
     389            }
     390            {
     391                pmHDU *hdu = pmHDUFromCell(readout->parent);
     392                psString name = NULL;
     393                psStringAppend(&name, "/local/tmp/diff_%03d.fits", index);
    372394                pmStackVisualPlotTestImage(fake->image, name);
    373395                psFits *fits = psFitsOpen(name, "w");
     
    510532    }
    511533
    512     if (!stackRenormaliseReadout(config, readout)) {
    513         psFree(rng);
    514         psFree(bg);
    515         return false;
    516     }
    517 
     534#ifdef TESTING_CZW
     535    // CZW begin check of weight before renormalize step
    518536    // Measure the variance level for the weighting
    519537    if (psMetadataLookupBool(NULL, recipe, "WEIGHTS")) {
     
    529547        options->weightings->data.F32[index] = 1.0;
    530548    }
    531     psLogMsg("ppStack", PS_LOG_INFO, "Weighting for image %d is %f\n",
    532              index, options->weightings->data.F32[index]);
     549    psLogMsg("ppStack", PS_LOG_INFO, "Prenorm Weighting for image %d is %g covar %g median %g\n",
     550             index, options->weightings->data.F32[index],psImageCovarianceFactor(readout->covariance),
     551             psStatsGetValue(bg, PS_STAT_ROBUST_MEDIAN));
     552    // CZW end
     553#endif
     554    if (!stackRenormaliseReadout(config, readout)) {
     555        psFree(rng);
     556        psFree(bg);
     557        return false;
     558    }
     559   
     560    // Measure the variance level for the weighting
     561    if (psMetadataLookupBool(NULL, recipe, "WEIGHTS")) {
     562        if (!psImageBackground(bg, NULL, readout->variance, readout->mask, maskVal | maskBad, rng)) {
     563            psError(PPSTACK_ERR_DATA, false, "Can't measure mean variance for image.");
     564            psFree(rng);
     565            psFree(bg);
     566            return false;
     567        }
     568        options->weightings->data.F32[index] = 1.0 / (psStatsGetValue(bg, PS_STAT_ROBUST_MEDIAN) *
     569                                                      psImageCovarianceFactor(readout->covariance));
     570    } else {
     571        options->weightings->data.F32[index] = 1.0;
     572    }
     573    psLogMsg("ppStack", PS_LOG_INFO, "Weighting for image %d is %g covar %g median %g\n",
     574             index, options->weightings->data.F32[index],psImageCovarianceFactor(readout->covariance),
     575             psStatsGetValue(bg, PS_STAT_ROBUST_MEDIAN));
    533576
    534577    psFree(rng);
Note: See TracChangeset for help on using the changeset viewer.