Changeset 16494 for trunk/ppSim/src/ppSimArguments.c
- Timestamp:
- Feb 15, 2008, 9:30:36 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ppSim/src/ppSimArguments.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppSim/src/ppSimArguments.c
r14797 r16494 57 57 psMetadataAddF32(arguments, PS_LIST_TAIL, "-shuttertime", 0, "Shutter time (s)", NAN); 58 58 psMetadataAddF32(arguments, PS_LIST_TAIL, "-skyrate", 0, "Sky rate (e/s)", NAN); 59 psMetadataAddF32(arguments, PS_LIST_TAIL, "-skymags", 0, "Sky brightness in mags / square arcsec", NAN); 59 60 psMetadataAddF32(arguments, PS_LIST_TAIL, "-ra", 0, "RA (degrees)", NAN); 60 61 psMetadataAddF32(arguments, PS_LIST_TAIL, "-dec", 0, "Dec (degrees)", NAN); … … 69 70 psMetadataAddS32(arguments, PS_LIST_TAIL, "-bin", 0, "Binning in x and y", 1); 70 71 72 if (psArgumentGet (argc, argv, "-h")) { usage(argv[0], arguments, config); } 73 if (psArgumentGet (argc, argv, "--h")) { usage(argv[0], arguments, config); } 74 if (psArgumentGet (argc, argv, "--help")) { usage(argv[0], arguments, config); } 75 71 76 pmConfigFileSetsMD (config->arguments, &argc, argv, "PSPHOT.PSF", "-psf", "-psflist"); 72 77 … … 75 80 if (!config->camera && !status) { 76 81 psErrorStackPrint(stderr, "A camera name (-camera NAME) or an image (-file NAME) must be specified"); 77 usage(argv[0], arguments, config); 78 } 79 80 if (!psArgumentParse(arguments, &argc, argv)) { usage (argv[0], arguments, config); } 81 82 if (argc != 2) { usage(argv[0], arguments, config); } 82 exit(PS_EXIT_CONFIG_ERROR); 83 } 84 85 if (!psArgumentParse(arguments, &argc, argv)) { 86 exit(PS_EXIT_CONFIG_ERROR); 87 } 88 89 if (argc != 2) { 90 psErrorStackPrint(stderr, "Missing output filename"); 91 exit(PS_EXIT_CONFIG_ERROR); 92 } 83 93 84 94 psString formatName = psMetadataLookupStr(NULL, arguments, "-format"); // Name of format … … 107 117 if (!typeStr) { 108 118 psErrorStackPrint(stderr, "An exposure type must be specified using -type"); 109 usage(argv[0], arguments, config);119 exit(PS_EXIT_CONFIG_ERROR); 110 120 } 111 121 ppSimType type = PPSIM_TYPE_NONE; // Type to simulate … … 120 130 } else { 121 131 psErrorStackPrint(stderr, "Unrecognised exposure type: %s", typeStr); 122 usage(argv[0], arguments, config);132 exit(PS_EXIT_CONFIG_ERROR); 123 133 } 124 134 assert(type != PPSIM_TYPE_NONE); … … 135 145 if (isnan(expTime)) { 136 146 psErrorStackPrint(stderr, "The exposure time must be specified using -exptime"); 137 usage(argv[0], arguments, config);147 exit(PS_EXIT_CONFIG_ERROR); 138 148 } 139 149 } … … 170 180 if (binning <= 0) { 171 181 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Binning (%d) is non-positive.", binning); 172 usage(argv[0], arguments, config);182 exit(PS_EXIT_CONFIG_ERROR); 173 183 } 174 184 psMetadataAddS32(config->arguments, PS_LIST_TAIL, "BINNING", 0, "Binning in x and y", binning); … … 178 188 if (type == PPSIM_TYPE_OBJECT) { 179 189 // Load values required for adding stars 180 float scale = psMetadataLookupF32(NULL, arguments, "-scale"); // Plate scale 181 float zp = psMetadataLookupF32(NULL, arguments, "-zp"); // Zero point 182 float seeing = psMetadataLookupF32(NULL, arguments, "-seeing"); // Zero point 183 float ra0 = psMetadataLookupF32(NULL, arguments, "-ra"); // Right Ascension of boresight 184 float dec0 = psMetadataLookupF32(NULL, arguments, "-dec"); // Declination of boresight 185 float pa = psMetadataLookupF32(NULL, arguments, "-pa"); // Position angle 186 187 if (isnan(ra0) || isnan(dec0) || isnan(pa) || isnan(scale) || isnan(zp) || isnan(seeing)) { 190 float ra0 = psMetadataLookupF32(NULL, arguments, "-ra"); // Right Ascension of boresight 191 float dec0 = psMetadataLookupF32(NULL, arguments, "-dec"); // Declination of boresight 192 float pa = psMetadataLookupF32(NULL, arguments, "-pa"); // Position angle 193 float seeing = psMetadataLookupF32(NULL, arguments, "-seeing"); // Zero point 194 195 // XXX scale and zp should be supplied by the config file (allow override, but this is camera-dependent) 196 if (isnan(ra0) || isnan(dec0) || isnan(pa) || isnan(seeing)) { 188 197 psErrorStackPrint(stderr, "-ra, -dec, -pa, -scale, -zp, -seeing must be specified for OBJECT type"); 189 usage(argv[0], arguments, config); 190 } 198 exit(PS_EXIT_CONFIG_ERROR); 199 } 200 201 float zp = psMetadataLookupF32(NULL, arguments, "-zp"); // Zero point 202 if (isnan(zp)) { 203 // use the filter to get the zeropoint from the recipe 204 psMetadataItem *zpItem = psMetadataLookup (recipe, "ZEROPTS"); 205 // check that item is multi... 206 207 psArray *entries = psListToArray (zpItem->data.list); 208 209 // search for matching filter 210 for (int i = 0; i < entries->n; i++) { 211 psMetadataItem *item = entries->data[i]; 212 psMetadata *entry = item->data.V; 213 214 char *filterName = psMetadataLookupStr (&status, entry, "FILTER"); 215 assert (filterName); 216 217 if (strcmp(filterName, filter)) continue; 218 219 zp = psMetadataLookupF32 (&status, entry, "ZERO_PT"); 220 assert (status); 221 break; 222 } 223 psFree (entries); 224 } 225 226 float scale = psMetadataLookupF32(NULL, arguments, "-scale"); // Plate scale 227 if (isnan(scale)) { 228 scale = psMetadataLookupF32 (&status, recipe, "PIXEL.SCALE"); 229 } 230 231 float skymags = psMetadataLookupF32(NULL, arguments, "-skymags"); // Position angle 232 if (isnan(skymags)) { 233 skymags = psMetadataLookupF32 (&status, recipe, "SKY.MAGS"); 234 } 235 236 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "RA", 0, "Boresight RA (radians)", ra0 * M_PI / 180.0); 237 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "DEC", 0, "Boresight Declination (radians)", dec0 * M_PI / 180.0); 238 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "PA", 0, "Boresight position angle (radians)",pa * M_PI / 180.0); 239 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "SEEING", 0, "Seeing sigma (pix)", seeing / 2.0 / sqrt(2.0 * log(2.0)) / scale); 240 191 241 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "SCALE", 0, "Plate scale (arcsec/pix)", scale); 192 242 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "ZEROPOINT", 0, "Photometric zeropoint", zp); 193 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "SEEING", 0, "Seeing simga (pix)", 194 seeing / 2.0 / sqrt(2.0 * log(2.0)) / scale); 195 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "RA", 0, "Boresight RA (radians)", 196 ra0 * M_PI / 180.0); 197 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "DEC", 0, "Boresight Declination (radians)", 198 dec0 * M_PI / 180.0); 199 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "PA", 0, "Boresight position angle (radians)", 200 pa * M_PI / 180.0); 201 243 psMetadataAddF32(config->arguments, PS_LIST_TAIL, "SKY.MAGS", 0, "sky surface brightness", skymags); 202 244 203 245 const char *psfClass = psMetadataLookupStr(NULL, arguments, "-psfclass"); // Filter name
Note:
See TracChangeset
for help on using the changeset viewer.
