IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 17368


Ignore:
Timestamp:
Apr 7, 2008, 12:35:31 PM (18 years ago)
Author:
Paul Price
Message:

Add renormalisation of weight map.

Location:
trunk/ppSub/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppSub/src/ppSubArguments.c

    r15817 r17368  
    212212    psMetadataAddS32(arguments, PS_LIST_TAIL, "-opt-order", 0, "Maximum order for optimum kernel search", -1);
    213213    psMetadataAddBool(arguments, PS_LIST_TAIL, "-dual", 0, "Dual convolution", false);
     214    psMetadataAddBool(arguments, PS_LIST_TAIL, "-renorm", 0, "Renormalise weights?", false);
     215    psMetadataAddS32(arguments, PS_LIST_TAIL, "-renorm-width", 0, "Renormalisation width", 0);
    214216
    215217    if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 4) {
     
    291293                      psMetadataLookupBool(NULL, arguments, "-dual"));
    292294
     295    if (psMetadataLookupBool(NULL, arguments, "-renorm") || psMetadataLookupBool(NULL, recipe, "RENORM")) {
     296        psMetadataAddBool(config->arguments, PS_LIST_TAIL, "RENORM", 0, "Renormalise weights?", true);
     297        VALUE_ARG_RECIPE_INT("-renorm-width", "RENORM.WIDTH", S32, 0);
     298    }
     299
    293300    // Translate the kernel type
    294301    psString type = psMetadataLookupStr(NULL, arguments, "-type"); // Name of kernel type
  • trunk/ppSub/src/ppSubReadout.c

    r17366 r17368  
    6565    int optOrder = psMetadataLookupS32(&mdok, config->arguments, "OPTIMUM.ORDER"); // Order for search
    6666    bool dual = psMetadataLookupBool(&mdok, config->arguments, "DUAL"); // Dual convolution?
     67    bool renorm = psMetadataLookupBool(&mdok, config->arguments, "RENORM"); // Renormalise weights?
     68    int renormWidth = psMetadataLookupS32(&mdok, config->arguments, "RENORM.WIDTH"); // Width for renormalise
    6769
    6870    pmSubtractionMode mode = dual ? PM_SUBTRACTION_MODE_DUAL : PM_SUBTRACTION_MODE_UNSURE; // Subtraction mode
     
    188190    }
    189191
     192    if (renorm) {
     193        psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS, 0); // Random number generator
     194        if (!pmReadoutWeightRenorm(outRO, maskBlank, PS_STAT_ROBUST_MEDIAN, PS_STAT_ROBUST_STDEV,
     195                                   renormWidth, rng)) {
     196            psError(PS_ERR_UNKNOWN, false, "Unable to renormalise weights for photometry.");
     197            psFree(outRO);
     198            return false;
     199        }
     200    }
     201
    190202    if (psMetadataLookupBool(NULL, config->arguments, "PHOTOMETRY")) {
    191203        pmFPAfile *photFile = psMetadataLookupPtr(NULL, config->files, "PSPHOT.INPUT");
Note: See TracChangeset for help on using the changeset viewer.