Changeset 23740 for trunk/ppSub/src/ppSubDefineOutput.c
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/pap merged: 23690,23704,23711,23719,23723,23730-23735
- Property svn:mergeinfo changed
-
trunk/ppSub
- Property svn:mergeinfo changed
/branches/pap/ppSub merged: 23704,23711,23719,23723,23730,23732-23734
- Property svn:mergeinfo changed
-
trunk/ppSub/src
- Property svn:ignore
-
old new 10 10 stamp-h1 11 11 ppSubKernel 12 ppSubErrorCodes.h 13 ppSubErrorCodes.c
-
- Property svn:ignore
-
trunk/ppSub/src/ppSubDefineOutput.c
r23403 r23740 21 21 #include "ppSub.h" 22 22 23 bool ppSubDefineOutput( pmConfig *config, const pmFPAview *view)23 bool ppSubDefineOutput(const char *name, pmConfig *config) 24 24 { 25 psAssert(name, "Require name"); 25 26 psAssert(config, "Require configuration"); 26 psAssert(view, "Require view");27 27 28 pmCell *outCell = pmFPAfileThisCell(config->files, view, "PPSUB.OUTPUT"); // Output cell 28 pmFPAview *view = ppSubViewReadout(); // View to readout 29 pmCell *outCell = pmFPAfileThisCell(config->files, view, name); // Output cell 29 30 pmFPA *outFPA = outCell->parent->parent; // Output FPA 30 pmHDU *outHDU = outFPA->hdu; // Output HDU31 pmHDU *outHDU = outFPA->hdu; // Output HDU 31 32 if (!outHDU->header) { 32 33 outHDU->header = psMetadataAlloc(); 33 34 } 34 35 35 // generate an output readout (first check if it's already there by virtue of kernels) 36 pmReadout *outRO = pmFPAfileThisReadout(config->files, view, "PPSUB.OUTPUT.KERNELS"); // RO with kernel 37 if (!outRO) { 38 outRO = pmReadoutAlloc(outCell); // Output readout: subtraction 36 // The output readout may already be present if we read in the convolution kernel 37 pmReadout *outRO = NULL; // Output readout 38 if (outCell->readouts && outCell->readouts->n > 0 && outCell->readouts->data[0]) { 39 outRO = psMemIncrRefCounter(outCell->readouts->data[0]); 40 } else { 41 outRO = pmReadoutAlloc(outCell); 39 42 } 40 43 41 // convolved input images44 // Convolved input images 42 45 pmReadout *inConv = pmFPAfileThisReadout(config->files, view, "PPSUB.INPUT.CONV"); // Input readout 43 46 pmReadout *refConv = pmFPAfileThisReadout(config->files, view, "PPSUB.REF.CONV"); // Reference readout 47 psFree(view); 44 48 45 49 // Add kernel descrption to header. … … 55 59 if (!kernels) { 56 60 psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find SUBTRACTION.KERNEL"); 57 psFree(inConv);58 psFree(refConv);59 61 psFree(outRO); 60 62 return false; … … 63 65 kernels->description); 64 66 67 // Add additional data to the header 68 pmFPAfile *refFile = psMetadataLookupPtr(NULL, config->files, "PPSUB.REF"); // Reference file 69 pmFPAfile *inFile = psMetadataLookupPtr(NULL, config->files, "PPSUB.INPUT"); // Input file 70 psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.REFERENCE", 0, 71 "Subtraction reference", refFile->filename); 72 psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.INPUT", 0, 73 "Subtraction input", inFile->filename); 74 ppSubVersionHeader(outHDU->header); 75 76 65 77 outRO->analysis = psMetadataCopy(outRO->analysis, analysis); 66 78 67 #ifdef TESTING 68 { 69 psImage *kernelImage = psMetadataLookupPtr(&mdok, analysis, 70 "SUBTRACTION.KERNEL.IMAGE"); // Image of kernel 71 psFits *fits = psFitsOpen("kernel.fits", "w"); 72 psFitsWriteImage(fits, NULL, kernelImage, 0, NULL); 73 psFitsClose(fits); 74 } 75 #endif 79 psFree(outRO); 76 80 77 81 return true;
Note:
See TracChangeset
for help on using the changeset viewer.
