IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 7677


Ignore:
Timestamp:
Jun 23, 2006, 5:33:37 PM (20 years ago)
Author:
Paul Price
Message:

Fixing code after pushing argc,argv into pmConfig.

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppImage/src/ppImage.c

    r7647 r7677  
    1111    // Determine camera, format from header if not already defined
    1212    // Construct camera in preparation for reading
    13     pmConfig *config = ppImageArguments(&argc, argv);
     13    pmConfig *config = ppImageArguments(argc, argv);
    1414    if (config == NULL) {
    1515        psErrorStackPrint(stderr, "");
  • trunk/ppImage/src/ppImage.h

    r7639 r7677  
    1313
    1414// Get the configuration
    15 pmConfig *ppImageArguments(int *argc, char **argv);
     15pmConfig *ppImageArguments(int argc, char **argv);
    1616
    1717// Determine what type of camera, and initialise
  • trunk/ppImage/src/ppImageArguments.c

    r7531 r7677  
    66}
    77
    8 pmConfig *ppImageArguments(int *argc, char **argv) {
     8pmConfig *ppImageArguments(int argc, char **argv) {
    99
    1010    int N;
    1111    bool status;
    1212
    13     if (*argc == 1) usage ();
     13    if (argc == 1) usage ();
    1414
    1515    // load the site-wide configuration information
     
    3030
    3131    // recipe option: -usemask : override MASK setting in phase2.recipe
    32     if ((N = psArgumentGet (*argc, argv, "-usemask"))) {
    33         psArgumentRemove (N, argc, argv);
    34         psMetadataAddBool (options, PS_LIST_TAIL, "MASK", PS_META_REPLACE, "", true);
    35         psArgumentRemove (N, argc, argv);
     32    if ((N = psArgumentGet(config->argc, config->argv, "-usemask"))) {
     33        psArgumentRemove (N, &config->argc, config->argv);
     34        psMetadataAddBool (options, PS_LIST_TAIL, "MASK", PS_META_REPLACE, "", true);
     35        psArgumentRemove (N, &config->argc, config->argv);
    3636    }
    3737
    38     // XXX add other PPIMAGE recipe options here 
     38    // XXX add other PPIMAGE recipe options here
    3939
    4040    // drop the local view on the options (saved on config->arguments)
     
    4242
    4343    // the input file is a required argument; if not found, we will exit
    44     status = pmConfigFileSetsMD (config->arguments, argc, argv, "INPUT", "-file", "-list");
     44    status = pmConfigFileSetsMD (config->arguments, config, "INPUT", "-file", "-list");
    4545    if (!status) { usage ();}
    4646
    4747    // if these command-line options are supplied, load the file name lists into config->arguments
    4848    // override any configuration-specified source for these files
    49     pmConfigFileSetsMD (config->arguments, argc, argv, "BIAS", "-bias", "-biaslist");
    50     pmConfigFileSetsMD (config->arguments, argc, argv, "DARK", "-dark", "-darklist");
    51     pmConfigFileSetsMD (config->arguments, argc, argv, "FLAT", "-flat", "-flatlist");
    52     pmConfigFileSetsMD (config->arguments, argc, argv, "MASK", "-mask", "-masklist");
    53     pmConfigFileSetsMD (config->arguments, argc, argv, "FRINGE", "-fringe", "-fringelist");
     49    pmConfigFileSetsMD (config->arguments, config, "BIAS", "-bias", "-biaslist");
     50    pmConfigFileSetsMD (config->arguments, config, "DARK", "-dark", "-darklist");
     51    pmConfigFileSetsMD (config->arguments, config, "FLAT", "-flat", "-flatlist");
     52    pmConfigFileSetsMD (config->arguments, config, "MASK", "-mask", "-masklist");
     53    pmConfigFileSetsMD (config->arguments, config, "FRINGE", "-fringe", "-fringelist");
    5454
    5555    // chip selection is used to limit chips to be processed
    56     if ((N = psArgumentGet (*argc, argv, "-chip"))) {
    57         psArgumentRemove (N, argc, argv);
    58         psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", argv[N]);
    59         psArgumentRemove (N, argc, argv);
     56    if ((N = psArgumentGet (config->argc, config->argv, "-chip"))) {
     57        psArgumentRemove (N, &config->argc, config->argv);
     58        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "",
     59                          config->argv[N]);
     60        psArgumentRemove (N, &config->argc, config->argv);
    6061    }
    6162
    62     if (*argc != 2) usage ();
     63    if (config->argc != 2) usage ();
    6364
    6465    // Add the input and output images (which remain on the command-line) to the arguments list
    65     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "Name of the output image", argv[1]);
     66    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "Name of the output image",
     67                     config->argv[1]);
    6668
    6769    return config;
  • trunk/ppImage/src/ppTest.c

    r7494 r7677  
    1111// ppImageConfig.c
    1212//////////////////////////////////////////////////////////////////////////////////////////////////////////////
    13     pmConfig *config = pmConfigRead(&argc, argv);
     13    pmConfig *config = pmConfigRead(argc, argv);
    1414    if (! config) {
    1515        psErrorStackPrint(stderr, "Can't find site configuration!\n");
     
    2727    psMetadataAddS32(config->arguments, PS_LIST_TAIL, "-chip", 0, "Chip number to process (if positive)", -1);
    2828
    29     if (! psArgumentParse(config->arguments, &argc, argv) || argc != 3) {
     29    if (! psArgumentParse(config->arguments, &config->argc, config->argv) || argc != 3) {
    3030        printf("\nPan-STARRS Phase 2 processing\n\n");
    31         printf("Usage: %s INPUT.fits OUTPUT.fits\n\n", argv[0]);
     31        printf("Usage: %s INPUT.fits OUTPUT.fits\n\n", config->argv[0]);
    3232        psArgumentHelp(config->arguments);
    3333        psFree(config->arguments);
     
    3636
    3737    // Add the input and output images (which remain on the command-line) to the arguments list
    38     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-input",  0, "Name of the input image",  argv[1]);
    39     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-output", 0, "Name of the output image", argv[2]);
     38    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-input",  0, "Name of the input image",
     39                     config->argv[1]);
     40    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-output", 0, "Name of the output image",
     41                     config->argv[2]);
    4042
    4143    // Define database handle, if used
     
    103105    pmFPAview *mosaicView = pmFPAviewAlloc(0);
    104106    pmFPAAddSourceFromView(mosaicFPA, mosaicView, mosaicFormat);
     107    psFree(mosaicView);
    105108#endif
    106109
     
    110113#if 0
    111114    psArray *chips = fpa->chips;
    112     //pmFPAWrite(fpa, outFile, NULL, false);
     115    pmFPAWrite(fpa, outFile, NULL, false, false);
    113116    for (int i = 0; i < chips->n; i++) {
     117        printf("Chip %d\n", i);
    114118        pmChip *chip = chips->data[i];
     119        pmChipRead(chip, inFile, NULL);
     120#if 0
    115121        //pmChipRead(chip, inFile, NULL);
    116122        //pmChipWrite(chip, outFile, NULL, false);
     
    129135            psFree(readout);
    130136        }
    131         pmChipMosaic(mosaicFPA->chips->data[0], chip);
     137#endif
     138        pmChipMosaic(mosaicFPA->chips->data[i], chip);
     139        pmChipWrite(mosaicFPA->chips->data[i], outFile, NULL, true, true);
     140        pmChipFreeData(chip);
     141        pmChipFreeData(mosaicFPA->chips->data[i]);
    132142    }
    133143#endif
    134144
     145#if 1
    135146    pmFPAMosaic(mosaicFPA, fpa);
    136 
    137 #if 1
    138147    pmFPAWrite(mosaicFPA, outFile, NULL, true, true);
    139     pmFPAPrint(stdout, mosaicFPA, true, true);
     148    //pmFPAPrint(stdout, mosaicFPA, true, true);
    140149    psFree(mosaicCamera);
    141150    psFree(mosaicFormat);
    142151    psFree(mosaicView);
    143     psFree(mosaicFPA);
     152    //psFree(mosaicFPA);
    144153#endif
    145154
  • trunk/psastro/src/psastro.c

    r7332 r7677  
    1010
    1111    // load configuration information
    12     pmConfig *config = psastroArguments (&argc, argv);
     12    pmConfig *config = psastroArguments (argc, argv);
    1313
    1414    // load identify the data sources
     
    2626    psArray *refs = psastroLoadReferences (config);
    2727
    28     psastroMosaicGetRefstars (config, refs); 
     28    psastroMosaicGetRefstars (config, refs);
    2929
    3030    char *mosastro = psMetadataLookupStr (NULL, config->arguments, "MOSASTRO");
    3131    if (mosastro == NULL) {
    32         psastroChipAstrom (config, refs);
     32        psastroChipAstrom (config, refs);
    3333    } else {
    34         psastroMosaicAstrom (config, refs);
     34        psastroMosaicAstrom (config, refs);
    3535    }
    3636
  • trunk/psastro/src/psastro.h

    r7636 r7677  
    1414# define toSky projection
    1515
    16 pmConfig         *psastroArguments (int *argc, char **argv);
     16pmConfig         *psastroArguments (int argc, char **argv);
    1717bool              psastroParseCamera (pmConfig *config);
    1818bool              psastroDataLoad (pmConfig *config);
  • trunk/psastro/src/psastroArguments.c

    r7573 r7677  
    88}
    99
    10 pmConfig *psastroArguments (int *argc, char **argv) {
     10pmConfig *psastroArguments (int argc, char **argv) {
    1111
    1212    bool status;
    1313    int N;
    1414
    15     if (*argc == 1) usage ();
     15    if (argc == 1) usage ();
    1616
    1717    // basic pslib options
     
    2222
    2323    // photcode : used in output to supplement header data (argument or recipe?)
    24     if ((N = psArgumentGet (*argc, argv, "-photcode"))) {
    25         psArgumentRemove (N, argc, argv);
    26         psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", argv[N]);
    27         psArgumentRemove (N, argc, argv);
     24    if ((N = psArgumentGet (argc, argv, "-photcode"))) {
     25        psArgumentRemove (N, &argc, argv);
     26        psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", argv[N]);
     27        psArgumentRemove (N, &argc, argv);
    2828    }
    2929
    30     // load config data from default locations 
    31     pmConfig *config = pmConfigRead (argc, argv);
     30    // load config data from default locations
     31    pmConfig *config = pmConfigRead (config->argc, config->argv);
    3232
    3333    // Storage for other command-line arguments
     
    3939
    4040    // chip selection is used to limit chips to be processed
    41     if ((N = psArgumentGet (*argc, argv, "-chip"))) {
    42         psArgumentRemove (N, argc, argv);
    43         psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(argv[N]));
    44         psArgumentRemove (N, argc, argv);
     41    if ((N = psArgumentGet (config->argc, config->argv, "-chip"))) {
     42        psArgumentRemove (N, &config->argc, config->argv);
     43        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(config->argv[N]));
     44        psArgumentRemove (N, &config->argc, config->argv);
    4545    }
    4646
    4747    // mosastro mode also specifies output header file
    48     if ((N = psArgumentGet (*argc, argv, "-mosastro"))) {
    49         psArgumentRemove (N, argc, argv);
    50         psMetadataAddStr (config->arguments, PS_LIST_TAIL, "MOSASTRO", PS_DATA_STRING, "", psStringCopy(argv[N]));
    51         psArgumentRemove (N, argc, argv);
     48    if ((N = psArgumentGet (config->argc, config->argv, "-mosastro"))) {
     49        psArgumentRemove (N, &config->argc, config->argv);
     50        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "MOSASTRO", PS_DATA_STRING, "", psStringCopy(config->argv[N]));
     51        psArgumentRemove (N, &config->argc, config->argv);
    5252    }
    5353
    54     status = pmConfigFileSetsMD (config->arguments, argc, argv, "INPUT", "-file", "-list");
     54    status = pmConfigFileSetsMD (config->arguments, config, "INPUT", "-file", "-list");
    5555    if (!status) { usage ();}
    5656
    57     if (*argc != 2) usage ();
     57    if (config->argc != 2) usage ();
    5858
    5959    // output positions is fixed
    60     psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", argv[2]);
     60    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", config->argv[2]);
    6161
    6262    psTrace(__func__, 1, "Done with psastroArguments...\n");
  • trunk/psphot/src/psphot.c

    r7518 r7677  
    55    psTimerStart ("complete");
    66
    7     psphotErrorRegister();              // register our error codes/messages
     7    psphotErrorRegister();              // register our error codes/messages
    88
    99    // basic pslib options
     
    1414
    1515    // load command-line arguments, options, and system config data
    16     pmConfig *config = psphotArguments (&argc, argv);
     16    pmConfig *config = psphotArguments (argc, argv);
    1717    if (config == NULL) {
    18         psErrorStackPrint(stderr, "");
    19         exit(1);
     18        psErrorStackPrint(stderr, "");
     19        exit(1);
    2020    }
    2121
    2222    // load input data (config and images (signal, noise, mask)
    2323    if (!psphotParseCamera (config)) {
    24         psErrorStackPrint(stderr, "");
    25         exit(1);
     24        psErrorStackPrint(stderr, "");
     25        exit(1);
    2626    }
    2727
  • trunk/psphot/src/psphot.h

    r7638 r7677  
    1212
    1313// top-level psphot functions
    14 pmConfig       *psphotArguments (int *argc, char **argv);
     14pmConfig       *psphotArguments (int argc, char **argv);
    1515bool            psphotParseCamera (pmConfig *config);
    1616bool            psphotImageLoop (pmConfig *config);
     
    3131pmPSF          *psphotChoosePSF (pmReadout *readout, psArray *sources, psMetadata *recipe);
    3232bool            psphotPSFstats (pmReadout *readout, psMetadata *recipe, pmPSF *psf);
    33 bool            psphotEnsemblePSF (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, bool final);
     33bool            psphotEnsemblePSF (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, bool final);
    3434bool            psphotBlendFit (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf);
    3535bool            psphotReplaceUnfit (psArray *sources);
     
    4040// basic support functions
    4141void            psphotModelGroupInit (void);
    42 int             psphotSortBySN (const void **a, const void **b);
    43 int             psphotSortByY (const void **a, const void **b);
     42int             psphotSortBySN (const void **a, const void **b);
     43int             psphotSortByY (const void **a, const void **b);
    4444bool            psphotGrowthCurve (pmReadout *readout, pmPSF *psf);
    4545void            psphotTestArguments (int *argc, char **argv);
     
    4848
    4949// functions to set the correct source pixels
    50 bool            psphotInitRadiusPSF (psMetadata *recipe, pmModelType type);
    51 bool            psphotCheckRadiusPSF (pmReadout *readout, pmSource *source, pmModel *model);
    52 bool            psphotCheckRadiusPSFBlend (pmReadout *readout, pmSource *source, pmModel *model, float dR);
    53 bool            psphotInitRadiusEXT (psMetadata *recipe, pmModelType type);
    54 bool            psphotCheckRadiusEXT (pmReadout *readout, pmSource *source, pmModel *model);
     50bool            psphotInitRadiusPSF (psMetadata *recipe, pmModelType type);
     51bool            psphotCheckRadiusPSF (pmReadout *readout, pmSource *source, pmModel *model);
     52bool            psphotCheckRadiusPSFBlend (pmReadout *readout, pmSource *source, pmModel *model, float dR);
     53bool            psphotInitRadiusEXT (psMetadata *recipe, pmModelType type);
     54bool            psphotCheckRadiusEXT (pmReadout *readout, pmSource *source, pmModel *model);
    5555
    5656// output functions
    57 bool            psphotDumpMoments (psMetadata *recipe, psArray *sources);
     57bool            psphotDumpMoments (psMetadata *recipe, psArray *sources);
    5858psMetadata     *psphotDefineHeader (psMetadata *recipe);
    5959bool            psphotWeightBias (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf);
    6060
    6161// PSF / DBL / EXT evaluation functions
    62 bool            psphotEvalPSF (pmSource *source, pmModel *model);
    63 bool            psphotEvalDBL (pmSource *source, pmModel *model);
    64 bool            psphotEvalEXT (pmSource *source, pmModel *model);
     62bool            psphotEvalPSF (pmSource *source, pmModel *model);
     63bool            psphotEvalDBL (pmSource *source, pmModel *model);
     64bool            psphotEvalEXT (pmSource *source, pmModel *model);
    6565
    6666//  functions to support the source fitting process
    67 bool            psphotInitLimitsPSF (psMetadata *recipe);
    68 bool            psphotInitLimitsEXT (psMetadata *recipe);
    69 bool            psphotFitBlend (pmReadout *readout, pmSource *source, pmPSF *psf);
    70 bool            psphotFitBlob (pmReadout *readout, pmSource *source, psArray *sources, pmPSF *psf);
    71 bool            psphotFitPSF (pmReadout *readout, pmSource *source, pmPSF *psf);
    72 pmModel        *psphotFitEXT (pmReadout *readout, pmSource *source);
    73 psArray        *psphotFitDBL (pmReadout *readout, pmSource *source);
     67bool            psphotInitLimitsPSF (psMetadata *recipe);
     68bool            psphotInitLimitsEXT (psMetadata *recipe);
     69bool            psphotFitBlend (pmReadout *readout, pmSource *source, pmPSF *psf);
     70bool            psphotFitBlob (pmReadout *readout, pmSource *source, psArray *sources, pmPSF *psf);
     71bool            psphotFitPSF (pmReadout *readout, pmSource *source, pmPSF *psf);
     72pmModel        *psphotFitEXT (pmReadout *readout, pmSource *source);
     73psArray        *psphotFitDBL (pmReadout *readout, pmSource *source);
    7474
    7575// functions to support simultaneous multi-source fitting
    76 bool            psphotFitSet (pmSource *oneSrc, pmModel *oneModel, char *fitset, pmSourceFitMode mode);
     76bool            psphotFitSet (pmSource *oneSrc, pmModel *oneModel, char *fitset, pmSourceFitMode mode);
    7777
  • trunk/psphot/src/psphotArguments.c

    r7519 r7677  
    22# include <glob.h>
    33
    4 pmConfig *psphotArguments (int *argc, char **argv) {
     4pmConfig *psphotArguments(int argc, char **argv) {
    55
    66    int N;
    77    bool status;
    88
    9     if (*argc == 1) {
    10         psError(PSPHOT_ERR_ARGUMENTS, true, "Too few arguments: %d", *argc);
    11         return NULL;
     9    if (argc == 1) {
     10        psError(PSPHOT_ERR_ARGUMENTS, true, "Too few arguments: %d", argc);
     11        return NULL;
    1212    }
    1313
    14     // load config data from default locations 
     14    // load config data from default locations
    1515    pmConfig *config = pmConfigRead(argc, argv);
    1616    if (config == NULL) {
    17         psError(PSPHOT_ERR_CONFIG, false, "Can't find site configuration");
    18         return NULL;
     17        psError(PSPHOT_ERR_CONFIG, false, "Can't find site configuration");
     18        return NULL;
    1919    }
    2020
     
    2929
    3030    // run the test model (requires X,Y coordinate)
    31     if ((N = psArgumentGet (*argc, argv, "-modeltest"))) {
    32         psMetadataAddBool (options, PS_LIST_TAIL, "TEST_FIT",   0, "", true);
    33         psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_X", 0, "", atof(argv[N+1]));
    34         psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_Y", 0, "", atof(argv[N+2]));
     31    if ((N = psArgumentGet (config->argc, config->argv, "-modeltest"))) {
     32        psMetadataAddBool (options, PS_LIST_TAIL, "TEST_FIT",   0, "", true);
     33        psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_X", 0, "", atof(argv[N+1]));
     34        psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_Y", 0, "", atof(argv[N+2]));
    3535
    36         psArgumentRemove (N, argc, argv);
    37         psArgumentRemove (N, argc, argv);
    38         psArgumentRemove (N, argc, argv);
     36        psArgumentRemove (N, &config->argc, config->argv);
     37        psArgumentRemove (N, &config->argc, config->argv);
     38        psArgumentRemove (N, &config->argc, config->argv);
    3939
    40         // specify the modeltest model
    41         if ((N = psArgumentGet (*argc, argv, "-model"))) {
    42             psArgumentRemove (N, argc, argv);
    43             psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODEL", 0, "", argv[N]);
    44             psArgumentRemove (N, argc, argv);
    45         }
     40        // specify the modeltest model
     41        if ((N = psArgumentGet (config->argc, config->argv, "-model"))) {
     42            psArgumentRemove (N, &config->argc, config->argv);
     43            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODEL", 0, "", config->argv[N]);
     44            psArgumentRemove (N, &config->argc, config->argv);
     45        }
    4646
    47         // specify the test fit mode
    48         if ((N = psArgumentGet (*argc, argv, "-fitmode"))) {
    49             psArgumentRemove (N, argc, argv);
    50             psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODE", 0, "", argv[N]);
    51             psArgumentRemove (N, argc, argv);
    52         }
    53         if ((N = psArgumentGet (*argc, argv, "-fitset"))) {
    54             psArgumentRemove (N, argc, argv);
    55             psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_SET", 0, "", argv[N]);
    56             psArgumentRemove (N, argc, argv);
    57         }
     47        // specify the test fit mode
     48        if ((N = psArgumentGet (config->argc, config->argv, "-fitmode"))) {
     49            psArgumentRemove (N, &config->argc, config->argv);
     50            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODE", 0, "", config->argv[N]);
     51            psArgumentRemove (N, &config->argc, config->argv);
     52        }
     53        if ((N = psArgumentGet (config->argc, config->argv, "-fitset"))) {
     54            psArgumentRemove (N, &config->argc, config->argv);
     55            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_SET", 0, "", config->argv[N]);
     56            psArgumentRemove (N, &config->argc, config->argv);
     57        }
    5858    }
    5959
    6060    // photcode : used in output to supplement header data (argument or recipe?)
    61     if ((N = psArgumentGet (*argc, argv, "-photcode"))) {
    62         psArgumentRemove (N, argc, argv);
    63         psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", argv[N]);
    64         psArgumentRemove (N, argc, argv);
     61    if ((N = psArgumentGet (config->argc, config->argv, "-photcode"))) {
     62        psArgumentRemove (N, &config->argc, config->argv);
     63        psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", config->argv[N]);
     64        psArgumentRemove (N, &config->argc, config->argv);
    6565    }
    6666
    67     // break : used from recipe throughout psphotReadout 
    68     if ((N = psArgumentGet (*argc, argv, "-break"))) {
    69         psArgumentRemove (N, argc, argv);
    70         psMetadataAddStr (options, PS_LIST_TAIL, "BREAK_POINT", PS_META_REPLACE, "", argv[N]);
    71         psArgumentRemove (N, argc, argv);
     67    // break : used from recipe throughout psphotReadout
     68    if ((N = psArgumentGet (config->argc, config->argv, "-break"))) {
     69        psArgumentRemove (N, &config->argc, config->argv);
     70        psMetadataAddStr (options, PS_LIST_TAIL, "BREAK_POINT", PS_META_REPLACE, "", config->argv[N]);
     71        psArgumentRemove (N, &config->argc, config->argv);
    7272    }
    7373
    74     // fitmode : used from recipe throughout psphotReadout 
    75     if ((N = psArgumentGet (*argc, argv, "-fitmode"))) {
    76         psArgumentRemove (N, argc, argv);
    77         psMetadataAddStr (options, PS_LIST_TAIL, "FITMODE", PS_META_REPLACE, "", argv[N]);
    78         psArgumentRemove (N, argc, argv);
     74    // fitmode : used from recipe throughout psphotReadout
     75    if ((N = psArgumentGet (config->argc, config->argv, "-fitmode"))) {
     76        psArgumentRemove (N, &config->argc, config->argv);
     77        psMetadataAddStr (options, PS_LIST_TAIL, "FITMODE", PS_META_REPLACE, "", config->argv[N]);
     78        psArgumentRemove (N, &config->argc, config->argv);
    7979    }
    8080
    8181    // analysis region : overrides recipe value, used in psphotReadout/psphotEnsemblePSF
    82     if ((N = psArgumentGet (*argc, argv, "-region"))) {
    83         psArgumentRemove (N, argc, argv);
    84         psMetadataAddStr (options, PS_LIST_TAIL, "ANALYSIS_REGION", 0, "", argv[N]);
    85         psArgumentRemove (N, argc, argv);
     82    if ((N = psArgumentGet (config->argc, config->argv, "-region"))) {
     83        psArgumentRemove (N, &config->argc, config->argv);
     84        psMetadataAddStr (options, PS_LIST_TAIL, "ANALYSIS_REGION", 0, "", config->argv[N]);
     85        psArgumentRemove (N, &config->argc, config->argv);
    8686    }
    8787
    8888    // other arbitrary recipe values: -D key value (all added as string)
    89     while ((N = psArgumentGet (*argc, argv, "-D"))) {
    90         psArgumentRemove (N, argc, argv);
    91         psMetadataAddStr (options, PS_LIST_TAIL, argv[N], 0, "", argv[N+1]);
    92         psArgumentRemove (N, argc, argv);
    93         psArgumentRemove (N, argc, argv);
     89    while ((N = psArgumentGet (config->argc, config->argv, "-D"))) {
     90        psArgumentRemove (N, &config->argc, config->argv);
     91        psMetadataAddStr (options, PS_LIST_TAIL, config->argv[N], 0, "", config->argv[N+1]);
     92        psArgumentRemove (N, &config->argc, config->argv);
     93        psArgumentRemove (N, &config->argc, config->argv);
    9494    }
    9595
    9696    // other arbitrary recipe values: -Df key value (all added as float)
    97     while ((N = psArgumentGet (*argc, argv, "-Df"))) {
    98         psArgumentRemove (N, argc, argv);
    99         psMetadataAddF32 (options, PS_LIST_TAIL, argv[N], 0, "", atof(argv[N+1]));
    100         psArgumentRemove (N, argc, argv);
    101         psArgumentRemove (N, argc, argv);
     97    while ((N = psArgumentGet (config->argc, config->argv, "-Df"))) {
     98        psArgumentRemove (N, &config->argc, config->argv);
     99        psMetadataAddF32 (options, PS_LIST_TAIL, config->argv[N], 0, "", atof(config->argv[N+1]));
     100        psArgumentRemove (N, &config->argc, config->argv);
     101        psArgumentRemove (N, &config->argc, config->argv);
    102102    }
    103103
    104104    // other arbitrary recipe values: -Di key value (all added as int)
    105     while ((N = psArgumentGet (*argc, argv, "-Di"))) {
    106         psArgumentRemove (N, argc, argv);
    107         psMetadataAddS32 (options, PS_LIST_TAIL, argv[N], 0, "", atoi(argv[N+1]));
    108         psArgumentRemove (N, argc, argv);
    109         psArgumentRemove (N, argc, argv);
     105    while ((N = psArgumentGet (config->argc, config->argv, "-Di"))) {
     106        psArgumentRemove (N, &config->argc, config->argv);
     107        psMetadataAddS32 (options, PS_LIST_TAIL, config->argv[N], 0, "", atoi(config->argv[N+1]));
     108        psArgumentRemove (N, &config->argc, config->argv);
     109        psArgumentRemove (N, &config->argc, config->argv);
    110110    }
    111    
     111
    112112    // drop the local view on the options (saved on config->arguments)
    113113    psFree (options);
    114114
    115115    // the input file is a required argument; if not found, we will exit
    116     status = pmConfigFileSetsMD (config->arguments, argc, argv, "INPUT", "-file", "-list");
     116    status = pmConfigFileSetsMD (config->arguments, config, "INPUT", "-file", "-list");
    117117    if (!status) {
    118         psError(PSPHOT_ERR_ARGUMENTS, false, "pmConfigFileSetsMD failed to parse arguments");
    119         return NULL;
     118        psError(PSPHOT_ERR_ARGUMENTS, false, "pmConfigFileSetsMD failed to parse arguments");
     119        return NULL;
    120120    }
    121121
    122122    // chip selection is used to limit chips to be processed
    123     if ((N = psArgumentGet (*argc, argv, "-chip"))) {
    124         psArgumentRemove (N, argc, argv);
    125         psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(argv[N]));
    126         psArgumentRemove (N, argc, argv);
     123    if ((N = psArgumentGet (config->argc, config->argv, "-chip"))) {
     124        psArgumentRemove (N, &config->argc, config->argv);
     125        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(config->argv[N]));
     126        psArgumentRemove (N, &config->argc, config->argv);
    127127    }
    128128
    129     if (*argc != 2) {
    130         psError(PSPHOT_ERR_ARGUMENTS, true, "Expected to see one more argument; saw %d", *argc - 1);
    131         return NULL;
     129    if (config->argc != 2) {
     130        psError(PSPHOT_ERR_ARGUMENTS, true, "Expected to see one more argument; saw %d", config->argc - 1);
     131        return NULL;
    132132    }
    133    
     133
    134134    // output position is fixed
    135     psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", argv[1]);
     135    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", config->argv[1]);
    136136
    137137    psTrace(__func__, 1, "Done with psphotArguments...\n");
Note: See TracChangeset for help on using the changeset viewer.