IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 2, 2006, 1:30:35 PM (20 years ago)
Author:
eugene
Message:

updated to use new image/subimage/region coordinate consistency

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphotArguments.c

    r6117 r6311  
    11# include "psphot.h"
    22
    3 static void usage (psMetadata *arguments) ;
     3static void usage (void);
    44
    55ppConfig *psphotArguments (int *argc, char **argv) {
    66
    77    int N;
     8
     9    if (*argc == 1) usage ();
    810
    911    // basic pslib options
     
    2224
    2325    // arguments (must be supplied for each run, or not used)
    24     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-psf", 0, "input psf file", "");
    25     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-mask", 0,   "Name of the mask image", "");
    26     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-resid", 0,  "Name of the output residual image", "");
    27     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-weight", 0, "Name of the weight image", "");
    28     psMetadataAddS32(config->arguments, PS_LIST_TAIL, "-chip", 0, "Chip number to process (if positive)", -1);
    29    
     26    // mask image (input) is used by psphotImageLoop
     27    if ((N = psArgumentGet (*argc, argv, "-mask"))) {
     28        psArgumentRemove (N, argc, argv);
     29        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "MASK_IMAGE", PS_META_REPLACE, "", psStringCopy(argv[N]));
     30        psArgumentRemove (N, argc, argv);
     31    }
     32
     33    // weight image (input) is used by psphotImageLoop
     34    if ((N = psArgumentGet (*argc, argv, "-weight"))) {
     35        psArgumentRemove (N, argc, argv);
     36        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "WEIGHT_IMAGE", PS_META_REPLACE, "", psStringCopy(argv[N]));
     37        psArgumentRemove (N, argc, argv);
     38    }
     39
     40    // residual image (output) is used by psphotOutput
     41    if ((N = psArgumentGet (*argc, argv, "-resid"))) {
     42        psArgumentRemove (N, argc, argv);
     43        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "RESID_IMAGE", PS_META_REPLACE, "", psStringCopy(argv[N]));
     44        psArgumentRemove (N, argc, argv);
     45    }
     46
     47    // chip selection is used to limit chips to be processed
     48    if ((N = psArgumentGet (*argc, argv, "-chip"))) {
     49        psArgumentRemove (N, argc, argv);
     50        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTION", PS_META_REPLACE, "", psStringCopy(argv[N]));
     51        psArgumentRemove (N, argc, argv);
     52    }
     53
    3054    // run the test model (requires X,Y coordinate)
    3155    if ((N = psArgumentGet (*argc, argv, "-modeltest"))) {
     
    5882    }
    5983
    60     // Parse command-line overrides of recipe values
    61     psMetadata *recipe = psMetadataAlloc ();
     84    // these other options override the recipe options
     85    config->options = psMetadataAlloc ();
    6286
    63     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-photcode", 0, "photometry code", "NONE");
    64     psMetadataAddStr (config->arguments, PS_LIST_TAIL, "-break", 0, "", "NONE");
    65     psMetadataAddS32 (config->arguments, PS_LIST_TAIL, "-fitmode", 0, "", 2);
    66 
    67     // analysis region : XXX override recipe
    68     if ((N = psArgumentGet (*argc, argv, "-photcode"))) {
     87    // PSF : optional psf file to be loaded
     88    if ((N = psArgumentGet (*argc, argv, "-psf"))) {
    6989        psArgumentRemove (N, argc, argv);
    70         psMetadataAddStr (recipe, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", psStringCopy(argv[N]));
     90        psMetadataAddStr (config->options, PS_LIST_TAIL, "PSF_INPUT_FILE", PS_META_REPLACE, "", psStringCopy(argv[N]));
    7191        psArgumentRemove (N, argc, argv);
    7292    }
    7393
    74     // analysis region : XXX override recipe
    75     if ((N = psArgumentGet (*argc, argv, "-break"))) {
     94    // photcode : used in output to supplement header data (argument or recipe?)
     95    if ((N = psArgumentGet (*argc, argv, "-photcode"))) {
    7696        psArgumentRemove (N, argc, argv);
    77         psMetadataAddStr (recipe, PS_LIST_TAIL, "BREAK_POINT", PS_META_REPLACE, "", psStringCopy(argv[N]));
     97        psMetadataAddStr (config->options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", psStringCopy(argv[N]));
    7898        psArgumentRemove (N, argc, argv);
    7999    }
    80100
    81     // analysis region : XXX override recipe
    82     if ((N = psArgumentGet (*argc, argv, "-fitmode"))) {
     101    // break : used from recipe throughout psphotReadout
     102    if ((N = psArgumentGet (*argc, argv, "-break"))) {
    83103        psArgumentRemove (N, argc, argv);
    84         psMetadataAddStr (recipe, PS_LIST_TAIL, "FITMODE", PS_META_REPLACE, "", psStringCopy(argv[N]));
     104        psMetadataAddStr (config->options, PS_LIST_TAIL, "BREAK_POINT", PS_META_REPLACE, "", psStringCopy(argv[N]));
    85105        psArgumentRemove (N, argc, argv);
    86106    }
    87107
    88     // analysis region : XXX override recipe
     108    // fitmode : used from recipe throughout psphotReadout
     109    if ((N = psArgumentGet (*argc, argv, "-fitmode"))) {
     110        psArgumentRemove (N, argc, argv);
     111        psMetadataAddStr (config->options, PS_LIST_TAIL, "FITMODE", PS_META_REPLACE, "", psStringCopy(argv[N]));
     112        psArgumentRemove (N, argc, argv);
     113    }
     114
     115    // analysis region : overrides recipe value, used in psphotReadout/psphotEnsemblePSF
    89116    if ((N = psArgumentGet (*argc, argv, "-region"))) {
    90117        psArgumentRemove (N, argc, argv);
    91         psMetadataAddStr (recipe, PS_LIST_TAIL, "ANALYSIS_REGION", 0, "", psStringCopy(argv[N]));
     118        psMetadataAddStr (config->options, PS_LIST_TAIL, "ANALYSIS_REGION", 0, "", psStringCopy(argv[N]));
    92119        psArgumentRemove (N, argc, argv);
    93120    }
     
    96123    while ((N = psArgumentGet (*argc, argv, "-D"))) {
    97124        psArgumentRemove (N, argc, argv);
    98         psMetadataAddStr (recipe, PS_LIST_TAIL, argv[N], 0, "", argv[N+1]);
     125        psMetadataAddStr (config->options, PS_LIST_TAIL, argv[N], 0, "", argv[N+1]);
    99126        psArgumentRemove (N, argc, argv);
    100127        psArgumentRemove (N, argc, argv);
     
    104131    while ((N = psArgumentGet (*argc, argv, "-Df"))) {
    105132        psArgumentRemove (N, argc, argv);
    106         psMetadataAddF32 (recipe, PS_LIST_TAIL, argv[N], 0, "", atof(argv[N+1]));
     133        psMetadataAddF32 (config->options, PS_LIST_TAIL, argv[N], 0, "", atof(argv[N+1]));
    107134        psArgumentRemove (N, argc, argv);
    108135        psArgumentRemove (N, argc, argv);
     
    112139    while ((N = psArgumentGet (*argc, argv, "-Di"))) {
    113140        psArgumentRemove (N, argc, argv);
    114         psMetadataAddS32 (recipe, PS_LIST_TAIL, argv[N], 0, "", atoi(argv[N+1]));
     141        psMetadataAddS32 (config->options, PS_LIST_TAIL, argv[N], 0, "", atoi(argv[N+1]));
    115142        psArgumentRemove (N, argc, argv);
    116143        psArgumentRemove (N, argc, argv);
    117144    }
    118145
    119     // place the recipe options on the arguments stack
    120     psMetadataAddPtr (config->arguments, PS_LIST_TAIL, "RECIPE.OPTIONS", PS_DATA_UNKNOWN, "", recipe);
    121 
    122     if (!psArgumentParse(config->arguments, argc, argv)) usage (config->arguments);
    123     if (*argc != 3) usage (config->arguments);
     146    if (*argc != 3) usage ();
    124147
    125148    // input and output positions are fixed
    126     psMetadataAddStr (config->arguments, PS_LIST_TAIL, "-input",  PS_META_REPLACE, "", argv[1]);
    127     psMetadataAddStr (config->arguments, PS_LIST_TAIL, "-output", PS_META_REPLACE, "", argv[2]);
     149    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "INPUT_FILE",  PS_META_REPLACE, "", argv[1]);
     150    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT_ROOT", PS_META_REPLACE, "", argv[2]);
    128151
     152    psTrace(__func__, 1, "Done with psphotArguments...\n");
    129153    return (config);
    130154}
    131155
    132 static void usage (psMetadata *arguments) {
     156static void usage (void) {
    133157
    134158    fprintf (stderr, "USAGE: psphot (image) (output)\n");
    135     psArgumentHelp (arguments);
    136159    exit (2);
    137160}
Note: See TracChangeset for help on using the changeset viewer.