IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 13, 2007, 9:59:02 AM (19 years ago)
Author:
Paul Price
Message:

Supporting symbolic names for masks instead of numerical values.

File:
1 edited

Legend:

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

    r14107 r14193  
    5858
    5959// Get a string value from the command-line and add it to the target
    60 static bool valueArgStr(pmConfig *config,      // Configuration
    61                         psMetadata *arguments, // Command-line arguments
     60static bool valueArgStr(psMetadata *arguments, // Command-line arguments
    6261                        const char *argName, // Argument name in the command-line arguments
    6362                        const char *mdName, // Name for value in the metadata
     
    7271}
    7372
     73// Get a string value from the command-line or recipe and add it to the target
     74static bool valueArgRecipeStr(psMetadata *arguments, // Command-line arguments
     75                              psMetadata *recipe, // Recipe
     76                              const char *argName, // Argument name in the command-line arguments
     77                              const char *mdName, // Name for value in the metadata
     78                              psMetadata *target // Target metadata to which to add value
     79                              )
     80{
     81    bool mdok;                          // Status of MD lookup
     82    psString value = psMetadataLookupStr(&mdok, arguments, argName); // Value of interest
     83    if (!mdok) {
     84        value = psMetadataLookupStr(NULL, recipe, mdName);
     85        if (!mdok) {
     86            psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Unable to find %s in recipe %s",
     87                    mdName, PPSUB_RECIPE);
     88            return false;
     89        }
     90    }
     91    return psMetadataAddStr(target, PS_LIST_TAIL, mdName, 0, NULL, value);
     92}
     93
    7494// Get a vector from the command-line or recipe, and add it to the target
    75 static bool vectorArgRecipe(pmConfig *config,   // Configuration
    76                             psMetadata *arguments, // Command-line arguments
     95static bool vectorArgRecipe(psMetadata *arguments, // Command-line arguments
    7796                            const char *argName, // Argument name in the command-line arguments
    7897                            const psMetadata *recipe, // Recipe
     
    176195    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "Name of the output image", argv[3]);
    177196
    178     valueArgStr(config, arguments, "-inmask",    "INPUT.MASK",    config->arguments);
    179     valueArgStr(config, arguments, "-inweight",  "INPUT.WEIGHT",  config->arguments);
    180     valueArgStr(config, arguments, "-refmask",   "REF.MASK",      config->arguments);
    181     valueArgStr(config, arguments, "-refweight", "REF.WEIGHT",    config->arguments);
    182     valueArgStr(config, arguments, "-stat",      "STATS",         config->arguments);
     197    valueArgStr(arguments, "-inmask",    "INPUT.MASK",    config->arguments);
     198    valueArgStr(arguments, "-inweight",  "INPUT.WEIGHT",  config->arguments);
     199    valueArgStr(arguments, "-refmask",   "REF.MASK",      config->arguments);
     200    valueArgStr(arguments, "-refweight", "REF.WEIGHT",    config->arguments);
     201    valueArgStr(arguments, "-stat",      "STATS",         config->arguments);
    183202
    184203    psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSUB_RECIPE); // Recipe for ppSim
     
    197216    VALUE_ARG_RECIPE_INT("-iter",         "ITER",            S32, 0);
    198217    VALUE_ARG_RECIPE_FLOAT("-rej",        "REJ",             F32);
    199     VALUE_ARG_RECIPE_INT("-mask-bad",     "MASK.BAD",        U8, 0);
    200     VALUE_ARG_RECIPE_INT("-mask-blank",   "MASK.BLANK",      U8, 0);
    201 
    202     vectorArgRecipe(config, arguments, "-isis-widths", recipe, "ISIS.WIDTHS", config->arguments, PS_TYPE_F32);
    203     vectorArgRecipe(config, arguments, "-isis-orders", recipe, "ISIS.ORDERS", config->arguments, PS_TYPE_S32);
     218
     219    valueArgRecipeStr(arguments, recipe, "-mask-bad",   "MASK.BAD",   config->arguments);
     220    valueArgRecipeStr(arguments, recipe, "-mask-blank", "MASK.BLANK", config->arguments);
     221
     222    vectorArgRecipe(arguments, "-isis-widths", recipe, "ISIS.WIDTHS", config->arguments, PS_TYPE_F32);
     223    vectorArgRecipe(arguments, "-isis-orders", recipe, "ISIS.ORDERS", config->arguments, PS_TYPE_S32);
    204224
    205225    psVector *widths = psMetadataLookupPtr(NULL, config->arguments, "ISIS.WIDTHS"); // ISIS Gaussian widths
Note: See TracChangeset for help on using the changeset viewer.