Changeset 41338 for trunk/psastro/src/psastroMaskUpdates.c
- Timestamp:
- Apr 16, 2020, 1:39:13 PM (6 years ago)
- File:
-
- 1 edited
-
trunk/psastro/src/psastroMaskUpdates.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psastro/src/psastroMaskUpdates.c
r40490 r41338 134 134 135 135 double REFSTAR_MASK_MAX_MAG = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_MAX_MAG"); 136 double REFSTAR_MASK_SATSTAR_MAG_SLOPE = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_SATSTAR_MAG_SLOPE");137 136 double REFSTAR_MASK_SATSTAR_MAG_MAX = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_SATSTAR_MAG_MAX"); 137 double REFSTAR_MASK_SATSTAR_RAD_OFFSET = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_SATSTAR_RAD_OFFSET"); 138 double REFSTAR_MASK_SATSTAR_EXP = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_SATSTAR_EXP"); 138 139 double REFSTAR_MASK_SATSTAR_POS_ZERO = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_SATSTAR_POS_ZERO"); 139 140 double REFSTAR_MASK_SATSPIKE_MAG_SLOPE = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_SATSPIKE_MAG_SLOPE"); … … 232 233 double ROTANGLE = PM_RAD_DEG * psMetadataLookupF64 (&status, fpa->concepts, "FPA.ROTANGLE"); 233 234 psAssert (status, "ROTANGLE missing"); 235 int ROT_PARITY = psMetadataLookupS32(&status, recipe, "PSASTRO.MODEL.ROT.PARITY"); 236 if (!status) psAbort ("Can't find recipe option PSASTRO.MODEL.ROT.PARITY"); 237 238 //select the astromeric rotation angle from the header 239 psMetadata *header = psMetadataLookupMetadata (&status, fpa->analysis, "PSASTRO.HEADER"); 240 if (!header) { 241 psError(PSASTRO_ERR_CONFIG, true, "Can't find PSASTRO header"); 242 return false; 243 } 244 float AST_T0 = PM_RAD_DEG * psMetadataLookupF32(&status, header, "AST_T0"); 234 245 235 246 // de-activate all files except PSASTRO.INPUT.MASK and PSASTRO.OUTPUT.MASK … … 327 338 328 339 // CIRCLE around the stars (scaled by magnitude) 329 float radius = REFSTAR_MASK_SATSTAR_ MAG_SLOPE * (REFSTAR_MASK_SATSTAR_MAG_MAX - ref->Mag);340 float radius = REFSTAR_MASK_SATSTAR_RAD_OFFSET + pow(REFSTAR_MASK_SATSTAR_EXP,(REFSTAR_MASK_SATSTAR_MAG_MAX - ref->Mag)); 330 341 331 342 // XXX for now, assume cell binning is 1x1 relative to chip … … 333 344 334 345 for (float theta = 0.0; theta < 2*M_PI; theta += M_PI / 2.0) { 335 336 float Theta = theta - ROTANGLE - REFSTAR_MASK_SATSTAR_POS_ZERO; 346 float Theta = theta - (ROT_PARITY * ROTANGLE) - AST_T0 - REFSTAR_MASK_SATSTAR_POS_ZERO; 337 347 338 348 // LINE for boundaries of the saturation spikes (scaled by magnitude) 339 // float MAG_MAX = (theta == 0.0) || (theta == M_PI) ? REFSTAR_MASK_SATSPIKE_MAG_MAX1 : REFSTAR_MASK_SATSPIKE_MAG_MAX2;349 //float MAG_MAX = (theta == 0.0) || (theta == M_PI) ? REFSTAR_MASK_SATSPIKE_MAG_MAX1 : REFSTAR_MASK_SATSPIKE_MAG_MAX2; 340 350 341 351 float MAG_MAX = REFSTAR_MASK_SATSPIKE_MAG_MAX; … … 400 410 } 401 411 } 412 402 413 } 403 414 … … 412 423 for (int i = 0; i < ghosts->n; i++) { 413 424 psastroGhost *ghost = ghosts->data[i]; 425 //offset the ghost angles with the astrometric rotation angle 426 ghost->inner.theta -= (ROT_PARITY * ROTANGLE) 427 ghost->outer.theta -= (ROT_PARITY * ROTANGLE) 414 428 // XXX bright vs faint ghost bits? (OR with SUSPECT) 415 429 psastroMaskEllipticalAnnulus (readoutMask->mask, ghostMaskValue, ghost->chip->x, ghost->chip->y, ghost->inner, ghost->outer); … … 418 432 419 433 // Select the glint mask regions for this readout (loaded in 420 // psastro ExtractGlints.c). These glint regions are defined as rectangular434 // psastroChooseGlintStars.c). These glint regions are defined as rectangular 421 435 // boxes and are generated for each chip based on the position of the bright 422 436 // stars beyond the edge of the focal plane. This masking is currently very … … 426 440 // mask the glints on this readout 427 441 for (int i = 0; i < glints->n; i++) { 428 psRegion *glint = glints->data[i]; 429 psastroMaskRectangle (readoutMask->mask, glintMaskValue, glint->x0, glint->y0, glint->x1, glint->y1); 442 psVector *glint = glints->data[i]; 443 //psLogMsg ("psastro", 3, "glint: %f %f %f %f\n", glint->x0, glint->y0, glint->x1, glint->y1); 444 //psastroMaskRectangle (readoutMask->mask, glintMaskValue, glint->x0, glint->y0, glint->x1, glint->y1); 445 446 psastroMaskBox (readoutMask->mask, glintMaskValue, glint->data.F32[0], glint->data.F32[1], 447 glint->data.F32[2], glint->data.F32[3], glint->data.F32[4]); 448 430 449 } 431 450 }
Note:
See TracChangeset
for help on using the changeset viewer.
