Changeset 21235
- Timestamp:
- Jan 29, 2009, 5:29:04 PM (17 years ago)
- Location:
- branches/pap_branch_20090128/pswarp/src
- Files:
-
- 1 added
- 6 edited
-
pswarpDefineSkycell.c (modified) (1 diff)
-
pswarpFileNames.h (added)
-
pswarpLoop.c (modified) (5 diffs)
-
pswarpPixelFraction.c (modified) (3 diffs)
-
pswarpSetMaskBits.c (modified) (6 diffs)
-
pswarpTransformReadout.c (modified) (2 diffs)
-
pswarpTransformTile.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pap_branch_20090128/pswarp/src/pswarpDefineSkycell.c
r21225 r21235 59 59 psFitsClose(fits); 60 60 61 // XXX format needs to be equivalent to SIMPLE 62 // determine the current format from the header 63 // determine camera if not specified already 61 // We need to force the format for the skycell to be equivalent to SIMPLE. Determine 62 // the current format from the header; Determine camera if not specified already 64 63 // XXX EAM : this operation should be defined as a pmConfig function (pmConfigCopy?) 65 64 skyConfig = pmConfigAlloc(); -
branches/pap_branch_20090128/pswarp/src/pswarpLoop.c
r21234 r21235 1 1 #include "pswarp.h" 2 2 #include <ppStats.h> 3 #include "pswarpFileNames.h" // Lists of file rules used at different stages 3 4 4 5 #define WCS_NONLIN_TOL 0.001 // Non-linear tolerance for header WCS 5 #define PSPHOT_FIND_PSF 0 // Use psphot's findPSF function? 6 //#define TESTING 1 // Testing output? 7 8 // Lists of file rules for the detectors and skycells, and an independent list of everything else 9 // Lists must end with a NULL 10 static char *detectorFiles[] = { "PSWARP.INPUT", "PSWARP.MASK", "PSWARP.VARIANCE", NULL }; 11 static char *skycellFiles[] = { "PSWARP.OUTPUT", "PSWARP.OUTPUT.MASK", "PSWARP.OUTPUT.VARIANCE", NULL }; 12 static char *photFiles[] = { "PSPHOT.INPUT", "PSPHOT.OUTPUT", 13 #if PSPHOT_FIND_PSF 14 "PSPHOT.INPUT.CMF", 15 #endif 16 "PSPHOT.RESID", 17 "PSPHOT.BACKMDL", "PSPHOT.BACKMDL.STDEV", "PSPHOT.BACKGND", "PSPHOT.BACKSUB", 18 "PSPHOT.PSF.SAVE", "SOURCE.PLOT.MOMENTS", "SOURCE.PLOT.PSFMODEL", 19 "SOURCE.PLOT.APRESID", NULL }; 20 static char *independentFiles[] = { "PSWARP.ASTROM", // Read independently from the input pixels 21 "PSWARP.SKYCELL", // Don't care about the skycell once we have its WCS 22 "PSWARP.OUTPUT.SOURCES", // Save these independently so we can do the PSF 23 NULL }; 24 6 #define PSPHOT_FIND_PSF 1 // Use psphot's findPSF function? 7 #define TESTING 0 // Testing output? 8 9 10 // XXX these are generic functions which should be moved to psModules 25 11 // Activate a list of files 26 12 static void fileActivation(pmConfig *config, // Configuration … … 80 66 81 67 // output mask bits 82 ps MaskType maskValue = psMetadataLookupU8(&status, recipe, "MASK.OUTPUT");68 psImageMaskType maskValue = psMetadataLookupImageMask(&status, recipe, "MASK.OUTPUT"); 83 69 psAssert (status, "MASK.OUTPUT was not defined"); 84 70 … … 141 127 142 128 // Read the input astrometry 129 // XXX rather than use the activations here, this should just explicitly loop over the desired filerule 143 130 { 144 131 pmFPAfileActivate(config->files, true, "PSWARP.ASTROM"); … … 373 360 pmReadout *photRO = pmFPAviewThisReadout(view, photFile->fpa); 374 361 float vf = psMetadataLookupF32(NULL, photRO->parent->concepts, "CELL.VARFACTOR"); // Variance factor 375 psBinaryOp(photRO-> weight, photRO->weight, "*", psScalarAlloc(vf, PS_TYPE_F32));362 psBinaryOp(photRO->variance, photRO->variance, "*", psScalarAlloc(vf, PS_TYPE_F32)); 376 363 377 364 if (!psphotReadoutFindPSF(config, view)) { … … 386 373 #endif 387 374 388 #if def TESTING375 #if (TESTING) 389 376 { 390 377 #define PSF_SIZE 20 // Half-size of PSF -
branches/pap_branch_20090128/pswarp/src/pswarpPixelFraction.c
r18558 r21235 20 20 PS_ASSERT_IMAGE_NON_NULL(readout->mask, false); 21 21 PS_ASSERT_IMAGES_SIZE_EQUAL(readout->mask, readout->image, false); 22 PS_ASSERT_IMAGE_TYPE(readout->mask, PS_TYPE_ MASK, false);22 PS_ASSERT_IMAGE_TYPE(readout->mask, PS_TYPE_IMAGE_MASK, false); 23 23 24 24 if (stats) { … … 40 40 41 41 // output mask bits 42 ps MaskType maskValue = psMetadataLookupU8(&status, recipe, "MASK.OUTPUT");42 psImageMaskType maskValue = psMetadataLookupImageMask(&status, recipe, "MASK.OUTPUT"); 43 43 psAssert (status, "MASK.OUTPUT was not defined"); 44 44 … … 55 55 for (int y = 0; y < numRows; y++) { 56 56 for (int x = 0; x < numCols; x++) { 57 if (mask->data.PS_TYPE_ MASK_DATA[y][x] & maskValue) {57 if (mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] & maskValue) { 58 58 numBad++; 59 59 } else { -
branches/pap_branch_20090128/pswarp/src/pswarpSetMaskBits.c
r21225 r21235 8 8 // updated in the config metadata. 9 9 10 bool pswarpSetMaskBits (pmConfig *config) 11 { 12 psImageMaskType maskIn = 0x00; // mask for the input image 13 psImageMaskType markIn = 0x00; // mark for the input image 14 psImageMaskType maskOut = 0x00; // mask for the output image 15 psImageMaskType markOut = 0x00; // mark for the output image 10 bool pswarpSetMaskBits (pmConfig *config) { 11 12 psImageMaskType maskIn = 0x00; // mask for the input image 13 psImageMaskType markIn = 0x00; // mark for the input image 14 psImageMaskType maskOut = 0x00; // mask for the output image 16 15 17 16 // this function sets the required single-image mask bits … … 22 21 23 22 // mask for non-linear flat regions (default to DETECTOR if not defined) 24 ps MaskType badMask = pmConfigMaskGet("BAD.WARP", config);23 psImageMaskType badMask = pmConfigMaskGet("BAD.WARP", config); 25 24 if (!badMask) { 26 25 badMask = 0x01; … … 30 29 31 30 // mask for non-linear flat regions (default to DETECTOR if not defined) 32 ps MaskType poorMask = pmConfigMaskGet("POOR.WARP", config);31 psImageMaskType poorMask = pmConfigMaskGet("POOR.WARP", config); 33 32 if (!poorMask) { 34 33 poorMask = 0x02; … … 38 37 39 38 // search for an unset bit to use for MARK: 40 markOut = 0x80; 39 psImageMaskType markOut = 0x00; 40 psImageMaskType markTrial = 0x01; 41 41 42 int nBits = sizeof(ps MaskType) * 8;42 int nBits = sizeof(psImageMaskType) * 8; 43 43 for (int i = 0; !markOut && (i < nBits); i++) { 44 if (maskOut & mark Out) {45 mark Out >>= 1;44 if (maskOut & markTrial) { 45 markTrial <<= 1; 46 46 } else { 47 markOut = mark Out;47 markOut = markTrial; 48 48 } 49 49 } 50 51 50 if (!markOut) { 52 51 psError (PS_ERR_UNKNOWN, true, "Unable to define the MARK bit mask: all bits taken!"); … … 63 62 // set maskOut and markOut in the psphot recipe 64 63 // NOTE: psphot works on the output images, not input images, so set the MARK and MASK correctly here 65 psMetadataAdd U8(warpRecipe, PS_LIST_TAIL, "MASK.INPUT", PS_META_REPLACE, "user-defined mask", maskIn);66 psMetadataAdd U8(warpRecipe, PS_LIST_TAIL, "MARK.INPUT", PS_META_REPLACE, "user-defined mask", markIn);67 psMetadataAdd U8(warpRecipe, PS_LIST_TAIL, "MASK.OUTPUT", PS_META_REPLACE, "user-defined mask", maskOut);68 psMetadataAdd U8(warpRecipe, PS_LIST_TAIL, "MARK.OUTPUT", PS_META_REPLACE, "user-defined mask", markOut);64 psMetadataAddImageMask (warpRecipe, PS_LIST_TAIL, "MASK.INPUT", PS_META_REPLACE, "user-defined mask", maskIn); 65 psMetadataAddImageMask (warpRecipe, PS_LIST_TAIL, "MARK.INPUT", PS_META_REPLACE, "user-defined mask", markIn); 66 psMetadataAddImageMask (warpRecipe, PS_LIST_TAIL, "MASK.OUTPUT", PS_META_REPLACE, "user-defined mask", maskOut); 67 psMetadataAddImageMask (warpRecipe, PS_LIST_TAIL, "MARK.OUTPUT", PS_META_REPLACE, "user-defined mask", markOut); 69 68 70 69 // update the psphot recipe … … 77 76 // set maskOut and markOut in the psphot recipe 78 77 // NOTE: psphot works on the output images, not input images, so set the MARK and MASK correctly here 79 psMetadataAdd U8(psphotRecipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "user-defined mask", markOut);80 psMetadataAdd U8(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "user-defined mask", maskOut);78 psMetadataAddImageMask (psphotRecipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "user-defined mask", markOut); 79 psMetadataAddImageMask (psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "user-defined mask", maskOut); 81 80 82 81 return true; -
branches/pap_branch_20090128/pswarp/src/pswarpTransformReadout.c
r21233 r21235 22 22 23 23 // output mask bits 24 ps MaskType maskIn = psMetadataLookupU8(&mdok, recipe, "MASK.INPUT");25 ps MaskType maskPoor = pmConfigMaskGet("POOR.WARP", config);26 ps MaskType maskBad = pmConfigMaskGet("BAD.WARP", config);24 psImageMaskType maskIn = psMetadataLookupImageMask(&mdok, recipe, "MASK.INPUT"); 25 psImageMaskType maskPoor = pmConfigMaskGet("POOR.WARP", config); 26 psImageMaskType maskBad = pmConfigMaskGet("BAD.WARP", config); 27 27 psAssert(mdok, "MASK.INPUT was not defined"); 28 28 … … 80 80 } 81 81 if ((input->mask || maskPoor || maskBad) && !output->mask) { 82 output->mask = psImageAlloc(output->image->numCols, output->image->numRows, PS_TYPE_ MASK);82 output->mask = psImageAlloc(output->image->numCols, output->image->numRows, PS_TYPE_IMAGE_MASK); 83 83 psImageInit(output->mask, maskBad); 84 84 } -
branches/pap_branch_20090128/pswarp/src/pswarpTransformTile.c
r21225 r21235 49 49 psF32 **outImageData = args->output->image->data.F32; 50 50 psF32 **outVarData = (args->output->variance) ? args->output->variance->data.F32 : NULL; 51 ps MaskType **outMaskData = (args->output->mask) ? args->output->mask->data.PS_TYPE_MASK_DATA : NULL;52 ps MaskType **inMaskData = (args->input->mask) ? args->input->mask->data.PS_TYPE_MASK_DATA : NULL;51 psImageMaskType **outMaskData = (args->output->mask) ? args->output->mask->data.PS_TYPE_IMAGE_MASK_DATA : NULL; 52 psImageMaskType **inMaskData = (args->input->mask) ? args->input->mask->data.PS_TYPE_IMAGE_MASK_DATA : NULL; 53 53 54 54 pswarpMap *map = args->grid->maps[args->gridX][args->gridY]; // Map for this tile … … 67 67 68 68 // Only transform those pixels requested 69 if (region && region->data. U8[y][x]) {69 if (region && region->data.PS_TYPE_IMAGE_MASK_DATA[y][x]) { 70 70 continue; 71 71 }
Note:
See TracChangeset
for help on using the changeset viewer.
