Changeset 27402 for trunk/ppStack/src/ppStackCombineFinal.c
- Timestamp:
- Mar 23, 2010, 9:12:53 AM (16 years ago)
- File:
-
- 1 edited
-
trunk/ppStack/src/ppStackCombineFinal.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppStack/src/ppStackCombineFinal.c
r27400 r27402 14 14 //#define TESTING // Enable test output 15 15 16 bool ppStackCombineFinal(p pStackThreadData *stack, psArray *covariances, ppStackOptions *options,17 p mConfig *config, bool safe, bool normalise, bool grow)16 bool ppStackCombineFinal(pmReadout *target, ppStackThreadData *stack, psArray *covariances, 17 ppStackOptions *options, pmConfig *config, bool safe, bool normalise, bool grow) 18 18 { 19 19 psAssert(stack, "Require stack"); … … 21 21 psAssert(config, "Require configuration"); 22 22 23 pmReadout *outRO = options->outRO; // Output readout 24 pmReadout *expRO = options->expRO; // Exposure readout 25 int numCols = outRO->image->numCols, numRows = outRO->image->numRows; // Size of image 23 int numCols = target->image->numCols, numRows = target->image->numRows; // Size of image 26 24 27 25 psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // ppStack recipe … … 45 43 } 46 44 47 if (!outRO->mask) { 48 outRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK); 49 } 50 if (!expRO->mask) { 51 expRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK); 45 if (!target->mask) { 46 target->mask = psImageAlloc(target->image->numCols, target->image->numRows, PS_TYPE_IMAGE_MASK); 52 47 } 53 48 … … 67 62 } 68 63 69 // call: ppStackReadoutFinal(config, outRO, readouts, rejected)64 // call: ppStackReadoutFinal(config, target, readouts, rejected) 70 65 psThreadJob *job = psThreadJobAlloc("PPSTACK_FINAL_COMBINE"); // Job to start 66 psArrayAdd(job->args, 1, target); 71 67 psArrayAdd(job->args, 1, thread); 72 68 psArrayAdd(job->args, 1, reject); … … 109 105 } 110 106 if (sumWeights > 0.0) { 111 outRO->covariance = psImageCovarianceSum(covariances);112 psBinaryOp( outRO->covariance->image, outRO->covariance->image, "/",107 target->covariance = psImageCovarianceSum(covariances); 108 psBinaryOp(target->covariance->image, target->covariance->image, "/", 113 109 psScalarAlloc(sumWeights, PS_TYPE_F32)); 114 psImageCovarianceTransfer( outRO->variance, outRO->covariance);110 psImageCovarianceTransfer(target->variance, target->covariance); 115 111 } 116 112 } else { 117 outRO->covariance = psImageCovarianceNone();113 target->covariance = psImageCovarianceNone(); 118 114 } 119 115 … … 131 127 wcsDone = true; 132 128 pmHDU *inHDU = pmHDUFromCell(inRO->parent); // Template HDU 133 pmHDU *outHDU = pmHDUFromCell( outRO->parent); // Output HDU134 pmChip *outChip = outRO->parent->parent; // Output chip129 pmHDU *outHDU = pmHDUFromCell(target->parent); // Output HDU 130 pmChip *outChip = target->parent->parent; // Output chip 135 131 pmFPA *outFPA = outChip->parent; // Output FPA 136 132 if (!outHDU || !inHDU) { … … 155 151 } 156 152 157 // Set exposure time correctly158 {159 float exptime = 0.0; // Summed exposure time160 for (int i = 0; i < options->num; i++) {161 if (options->inputMask) {162 continue;163 }164 exptime += options->exposures->data.F32[i];165 }166 167 {168 psMetadataItem *item = psMetadataLookup(outRO->parent->concepts, "CELL.EXPOSURE");169 item->data.F32 = exptime;170 }171 {172 psMetadataItem *item = psMetadataLookup(outRO->parent->parent->parent->concepts, "FPA.EXPOSURE");173 item->data.F32 = exptime;174 }175 }176 177 153 // Put version information into the header 178 pmHDU *hdu = pmHDUFromCell( outRO->parent);154 pmHDU *hdu = pmHDUFromCell(target->parent); 179 155 if (!hdu) { 180 156 psError(PPSTACK_ERR_PROG, false, "Unable to find HDU for output."); … … 192 168 psStringAppend(&name, "combined_image_final_%d.fits", pass); 193 169 pass++; 194 ppStackWriteImage(name, NULL, outRO->image, config);170 ppStackWriteImage(name, NULL, target->image, config); 195 171 psStringSubstitute(&name, "mask", "image"); 196 ppStackWriteImage(name, NULL, outRO->mask, config);172 ppStackWriteImage(name, NULL, target->mask, config); 197 173 psStringSubstitute(&name, "variance", "mask"); 198 ppStackWriteImage(name, NULL, outRO->variance, config);174 ppStackWriteImage(name, NULL, target->variance, config); 199 175 psFree(name); 200 176 201 pmStackVisualPlotTestImage( outRO->image, "combined_image_final.fits");177 pmStackVisualPlotTestImage(target->image, "combined_image_final.fits"); 202 178 #endif 203 179
Note:
See TracChangeset
for help on using the changeset viewer.
