Changeset 21236
- Timestamp:
- Jan 29, 2009, 5:31:30 PM (17 years ago)
- Location:
- branches/pap_branch_20090128/ppStack/src
- Files:
-
- 6 edited
-
ppStack.h (modified) (2 diffs)
-
ppStackArguments.c (modified) (4 diffs)
-
ppStackCamera.c (modified) (6 diffs)
-
ppStackLoop.c (modified) (7 diffs)
-
ppStackMatch.c (modified) (4 diffs)
-
ppStackThread.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pap_branch_20090128/ppStack/src/ppStack.h
r21204 r21236 38 38 psArray *imageFits; // FITS file pointers for images 39 39 psArray *maskFits; // FITS file pointers for masks 40 psArray * weightFits; // FITS file pointers for weights40 psArray *varianceFits; // FITS file pointers for variances 41 41 } ppStackThreadData; 42 42 … … 45 45 const psArray *imageNames, // Names of images to read 46 46 const psArray *maskNames, // Names of masks to read 47 const psArray * weightNames, // Names of weightmaps to read47 const psArray *varianceNames, // Names of variance maps to read 48 48 const pmConfig *config // Configuration 49 49 ); -
branches/pap_branch_20090128/ppStack/src/ppStackArguments.c
r20995 r21236 24 24 "\tIMAGE(STR): Image filename\n" 25 25 "\tMASK(STR): Mask filename\n" 26 "\t WEIGHT(STR): Weightmap filename\n"26 "\tVARIANCE(STR): Variance map filename\n" 27 27 "\tPSF(STR): PSF filename\n" 28 28 "\tSOURCES(STR): Sources filename\n" … … 151 151 psMetadataAddStr(arguments, PS_LIST_TAIL, "-mask-poor", 0, "Mask value to give poor pixels", NULL); 152 152 psMetadataAddF32(arguments, PS_LIST_TAIL, "-threshold-mask", 0, "Threshold for mask deconvolution", NAN); 153 psMetadataAddF32(arguments, PS_LIST_TAIL, "-poor-frac", 0, "Fraction of weightfor poor pixels", NAN);153 psMetadataAddF32(arguments, PS_LIST_TAIL, "-poor-frac", 0, "Fraction of variance for poor pixels", NAN); 154 154 psMetadataAddF32(arguments, PS_LIST_TAIL, "-image-rej", 0, 155 155 "Pixel rejection fraction threshold for rejecting entire image", NAN); … … 182 182 psMetadataAddStr(arguments, PS_LIST_TAIL, "-temp-image", 0, "Suffix for temporary images", NULL); 183 183 psMetadataAddStr(arguments, PS_LIST_TAIL, "-temp-mask", 0, "Suffix for temporary masks", NULL); 184 psMetadataAddStr(arguments, PS_LIST_TAIL, "-temp- weight", 0, "Suffix for temporary weightmaps", NULL);184 psMetadataAddStr(arguments, PS_LIST_TAIL, "-temp-variance", 0, "Suffix for temporary variance maps", NULL); 185 185 psMetadataAddBool(arguments, PS_LIST_TAIL, "-temp-delete", 0, 186 186 "Delete temporary files on completion?", false); … … 281 281 VALUE_ARG_RECIPE_INT("-renorm-num", "RENORM.NUM", S32, 0); 282 282 VALUE_ARG_RECIPE_FLOAT("-renorm-width", "RENORM.WIDTH", F32); 283 valueArgRecipeStr(arguments, recipe, "-renorm-mean", "RENORM.MEAN", recipe);283 valueArgRecipeStr(arguments, recipe, "-renorm-mean", "RENORM.MEAN", recipe); 284 284 valueArgRecipeStr(arguments, recipe, "-renorm-stdev", "RENORM.STDEV", recipe); 285 285 286 valueArgRecipeStr(arguments, recipe, "-temp-image", "TEMP.IMAGE", recipe);287 valueArgRecipeStr(arguments, recipe, "-temp-mask", "TEMP.MASK", recipe);288 valueArgRecipeStr(arguments, recipe, "-temp- weight", "TEMP.WEIGHT", recipe);286 valueArgRecipeStr(arguments, recipe, "-temp-image", "TEMP.IMAGE", recipe); 287 valueArgRecipeStr(arguments, recipe, "-temp-mask", "TEMP.MASK", recipe); 288 valueArgRecipeStr(arguments, recipe, "-temp-variance", "TEMP.VARIANCE", recipe); 289 289 290 290 if (psMetadataLookupBool(NULL, arguments, "-temp-delete") || -
branches/pap_branch_20090128/ppStack/src/ppStackCamera.c
r20995 r21236 71 71 bool ppStackCamera(pmConfig *config) 72 72 { 73 bool have Weights = false; // Do we have weightmaps?73 bool haveVariances = false; // Do we have variance maps? 74 74 bool havePSFs = false; // Do we have PSFs? 75 75 … … 97 97 bool mdok; 98 98 psString mask = psMetadataLookupStr(&mdok, input, "MASK"); // Name of mask 99 psString weight = psMetadataLookupStr(&mdok, input, "WEIGHT"); // Name of weightmap99 psString variance = psMetadataLookupStr(&mdok, input, "VARIANCE"); // Name of variance map 100 100 psString psf = psMetadataLookupStr(&mdok, input, "PSF"); // Name of PSF 101 101 psString sources = psMetadataLookupStr(&mdok, input, "SOURCES"); // Name of sources … … 140 140 } 141 141 142 // Optionally add the weightfile143 if ( weight && strlen(weight) > 0) {144 have Weights = true;145 psArray * weightFiles = psArrayAlloc(1); // Array of filenames for this FPA146 weightFiles->data[0] = psMemIncrRefCounter(weight);147 psMetadataAddArray(config->arguments, PS_LIST_TAIL, " WEIGHT.FILENAMES", PS_META_REPLACE,148 "Filenames of weight files", weightFiles);149 psFree( weightFiles);142 // Optionally add the variance file 143 if (variance && strlen(variance) > 0) { 144 haveVariances = true; 145 psArray *varianceFiles = psArrayAlloc(1); // Array of filenames for this FPA 146 varianceFiles->data[0] = psMemIncrRefCounter(variance); 147 psMetadataAddArray(config->arguments, PS_LIST_TAIL, "VARIANCE.FILENAMES", PS_META_REPLACE, 148 "Filenames of variance files", varianceFiles); 149 psFree(varianceFiles); 150 150 151 151 bool status; 152 pmFPAfile * weightFile = pmFPAfileBindFromArgs(&status, imageFile, config, "PPSTACK.INPUT.WEIGHT",153 "WEIGHT.FILENAMES");152 pmFPAfile *varianceFile = pmFPAfileBindFromArgs(&status, imageFile, config, 153 "PPSTACK.INPUT.VARIANCE", "VARIANCE.FILENAMES"); 154 154 if (!status) { 155 psError(PS_ERR_UNKNOWN, false, "Unable to define file from weight %d (%s)", i, weight);156 return false; 157 } 158 if ( weightFile->type != PM_FPA_FILE_WEIGHT) {159 psError(PS_ERR_IO, true, "PPSTACK.INPUT. WEIGHT is not of type WEIGHT");155 psError(PS_ERR_UNKNOWN, false, "Unable to define file from variance %d (%s)", i, variance); 156 return false; 157 } 158 if (varianceFile->type != PM_FPA_FILE_VARIANCE) { 159 psError(PS_ERR_IO, true, "PPSTACK.INPUT.VARIANCE is not of type VARIANCE"); 160 160 return false; 161 161 } … … 217 217 #if 0 218 218 // Output convolved files 219 pmFPAfile *outconvImage = defineOutputConvolved("PPSTACK.OUTCONV", imageFile->fpa, config, 219 pmFPAfile *outconvImage = defineOutputConvolved("PPSTACK.OUTCONV", imageFile->fpa, config, 220 PM_FPA_FILE_IMAGE); 221 pmFPAfile *outconvMask = defineOutputConvolved("PPSTACK.OUTCONV.MASK", imageFile->fpa, config, 222 PM_FPA_FILE_MASK); 223 pmFPAfile *outconvVariance = defineOutputConvolved("PPSTACK.OUTCONV.VARIANCE", imageFile->fpa, config, 224 PM_FPA_FILE_VARIANCE); 225 if (!outconvImage || !outconvMask || !outconvVariance) { 226 return false; 227 } 228 229 // Input convolved files 230 pmFPAfile *inconvImage = defineInputConvolved("PPSTACK.INCONV", outconvImage, config, 220 231 PM_FPA_FILE_IMAGE); 221 pmFPAfile * outconvMask = defineOutputConvolved("PPSTACK.OUTCONV.MASK", imageFile->fpa, config,232 pmFPAfile *inconvMask = defineInputConvolved("PPSTACK.INCONV.MASK", outconvMask, config, 222 233 PM_FPA_FILE_MASK); 223 pmFPAfile *outconvWeight = defineOutputConvolved("PPSTACK.OUTCONV.WEIGHT", imageFile->fpa, config, 224 PM_FPA_FILE_WEIGHT); 225 if (!outconvImage || !outconvMask || !outconvWeight) { 226 return false; 227 } 228 229 // Input convolved files 230 pmFPAfile *inconvImage = defineInputConvolved("PPSTACK.INCONV", outconvImage, config, 231 PM_FPA_FILE_IMAGE); 232 pmFPAfile *inconvMask = defineInputConvolved("PPSTACK.INCONV.MASK", outconvMask, config, 233 PM_FPA_FILE_MASK); 234 pmFPAfile *inconvWeight = defineInputConvolved("PPSTACK.INCONV.WEIGHT", outconvWeight, config, 235 PM_FPA_FILE_WEIGHT); 236 if (!inconvImage || !inconvMask || !inconvWeight) { 234 pmFPAfile *inconvVariance = defineInputConvolved("PPSTACK.INCONV.VARIANCE", outconvVariance, config, 235 PM_FPA_FILE_VARIANCE); 236 if (!inconvImage || !inconvMask || !inconvVariance) { 237 237 return false; 238 238 } … … 246 246 psMetadataRemoveKey(config->arguments, "MASK.FILENAMES"); 247 247 } 248 if (psMetadataLookup(config->arguments, " WEIGHT.FILENAMES")) {249 psMetadataRemoveKey(config->arguments, " WEIGHT.FILENAMES");248 if (psMetadataLookup(config->arguments, "VARIANCE.FILENAMES")) { 249 psMetadataRemoveKey(config->arguments, "VARIANCE.FILENAMES"); 250 250 } 251 251 if (psMetadataLookup(config->arguments, "PSF.FILENAMES")) { … … 295 295 outMask->save = true; 296 296 297 // Output weight298 if (have Weights) {299 pmFPAfile *out Weight = pmFPAfileDefineOutput(config, output->fpa, "PPSTACK.OUTPUT.WEIGHT");300 if (!out Weight) {301 psError(PS_ERR_IO, false, _("Unable to generate output file from PPSTACK.OUTPUT. WEIGHT"));302 return false; 303 } 304 if (out Weight->type != PM_FPA_FILE_WEIGHT) {305 psError(PS_ERR_IO, true, "PPSTACK.OUTPUT. WEIGHT is not of type WEIGHT");306 return false; 307 } 308 out Weight->save = true;297 // Output variance 298 if (haveVariances) { 299 pmFPAfile *outVariance = pmFPAfileDefineOutput(config, output->fpa, "PPSTACK.OUTPUT.VARIANCE"); 300 if (!outVariance) { 301 psError(PS_ERR_IO, false, _("Unable to generate output file from PPSTACK.OUTPUT.VARIANCE")); 302 return false; 303 } 304 if (outVariance->type != PM_FPA_FILE_VARIANCE) { 305 psError(PS_ERR_IO, true, "PPSTACK.OUTPUT.VARIANCE is not of type VARIANCE"); 306 return false; 307 } 308 outVariance->save = true; 309 309 } 310 310 -
branches/pap_branch_20090128/ppStack/src/ppStackLoop.c
r21204 r21236 24 24 25 25 // Files required for the convolution 26 static char *convolveFiles[] = { "PPSTACK.INPUT", "PPSTACK.INPUT.MASK", "PPSTACK.INPUT. WEIGHT", NULL };26 static char *convolveFiles[] = { "PPSTACK.INPUT", "PPSTACK.INPUT.MASK", "PPSTACK.INPUT.VARIANCE", NULL }; 27 27 28 28 // Output files for the combination 29 static char *combineFiles[] = { "PPSTACK.OUTPUT", "PPSTACK.OUTPUT.MASK", "PPSTACK.OUTPUT. WEIGHT",29 static char *combineFiles[] = { "PPSTACK.OUTPUT", "PPSTACK.OUTPUT.MASK", "PPSTACK.OUTPUT.VARIANCE", 30 30 "PPSTACK.OUTPUT.JPEG1", "PPSTACK.OUTPUT.JPEG2", NULL }; 31 31 … … 204 204 const char *tempImage = psMetadataLookupStr(NULL, recipe, "TEMP.IMAGE"); // Suffix for temporary images 205 205 const char *tempMask = psMetadataLookupStr(NULL, recipe, "TEMP.MASK"); // Suffix for temporary masks 206 const char *temp Weight = psMetadataLookupStr(NULL, recipe, "TEMP.WEIGHT"); // Suffix for temp weightmaps207 if (!tempImage || !tempMask || !temp Weight) {206 const char *tempVariance = psMetadataLookupStr(NULL, recipe, "TEMP.VARIANCE"); // Suffix for temp variance maps 207 if (!tempImage || !tempMask || !tempVariance) { 208 208 psError(PS_ERR_BAD_PARAMETER_VALUE, false, 209 "Unable to find TEMP.IMAGE, TEMP.MASK and TEMP. WEIGHTin recipe");209 "Unable to find TEMP.IMAGE, TEMP.MASK and TEMP.VARIANCE in recipe"); 210 210 return false; 211 211 } … … 381 381 psArray *imageNames = psArrayAlloc(num); 382 382 psArray *maskNames = psArrayAlloc(num); 383 psArray * weightNames = psArrayAlloc(num);383 psArray *varianceNames = psArrayAlloc(num); 384 384 for (int i = 0; i < num; i++) { 385 psString imageName = NULL, maskName = NULL, weightName = NULL; // Names for convolved images385 psString imageName = NULL, maskName = NULL, varianceName = NULL; // Names for convolved images 386 386 psStringAppend(&imageName, "%s/%s.%d.%s", tempDir, tempName, i, tempImage); 387 387 psStringAppend(&maskName, "%s/%s.%d.%s", tempDir, tempName, i, tempMask); 388 psStringAppend(& weightName, "%s/%s.%d.%s", tempDir, tempName, i, tempWeight);389 psTrace("ppStack", 5, "Temporary files: %s %s %s\n", imageName, maskName, weightName);388 psStringAppend(&varianceName, "%s/%s.%d.%s", tempDir, tempName, i, tempVariance); 389 psTrace("ppStack", 5, "Temporary files: %s %s %s\n", imageName, maskName, varianceName); 390 390 imageNames->data[i] = imageName; 391 391 maskNames->data[i] = maskName; 392 weightNames->data[i] = weightName;392 varianceNames->data[i] = varianceName; 393 393 } 394 394 // Free the outputName that we grabbed above to set up tempName. … … 481 481 writeImage(imageNames->data[i], hdu->header, readout->image, config); 482 482 writeImage(maskNames->data[i], hdu->header, readout->mask, config); 483 writeImage( weightNames->data[i], hdu->header, readout->weight, config);483 writeImage(varianceNames->data[i], hdu->header, readout->variance, config); 484 484 485 485 pmCell *inCell = readout->parent; // Input cell … … 609 609 // Start threading 610 610 ppStackThreadInit(); 611 ppStackThreadData *stack = ppStackThreadDataSetup(cells, imageNames, maskNames, weightNames, config);611 ppStackThreadData *stack = ppStackThreadDataSetup(cells, imageNames, maskNames, varianceNames, config); 612 612 613 613 psTimerStart("PPSTACK_INITIAL"); … … 1023 1023 psString imageResolved = pmConfigConvertFilename(imageNames->data[i], config, false, false); 1024 1024 psString maskResolved = pmConfigConvertFilename(maskNames->data[i], config, false, false); 1025 psString weightResolved = pmConfigConvertFilename(weightNames->data[i], config, false, false);1025 psString varianceResolved = pmConfigConvertFilename(varianceNames->data[i], config, false, false); 1026 1026 if (unlink(imageResolved) == -1 || unlink(maskResolved) == -1 || 1027 unlink( weightResolved) == -1) {1027 unlink(varianceResolved) == -1) { 1028 1028 psWarning("Unable to delete temporary files for image %d", i); 1029 1029 } 1030 1030 psFree(imageResolved); 1031 1031 psFree(maskResolved); 1032 psFree( weightResolved);1032 psFree(varianceResolved); 1033 1033 } 1034 1034 } 1035 1035 psFree(imageNames); 1036 1036 psFree(maskNames); 1037 psFree( weightNames);1037 psFree(varianceNames); 1038 1038 1039 1039 psFree(inputMask); … … 1073 1073 float renormWidth = psMetadataLookupS32(&mdok, recipe, "RENORM.WIDTH"); // Width of Gaussian phot 1074 1074 psMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask 1075 if (!pmReadout WeightRenormPhot(outRO, maskValue, renormNum, renormWidth,1076 renormMean, renormStdev, NULL)) {1075 if (!pmReadoutVarianceRenormPhot(outRO, maskValue, renormNum, renormWidth, 1076 renormMean, renormStdev, NULL)) { 1077 1077 psError(PS_ERR_UNKNOWN, false, "Unable to renormalise variances."); 1078 1078 psFree(outRO); -
branches/pap_branch_20090128/ppStack/src/ppStackMatch.c
r21204 r21236 225 225 } 226 226 227 // Read image, mask, weight227 // Read image, mask, variance 228 228 const char *tempImage = psMetadataLookupStr(NULL, recipe, "TEMP.IMAGE"); // Suffix for image 229 229 const char *tempMask = psMetadataLookupStr(NULL, recipe, "TEMP.MASK"); // Suffix for mask 230 const char *temp Weight = psMetadataLookupStr(NULL, recipe, "TEMP.WEIGHT"); // Suffix for weightmap231 psString imageName = NULL, maskName = NULL, weightName = NULL; // Names for convolved images230 const char *tempVariance = psMetadataLookupStr(NULL, recipe, "TEMP.VARIANCE"); // Suffix for variance map 231 psString imageName = NULL, maskName = NULL, varianceName = NULL; // Names for convolved images 232 232 psStringAppend(&imageName, "%s.%d.%s", outName, numInput, tempImage); 233 233 psStringAppend(&maskName, "%s.%d.%s", outName, numInput, tempMask); 234 psStringAppend(& weightName, "%s.%d.%s", outName, numInput, tempWeight);234 psStringAppend(&varianceName, "%s.%d.%s", outName, numInput, tempVariance); 235 235 236 236 if (!readImage(&readout->image, imageName, config) || !readImage(&readout->mask, maskName, config) || 237 !readImage(&readout-> weight, weightName, config)) {237 !readImage(&readout->variance, varianceName, config)) { 238 238 psError(PS_ERR_IO, false, "Unable to read previously produced image."); 239 239 psFree(imageName); 240 240 psFree(maskName); 241 psFree( weightName);241 psFree(varianceName); 242 242 return false; 243 243 } 244 244 psFree(imageName); 245 245 psFree(maskName); 246 psFree( weightName);246 psFree(varianceName); 247 247 } else { 248 248 #endif … … 383 383 "RENORM.STDEV")); 384 384 385 if (!pmReadout WeightRenormPixels(readout, maskBad, renormMean, renormStdev, rng)) {385 if (!pmReadoutVarianceRenormPixels(readout, maskBad, renormMean, renormStdev, rng)) { 386 386 psError(PS_ERR_UNKNOWN, false, "Unable to renormalise variances."); 387 387 psFree(output); … … 451 451 psFree(readout->image); 452 452 psFree(readout->mask); 453 psFree(readout-> weight);453 psFree(readout->variance); 454 454 readout->image = psMemIncrRefCounter(output->image); 455 455 readout->mask = psMemIncrRefCounter(output->mask); 456 readout-> weight = psMemIncrRefCounter(output->weight);456 readout->variance = psMemIncrRefCounter(output->variance); 457 457 } else { 458 458 // Fake the convolution … … 556 556 "RENORM.STDEV")); 557 557 558 if (!pmReadout WeightRenormPixels(readout, maskBad, renormMean, renormStdev, rng)) {558 if (!pmReadoutVarianceRenormPixels(readout, maskBad, renormMean, renormStdev, rng)) { 559 559 psError(PS_ERR_UNKNOWN, false, "Unable to renormalise variances."); 560 560 psFree(output); -
branches/pap_branch_20090128/ppStack/src/ppStackThread.c
r20711 r21236 38 38 psFitsClose(stack->imageFits->data[i]); 39 39 psFitsClose(stack->maskFits->data[i]); 40 psFitsClose(stack-> weightFits->data[i]);41 stack->imageFits->data[i] = stack->maskFits->data[i] = stack-> weightFits->data[i] = NULL;40 psFitsClose(stack->varianceFits->data[i]); 41 stack->imageFits->data[i] = stack->maskFits->data[i] = stack->varianceFits->data[i] = NULL; 42 42 } 43 43 psFree(stack->imageFits); 44 44 psFree(stack->maskFits); 45 psFree(stack-> weightFits);45 psFree(stack->varianceFits); 46 46 return; 47 47 } 48 48 49 49 ppStackThreadData *ppStackThreadDataSetup(const psArray *cells, const psArray *imageNames, 50 const psArray *maskNames, const psArray * weightNames,50 const psArray *maskNames, const psArray *varianceNames, 51 51 const pmConfig *config) 52 52 { … … 54 54 PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, imageNames, NULL); 55 55 PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, maskNames, NULL); 56 PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, weightNames, NULL);56 PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, varianceNames, NULL); 57 57 58 58 ppStackThreadData *stack = psAlloc(sizeof(ppStackThreadData)); // Thread data, to return … … 64 64 stack->imageFits = psArrayAlloc(numInputs); 65 65 stack->maskFits = psArrayAlloc(numInputs); 66 stack-> weightFits = psArrayAlloc(numInputs);66 stack->varianceFits = psArrayAlloc(numInputs); 67 67 for (int i = 0; i < numInputs; i++) { 68 68 if (!cells->data[i]) { … … 73 73 psString imageResolved = pmConfigConvertFilename(imageNames->data[i], config, false, false); 74 74 psString maskResolved = pmConfigConvertFilename(maskNames->data[i], config, false, false); 75 psString weightResolved = pmConfigConvertFilename(weightNames->data[i], config, false, false);75 psString varianceResolved = pmConfigConvertFilename(varianceNames->data[i], config, false, false); 76 76 stack->imageFits->data[i] = psFitsOpen(imageResolved, "r"); 77 77 stack->maskFits->data[i] = psFitsOpen(maskResolved, "r"); 78 stack-> weightFits->data[i] = psFitsOpen(weightResolved, "r");78 stack->varianceFits->data[i] = psFitsOpen(varianceResolved, "r"); 79 79 psFree(imageResolved); 80 80 psFree(maskResolved); 81 psFree( weightResolved);82 if (!stack->imageFits->data[i] || !stack->maskFits->data[i] || !stack-> weightFits->data[i]) {81 psFree(varianceResolved); 82 if (!stack->imageFits->data[i] || !stack->maskFits->data[i] || !stack->varianceFits->data[i]) { 83 83 psError(PS_ERR_UNKNOWN, false, "Unable to open convolved files %s, %s, %s", 84 (char*)imageNames->data[i], (char*)maskNames->data[i], (char*) weightNames->data[i]);84 (char*)imageNames->data[i], (char*)maskNames->data[i], (char*)varianceNames->data[i]); 85 85 return false; 86 86 } … … 156 156 // override the recorded last scan 157 157 ro->thisImageScan = thread->firstScan; 158 ro->this WeightScan = thread->firstScan;158 ro->thisVarianceScan = thread->firstScan; 159 159 ro->thisMaskScan = thread->firstScan; 160 160 ro->lastImageScan = thread->lastScan; 161 161 ro->lastMaskScan = thread->lastScan; 162 ro->last WeightScan = thread->lastScan;162 ro->lastVarianceScan = thread->lastScan; 163 163 ro->forceScan = true; 164 164 165 165 psFits *imageFits = stack->imageFits->data[i]; // FITS file for image 166 166 psFits *maskFits = stack->maskFits->data[i]; // FITS file for mask 167 psFits * weightFits = stack->weightFits->data[i]; // FITS file for weight167 psFits *varianceFits = stack->varianceFits->data[i]; // FITS file for variance 168 168 169 169 … … 189 189 } 190 190 191 if (pmReadoutMore Weight(ro, weightFits, 0, rows, config)) {191 if (pmReadoutMoreVariance(ro, varianceFits, 0, rows, config)) { 192 192 keepReading = true; 193 if (!pmReadoutReadChunkWeight(ro, weightFits, 0, rows, overlap, config)) { 194 psError(PS_ERR_IO, false, "Unable to read chunk %d for file PPSTACK.INPUT.WEIGHT %d", 193 if (!pmReadoutReadChunkVariance(ro, varianceFits, 0, rows, overlap, config)) { 194 psError(PS_ERR_IO, false, 195 "Unable to read chunk %d for file PPSTACK.INPUT.VARIANCE %d", 195 196 numChunk, i); 196 197 *status = false;
Note:
See TracChangeset
for help on using the changeset viewer.
