Changeset 7677 for trunk/psphot/src
- Timestamp:
- Jun 23, 2006, 5:33:37 PM (20 years ago)
- Location:
- trunk/psphot/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphot.c
r7518 r7677 5 5 psTimerStart ("complete"); 6 6 7 psphotErrorRegister(); // register our error codes/messages7 psphotErrorRegister(); // register our error codes/messages 8 8 9 9 // basic pslib options … … 14 14 15 15 // load command-line arguments, options, and system config data 16 pmConfig *config = psphotArguments ( &argc, argv);16 pmConfig *config = psphotArguments (argc, argv); 17 17 if (config == NULL) { 18 psErrorStackPrint(stderr, "");19 exit(1);18 psErrorStackPrint(stderr, ""); 19 exit(1); 20 20 } 21 21 22 22 // load input data (config and images (signal, noise, mask) 23 23 if (!psphotParseCamera (config)) { 24 psErrorStackPrint(stderr, "");25 exit(1);24 psErrorStackPrint(stderr, ""); 25 exit(1); 26 26 } 27 27 -
trunk/psphot/src/psphot.h
r7638 r7677 12 12 13 13 // top-level psphot functions 14 pmConfig *psphotArguments (int *argc, char **argv);14 pmConfig *psphotArguments (int argc, char **argv); 15 15 bool psphotParseCamera (pmConfig *config); 16 16 bool psphotImageLoop (pmConfig *config); … … 31 31 pmPSF *psphotChoosePSF (pmReadout *readout, psArray *sources, psMetadata *recipe); 32 32 bool psphotPSFstats (pmReadout *readout, psMetadata *recipe, pmPSF *psf); 33 bool psphotEnsemblePSF (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, bool final);33 bool psphotEnsemblePSF (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, bool final); 34 34 bool psphotBlendFit (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf); 35 35 bool psphotReplaceUnfit (psArray *sources); … … 40 40 // basic support functions 41 41 void psphotModelGroupInit (void); 42 int psphotSortBySN (const void **a, const void **b);43 int psphotSortByY (const void **a, const void **b);42 int psphotSortBySN (const void **a, const void **b); 43 int psphotSortByY (const void **a, const void **b); 44 44 bool psphotGrowthCurve (pmReadout *readout, pmPSF *psf); 45 45 void psphotTestArguments (int *argc, char **argv); … … 48 48 49 49 // 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);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); 55 55 56 56 // output functions 57 bool psphotDumpMoments (psMetadata *recipe, psArray *sources);57 bool psphotDumpMoments (psMetadata *recipe, psArray *sources); 58 58 psMetadata *psphotDefineHeader (psMetadata *recipe); 59 59 bool psphotWeightBias (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf); 60 60 61 61 // 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);62 bool psphotEvalPSF (pmSource *source, pmModel *model); 63 bool psphotEvalDBL (pmSource *source, pmModel *model); 64 bool psphotEvalEXT (pmSource *source, pmModel *model); 65 65 66 66 // 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);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); 74 74 75 75 // functions to support simultaneous multi-source fitting 76 bool psphotFitSet (pmSource *oneSrc, pmModel *oneModel, char *fitset, pmSourceFitMode mode);76 bool psphotFitSet (pmSource *oneSrc, pmModel *oneModel, char *fitset, pmSourceFitMode mode); 77 77 -
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.
