IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 22, 2005, 4:20:27 PM (21 years ago)
Author:
eugene
Message:

various cleanups, fixes, additions...

File:
1 edited

Legend:

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

    r5607 r5828  
    55psMetadata *psphotArguments (int *argc, char **argv) {
    66
    7   int N;
    8   unsigned int Nfail;
    9   int mode = PS_DATA_STRING | PS_META_REPLACE;
     7    int N;
     8    unsigned int Nfail;
     9    int mode = PS_DATA_STRING | PS_META_REPLACE;
    1010
    11   // basic pslib options
    12   fprintf (stderr, "starting... %s\n", psLibVersion());
    13   psLogSetFormat ("M");
    14   psArgumentVerbosity (argc, argv);
     11    // basic pslib options
     12    psLogSetFormat ("M");
     13    psArgumentVerbosity (argc, argv);
    1514
    16   // optional mask image - add to config
    17   char *mask = NULL;
    18   if ((N = psArgumentGet (*argc, argv, "-mask"))) {
    19     psArgumentRemove (N, argc, argv);
    20     mask = psStringCopy (argv[N]);
    21     psArgumentRemove (N, argc, argv);
    22   }
     15    // optional mask image - add to config
     16    char *mask = NULL;
     17    if ((N = psArgumentGet (*argc, argv, "-mask"))) {
     18        psArgumentRemove (N, argc, argv);
     19        mask = psStringCopy (argv[N]);
     20        psArgumentRemove (N, argc, argv);
     21    }
    2322
    24   // optional weight image - add to config
    25   char *weight = NULL;
    26   if ((N = psArgumentGet (*argc, argv, "-weight"))) {
    27     psArgumentRemove (N, argc, argv);
    28     weight = psStringCopy (argv[N]);
    29     psArgumentRemove (N, argc, argv);
    30   }
     23    // optional weight image - add to config
     24    char *weight = NULL;
     25    if ((N = psArgumentGet (*argc, argv, "-weight"))) {
     26        psArgumentRemove (N, argc, argv);
     27        weight = psStringCopy (argv[N]);
     28        psArgumentRemove (N, argc, argv);
     29    }
    3130
    32   // optional output residual image - add to config
    33   char *resid = NULL;
    34   if ((N = psArgumentGet (*argc, argv, "-resid"))) {
    35     psArgumentRemove (N, argc, argv);
    36     resid = psStringCopy (argv[N]);
    37     psArgumentRemove (N, argc, argv);
    38   }
     31    // optional output residual image - add to config
     32    char *resid = NULL;
     33    if ((N = psArgumentGet (*argc, argv, "-resid"))) {
     34        psArgumentRemove (N, argc, argv);
     35        resid = psStringCopy (argv[N]);
     36        psArgumentRemove (N, argc, argv);
     37    }
    3938
    40   // optional output residual image - add to config
    41   char *photcode = NULL;
    42   if ((N = psArgumentGet (*argc, argv, "-photcode"))) {
    43     psArgumentRemove (N, argc, argv);
    44     photcode = psStringCopy (argv[N]);
    45     psArgumentRemove (N, argc, argv);
    46   }
     39    // optional analysis region - add to config
     40    char *region = NULL;
     41    if ((N = psArgumentGet (*argc, argv, "-region"))) {
     42        psArgumentRemove (N, argc, argv);
     43        region = psStringCopy (argv[N]);
     44        psArgumentRemove (N, argc, argv);
     45    }
    4746
    48   if (*argc != 4) usage ();
     47    // optional output residual image - add to config
     48    char *photcode = NULL;
     49    if ((N = psArgumentGet (*argc, argv, "-photcode"))) {
     50        psArgumentRemove (N, argc, argv);
     51        photcode = psStringCopy (argv[N]);
     52        psArgumentRemove (N, argc, argv);
     53    }
    4954
    50   // load config information
    51   psMetadata *config = psMetadataAlloc ();
    52   psMetadataAdd (config, PS_LIST_HEAD, "PSF_MODEL", PS_DATA_METADATA_MULTI, "folder for psf model entries", NULL);
    53   config = psMetadataConfigParse (config, &Nfail, argv[3], FALSE);
     55    char *psffile = NULL;
     56    if ((N = psArgumentGet (*argc, argv, "-psf"))) {
     57        psArgumentRemove (N, argc, argv);
     58        psffile = psStringCopy (argv[N]);
     59        psArgumentRemove (N, argc, argv);
     60    }
    5461
    55   // identify input image & optional weight & mask images
    56   // command-line entries override config-file entries
    57   psMetadataAdd (config, PS_LIST_HEAD, "IMAGE",       mode, "", argv[1]);
    58   psMetadataAdd (config, PS_LIST_HEAD, "OUTPUT_FILE", mode, "", argv[2]);
     62    bool ModelTest = false;
     63    float ModelTest_X, ModelTest_Y;
     64    char *model = NULL;
     65    char *fitset = NULL;
     66    char *fitmode = NULL;
     67    if ((N = psArgumentGet (*argc, argv, "-modeltest"))) {
     68        ModelTest = true;
     69        psArgumentRemove (N, argc, argv);
     70        ModelTest_X = atof (argv[N]);
     71        psArgumentRemove (N, argc, argv);
     72        ModelTest_Y = atof (argv[N]);
     73        psArgumentRemove (N, argc, argv);
    5974
    60   if (mask != NULL) {
    61     psMetadataAdd (config, PS_LIST_HEAD, "MASK_IMAGE", mode, "", mask);
    62   }
    63   if (weight != NULL) {
    64     psMetadataAdd (config, PS_LIST_HEAD, "WEIGHT_IMAGE", mode, "", weight);
    65   }
    66   if (resid != NULL) {
    67     psMetadataAdd (config, PS_LIST_HEAD, "RESID_IMAGE", mode, "", resid);
    68   }
    69   if (photcode != NULL) {
    70     psMetadataAdd (config, PS_LIST_HEAD, "PHOTCODE", mode, "", photcode);
    71   } else {
    72     psMetadataAdd (config, PS_LIST_HEAD, "PHOTCODE", mode, "", "NONE");
    73   }   
    74   return (config);
     75        if ((N = psArgumentGet (*argc, argv, "-model"))) {
     76            psArgumentRemove (N, argc, argv);
     77            model = psStringCopy (argv[N]);
     78            psArgumentRemove (N, argc, argv);
     79        }
     80
     81        if ((N = psArgumentGet (*argc, argv, "-fitmode"))) {
     82            psArgumentRemove (N, argc, argv);
     83            fitmode = psStringCopy (argv[N]);
     84            psArgumentRemove (N, argc, argv);
     85        }
     86        if ((N = psArgumentGet (*argc, argv, "-fitset"))) {
     87            psArgumentRemove (N, argc, argv);
     88            fitset = psStringCopy (argv[N]);
     89            psArgumentRemove (N, argc, argv);
     90        }
     91    }
     92
     93    if (*argc != 4) usage ();
     94
     95    // load config information
     96    psMetadata *config = psMetadataAlloc ();
     97    psMetadataAdd (config, PS_LIST_HEAD, "PSF_MODEL", PS_DATA_METADATA_MULTI, "folder for psf model entries", NULL);
     98    config = psMetadataConfigParse (config, &Nfail, argv[3], FALSE);
     99
     100    // identify input image & optional weight & mask images
     101    // command-line entries override config-file entries
     102    psMetadataAdd (config, PS_LIST_HEAD, "IMAGE",       mode, "", argv[1]);
     103    psMetadataAdd (config, PS_LIST_HEAD, "OUTPUT_FILE", mode, "", argv[2]);
     104
     105    if (mask != NULL) {
     106        psMetadataAdd (config, PS_LIST_HEAD, "MASK_IMAGE", mode, "", mask);
     107    }
     108    if (weight != NULL) {
     109        psMetadataAdd (config, PS_LIST_HEAD, "WEIGHT_IMAGE", mode, "", weight);
     110    }
     111    if (resid != NULL) {
     112        psMetadataAdd (config, PS_LIST_HEAD, "RESID_IMAGE", mode, "", resid);
     113    }
     114    if (region != NULL) {
     115        psMetadataAdd (config, PS_LIST_HEAD, "ANALYSIS_REGION", mode, "", region);
     116    }
     117    if (photcode != NULL) {
     118        psMetadataAdd (config, PS_LIST_HEAD, "PHOTCODE", mode, "", photcode);
     119    } else {
     120        psMetadataAdd (config, PS_LIST_HEAD, "PHOTCODE", mode, "", "NONE");
     121    }   
     122    if (psffile != NULL) {
     123        psMetadataAdd (config, PS_LIST_HEAD, "PSF_INPUT_FILE", mode, "", psffile);
     124    }
     125
     126    // model related options
     127    if (ModelTest) {
     128        psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT", PS_DATA_BOOL, "", true);
     129
     130        int fmode = PS_DATA_F32 | PS_META_REPLACE;
     131        psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_X", fmode, "", ModelTest_X);
     132        psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_Y", fmode, "", ModelTest_Y);
     133
     134        if (model != NULL) {
     135            psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_MODEL", mode, "", model);
     136        }
     137
     138        if (fitmode != NULL) {
     139            psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_MODE", mode, "", fitmode);
     140        }
     141        if (fitset != NULL) {
     142            psMetadataAdd (config, PS_LIST_HEAD, "TEST_FIT_SET", mode, "", fitset);
     143        }
     144    }
     145    return (config);
    75146}
    76147
Note: See TracChangeset for help on using the changeset viewer.