Changeset 7677 for trunk/psphot/src/psphotArguments.c
- Timestamp:
- Jun 23, 2006, 5:33:37 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotArguments.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotArguments.c
r7519 r7677 2 2 # include <glob.h> 3 3 4 pmConfig *psphotArguments (int *argc, char **argv) {4 pmConfig *psphotArguments(int argc, char **argv) { 5 5 6 6 int N; 7 7 bool status; 8 8 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; 12 12 } 13 13 14 // load config data from default locations 14 // load config data from default locations 15 15 pmConfig *config = pmConfigRead(argc, argv); 16 16 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; 19 19 } 20 20 … … 29 29 30 30 // 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])); 35 35 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); 39 39 40 // specify the modeltest model41 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 } 46 46 47 // specify the test fit mode48 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 } 58 58 } 59 59 60 60 // 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); 65 65 } 66 66 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); 72 72 } 73 73 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); 79 79 } 80 80 81 81 // 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); 86 86 } 87 87 88 88 // 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); 94 94 } 95 95 96 96 // 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); 102 102 } 103 103 104 104 // 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); 110 110 } 111 111 112 112 // drop the local view on the options (saved on config->arguments) 113 113 psFree (options); 114 114 115 115 // 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"); 117 117 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; 120 120 } 121 121 122 122 // 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); 127 127 } 128 128 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; 132 132 } 133 133 134 134 // 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]); 136 136 137 137 psTrace(__func__, 1, "Done with psphotArguments...\n");
Note:
See TracChangeset
for help on using the changeset viewer.
