IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 13, 2006, 8:24:10 PM (21 years ago)
Author:
eugene
Message:

substantial work on the aperture residuals

File:
1 edited

Legend:

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

    r5837 r5980  
    77    int N;
    88    unsigned int Nfail;
    9     int mode = PS_DATA_STRING | PS_META_REPLACE;
     9
     10    psMetadata *options = psMetadataAlloc ();
    1011
    1112    // basic pslib options
     
    1314    psArgumentVerbosity (argc, argv);
    1415
    15     // optional mask image - add to config
    16     char *mask = NULL;
     16    // command-line options -- place on options MD
     17    // mask image
    1718    if ((N = psArgumentGet (*argc, argv, "-mask"))) {
    1819        psArgumentRemove (N, argc, argv);
    19         mask = psStringCopy (argv[N]);
     20        psMetadataAddStr (options, PS_LIST_TAIL, "MASK_IMAGE", 0, "", psStringCopy(argv[N]));
    2021        psArgumentRemove (N, argc, argv);
    2122    }
    2223
    23     // optional weight image - add to config
    24     char *weight = NULL;
     24    // weight image
    2525    if ((N = psArgumentGet (*argc, argv, "-weight"))) {
    2626        psArgumentRemove (N, argc, argv);
    27         weight = psStringCopy (argv[N]);
     27        psMetadataAddStr (options, PS_LIST_TAIL, "WEIGHT_IMAGE", 0, "", psStringCopy(argv[N]));
    2828        psArgumentRemove (N, argc, argv);
    2929    }
    3030
    31     // optional output residual image - add to config
    32     char *resid = NULL;
     31    // output residual image
    3332    if ((N = psArgumentGet (*argc, argv, "-resid"))) {
    3433        psArgumentRemove (N, argc, argv);
    35         resid = psStringCopy (argv[N]);
     34        psMetadataAddStr (options, PS_LIST_TAIL, "RESID_IMAGE", 0, "", psStringCopy(argv[N]));
    3635        psArgumentRemove (N, argc, argv);
    3736    }
    3837
    39     // optional analysis region - add to config
    40     char *region = NULL;
     38    // analysis region
    4139    if ((N = psArgumentGet (*argc, argv, "-region"))) {
    4240        psArgumentRemove (N, argc, argv);
    43         region = psStringCopy (argv[N]);
     41        psMetadataAddStr (options, PS_LIST_TAIL, "ANALYSIS_REGION", 0, "", psStringCopy(argv[N]));
    4442        psArgumentRemove (N, argc, argv);
    4543    }
    4644
    47     // optional output residual image - add to config
    48     char *photcode = NULL;
     45    // output residual image
     46    psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", 0, "", psStringCopy("NONE"));
    4947    if ((N = psArgumentGet (*argc, argv, "-photcode"))) {
    5048        psArgumentRemove (N, argc, argv);
    51         photcode = psStringCopy (argv[N]);
     49        psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", psStringCopy(argv[N]));
    5250        psArgumentRemove (N, argc, argv);
    5351    }
    5452
    55     char *psffile = NULL;
     53    // input PSF file
    5654    if ((N = psArgumentGet (*argc, argv, "-psf"))) {
    5755        psArgumentRemove (N, argc, argv);
    58         psffile = psStringCopy (argv[N]);
     56        psMetadataAddStr (options, PS_LIST_TAIL, "PSF_INPUT_FILE", 0, "", psStringCopy (argv[N]));
    5957        psArgumentRemove (N, argc, argv);
    6058    }
    6159
    62     bool ModelTest = false;
    63     float ModelTest_X = 0;
    64     float ModelTest_Y = 0;
    65     char *model = NULL;
    66     char *fitset = NULL;
    67     char *fitmode = NULL;
     60    // run the 0ltest model (requires X,Y coordinate)
    6861    if ((N = psArgumentGet (*argc, argv, "-modeltest"))) {
    69         ModelTest = true;
     62        psMetadataAddBool (options, PS_LIST_TAIL, "TEST_FIT",   0, "", true);
     63        psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_X", 0, "", atof(argv[N+1]));
     64        psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_Y", 0, "", atof(argv[N+2]));
     65
    7066        psArgumentRemove (N, argc, argv);
    71         ModelTest_X = atof (argv[N]);
    7267        psArgumentRemove (N, argc, argv);
    73         ModelTest_Y = atof (argv[N]);
    7468        psArgumentRemove (N, argc, argv);
    7569
     70        // specify the modeltest model
    7671        if ((N = psArgumentGet (*argc, argv, "-model"))) {
    7772            psArgumentRemove (N, argc, argv);
    78             model = psStringCopy (argv[N]);
     73            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODEL", 0, "", psStringCopy (argv[N]));
    7974            psArgumentRemove (N, argc, argv);
    8075        }
    8176
     77        // specify the test fit mode
    8278        if ((N = psArgumentGet (*argc, argv, "-fitmode"))) {
    8379            psArgumentRemove (N, argc, argv);
    84             fitmode = psStringCopy (argv[N]);
     80            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODE", 0, "", psStringCopy (argv[N]));
    8581            psArgumentRemove (N, argc, argv);
    8682        }
    8783        if ((N = psArgumentGet (*argc, argv, "-fitset"))) {
    8884            psArgumentRemove (N, argc, argv);
    89             fitset = psStringCopy (argv[N]);
     85            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_SET", 0, "", psStringCopy (argv[N]));
    9086            psArgumentRemove (N, argc, argv);
    9187        }
     88    }
     89
     90    // other arbitrary options: -D key value (all added as string)
     91    while ((N = psArgumentGet (*argc, argv, "-D"))) {
     92        psArgumentRemove (N, argc, argv);
     93        psMetadataAddStr (options, PS_LIST_TAIL, argv[N], 0, "", argv[N+1]);
     94        psArgumentRemove (N, argc, argv);
     95        psArgumentRemove (N, argc, argv);
     96    }
     97
     98    // other arbitrary options: -Df key value (all added as float)
     99    while ((N = psArgumentGet (*argc, argv, "-Df"))) {
     100        psArgumentRemove (N, argc, argv);
     101        psMetadataAddF32 (options, PS_LIST_TAIL, argv[N], 0, "", atof(argv[N+1]));
     102        psArgumentRemove (N, argc, argv);
     103        psArgumentRemove (N, argc, argv);
     104    }
     105
     106    // other arbitrary options: -Di key value (all added as int)
     107    while ((N = psArgumentGet (*argc, argv, "-Di"))) {
     108        psArgumentRemove (N, argc, argv);
     109        psMetadataAddS32 (options, PS_LIST_TAIL, argv[N], 0, "", atoi(argv[N+1]));
     110        psArgumentRemove (N, argc, argv);
     111        psArgumentRemove (N, argc, argv);
    92112    }
    93113
     
    96116    // load config information
    97117    psMetadata *config = psMetadataAlloc ();
    98     psMetadataAdd (config, PS_LIST_HEAD, "PSF_MODEL", PS_DATA_METADATA_MULTI, "folder for psf model entries", NULL);
     118
     119    psMetadataAdd (config, PS_LIST_TAIL, "PSF_MODEL", PS_DATA_METADATA_MULTI, "folder for psf model entries", NULL);
    99120    config = psMetadataConfigParse (config, &Nfail, argv[3], FALSE);
     121
     122    psMetadataItem *item = NULL;
     123    psMetadataIterator *iter = psMetadataIteratorAlloc (options, PS_LIST_HEAD, NULL);
     124    while ((item = psMetadataGetAndIncrement (iter)) != NULL) {
     125        psMetadataAddItem (config, item, PS_LIST_TAIL, PS_META_REPLACE);
     126        // psFree (item);
     127    }
     128    // psFree (iter);
    100129
    101130    // identify input image & optional weight & mask images
    102131    // command-line entries override config-file entries
    103     psMetadataAdd (config, PS_LIST_HEAD, "IMAGE",       mode, "", argv[1]);
    104     psMetadataAdd (config, PS_LIST_HEAD, "OUTPUT_FILE", mode, "", argv[2]);
     132    psMetadataAddStr (config, PS_LIST_TAIL, "IMAGE",       PS_META_REPLACE, "", argv[1]);
     133    psMetadataAddStr (config, PS_LIST_TAIL, "OUTPUT_FILE", PS_META_REPLACE, "", argv[2]);
    105134
    106     if (mask != NULL) {
    107         psMetadataAdd (config, PS_LIST_HEAD, "MASK_IMAGE", mode, "", mask);
    108     }
    109     if (weight != NULL) {
    110         psMetadataAdd (config, PS_LIST_HEAD, "WEIGHT_IMAGE", mode, "", weight);
    111     }
    112     if (resid != NULL) {
    113         psMetadataAdd (config, PS_LIST_HEAD, "RESID_IMAGE", mode, "", resid);
    114     }
    115     if (region != NULL) {
    116         psMetadataAdd (config, PS_LIST_HEAD, "ANALYSIS_REGION", mode, "", region);
    117     }
    118     if (photcode != NULL) {
    119         psMetadataAdd (config, PS_LIST_HEAD, "PHOTCODE", mode, "", photcode);
    120     } else {
    121         psMetadataAdd (config, PS_LIST_HEAD, "PHOTCODE", mode, "", "NONE");
    122     }   
    123     if (psffile != NULL) {
    124         psMetadataAdd (config, PS_LIST_HEAD, "PSF_INPUT_FILE", mode, "", psffile);
    125     }
    126 
    127     // model related options
    128     if (ModelTest) {
    129         psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT", PS_DATA_BOOL, "", true);
    130 
    131         int fmode = PS_DATA_F32 | PS_META_REPLACE;
    132         psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_X", fmode, "", ModelTest_X);
    133         psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_Y", fmode, "", ModelTest_Y);
    134 
    135         if (model != NULL) {
    136             psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_MODEL", mode, "", model);
    137         }
    138 
    139         if (fitmode != NULL) {
    140             psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_MODE", mode, "", fitmode);
    141         }
    142         if (fitset != NULL) {
    143             psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_SET", mode, "", fitset);
    144         }
    145     }
    146135    return (config);
    147136}
Note: See TracChangeset for help on using the changeset viewer.