IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14673


Ignore:
Timestamp:
Aug 27, 2007, 11:19:10 AM (19 years ago)
Author:
Paul Price
Message:

Adding support for finding the optimum ISIS kernels.

Location:
trunk/ppSub/src
Files:
2 edited

Legend:

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

    r14629 r14673  
    199199    psMetadataAddBool(arguments,  PS_LIST_TAIL, "-generate-mask", 0, "Generate mask if not supplied?", false);
    200200    psMetadataAddStr(arguments,  PS_LIST_TAIL, "-stamps", 0, "Stamps filename; file has x,y on each line", NULL);
     201    psMetadataAddBool(arguments, PS_LIST_TAIL, "-opt", 0, "Derive optimum parameters for ISIS kernels?", false);
     202    psMetadataAddF32(arguments, PS_LIST_TAIL, "-opt-min", 0, "Minimum value for optimum kernel search", NAN);
     203    psMetadataAddF32(arguments, PS_LIST_TAIL, "-opt-max", 0, "Minimum value for optimum kernel search", NAN);
     204    psMetadataAddF32(arguments, PS_LIST_TAIL, "-opt-step", 0, "Step value for optimum kernel search", NAN);
     205    psMetadataAddF32(arguments, PS_LIST_TAIL, "-opt-tol", 0, "Tolerance for optimum kernel search", NAN);
     206    psMetadataAddS32(arguments, PS_LIST_TAIL, "-opt-order", 0, "Maximum order for optimum kernel search", -1);
    201207
    202208    if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 4) {
     
    260266    }
    261267
     268    if (psMetadataLookupBool(NULL, arguments, "-opt") || psMetadataLookupBool(NULL, recipe, "OPTIMUM")) {
     269        psMetadataAddBool(config->arguments, PS_LIST_TAIL, "OPTIMUM", 0,
     270                          "Derive optimum parameters for ISIS kernels?", true);
     271        VALUE_ARG_RECIPE_FLOAT("-opt-min", "OPTIMUM.MIN",   F32);
     272        VALUE_ARG_RECIPE_FLOAT("-opt-max", "OPTIMUM.MAX",   F32);
     273        VALUE_ARG_RECIPE_FLOAT("-opt-step","OPTIMUM.STEP",  F32);
     274        VALUE_ARG_RECIPE_FLOAT("-opt-tol", "OPTIMUM.TOL",   F32);
     275        VALUE_ARG_RECIPE_INT("-opt-order", "OPTIMUM.ORDER", S32, -1);
     276    }
     277
    262278    psMetadataAddBool(config->arguments, PS_LIST_TAIL, "REVERSE", 0, "Reverse sense of subtraction",
    263279                      psMetadataLookupBool(NULL, arguments, "-reverse"));
  • trunk/ppSub/src/ppSubReadout.c

    r14650 r14673  
    5252    const char *stampsName = psMetadataLookupStr(&mdok, config->arguments, "STAMPS"); // Filename for stamps
    5353
     54    bool optimum = psMetadataLookupBool(&mdok, config->arguments, "OPTIMUM"); // Derive optimum parameters?
     55    float optMin = psMetadataLookupF32(&mdok, config->arguments, "OPTIMUM.MIN"); // Minimum width for search
     56    float optMax = psMetadataLookupF32(&mdok, config->arguments, "OPTIMUM.MAX"); // Maximum width for search
     57    float optStep = psMetadataLookupF32(&mdok, config->arguments, "OPTIMUM.STEP"); // Step for search
     58    float optThresh = psMetadataLookupF32(&mdok, config->arguments, "OPTIMUM.TOL"); // Tolerance for search
     59    int optOrder = psMetadataLookupS32(&mdok, config->arguments, "OPTIMUM.ORDER"); // Order for search
     60
    5461    // Generate masks if they don't exist
    5562    int numCols = input->numCols, numRows = input->numRows; // Image dimensions
     
    7178    }
    7279
     80    psVector *optWidths = NULL;         // Vector with FWHMs for optimum search
     81    if (optimum) {
     82        optWidths = psVectorCreate(optWidths, optMin, optMax, optStep, PS_TYPE_F32);
     83    }
     84
    7385    if (!pmSubtractionMatch(outRO, refRO, inRO, footprint, regionSize, spacing, threshold, stampsName,
    74                             NAN, type, size, order, widths, orders, inner, ringsOrder, binning, iter,
    75                             rej, maskBad, maskBlank)) {
     86                            NAN, type, size, order, widths, orders, inner, ringsOrder, binning, optimum,
     87                            optWidths, optOrder, optThresh, iter, rej, maskBad, maskBlank)) {
    7688        psError(PS_ERR_UNKNOWN, false, "Unable to match images.");
    7789        psFree(outRO);
    7890        return false;
    7991    }
    80 
     92    psFree(optWidths);
    8193
    8294    // Add kernel descrption to header
Note: See TracChangeset for help on using the changeset viewer.