Changeset 21524 for trunk/ppSub/src/ppSubDefineOutput.c
- Timestamp:
- Feb 17, 2009, 2:31:20 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/ppSub/src/ppSubDefineOutput.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppSub/src/ppSubDefineOutput.c
r21360 r21524 6 6 * 7 7 * @author IfA 8 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $9 * @date $Date: 2009-02- 06 01:37:17$8 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2009-02-18 00:31:20 $ 10 10 * Copyright 2009 Institute for Astronomy, University of Hawaii 11 11 */ 12 12 13 #ifdef HAVE_CONFIG_H 14 #include <config.h> 15 #endif 16 17 #include <stdio.h> 18 #include <pslib.h> 19 #include <psmodules.h> 20 13 21 #include "ppSub.h" 14 22 15 bool ppSubDefineOutput (pmConfig *config, const pmFPAview *view) { 23 bool ppSubDefineOutput(pmConfig *config, const pmFPAview *view) 24 { 25 psAssert(config, "Require configuration"); 26 psAssert(view, "Require view"); 16 27 17 bool mdok; 18 19 // generate an output readout 28 // generate an output readout 20 29 pmCell *outCell = pmFPAfileThisCell(config->files, view, "PPSUB.OUTPUT"); // Output cell 21 30 pmReadout *outRO = pmReadoutAlloc(outCell); // Output readout: subtraction … … 30 39 pmReadout *refConv = pmFPAfileThisReadout(config->files, view, "PPSUB.REF.CONV"); // Reference readout 31 40 32 // Add kernel descrption to header. We don't know which readout gets the kernels because 33 // it depends on which is larger (the choice is set in ppSubMatchPSFs) 34 bool inputHasKernel = true; 35 pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, inConv->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL); // Subtraction kernel 41 // Add kernel descrption to header. 42 // We don't know which readout has the kernels because it depends on which PSF is larger 43 bool mdok; // Status of MD lookup 44 psMetadata *analysis = inConv->analysis; // Analysis metadata with kernel information 45 pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, analysis, 46 PM_SUBTRACTION_ANALYSIS_KERNEL); // Subtraction kernel 36 47 if (!kernels) { 37 kernels = psMetadataLookupPtr(&mdok, refConv->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL);38 inputHasKernel = false;48 analysis = refConv->analysis; 49 kernels = psMetadataLookupPtr(&mdok, analysis, PM_SUBTRACTION_ANALYSIS_KERNEL); 39 50 } 40 51 if (!kernels) { … … 45 56 return false; 46 57 } 47 psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.KERNEL", 0, "Subtraction kernel", kernels->description); 58 psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.KERNEL", 0, "Subtraction kernel", 59 kernels->description); 48 60 49 if (inputHasKernel) { 50 outRO->analysis = psMetadataCopy(outRO->analysis, inConv->analysis); 51 } else { 52 outRO->analysis = psMetadataCopy(outRO->analysis, refConv->analysis); 53 } 61 outRO->analysis = psMetadataCopy(outRO->analysis, analysis); 54 62 55 63 #ifdef TESTING 56 psImage *kernelImage = NULL;57 58 if (inputHasKernel) {59 kernelImage = psMetadataLookupPtr(&mdok, inConv->analysis, "SUBTRACTION.KERNEL.IMAGE"); // Image of the kernels 60 } else {61 kernelImage = psMetadataLookupPtr(&mdok, refConv->analysis, "SUBTRACTION.KERNEL.IMAGE");64 { 65 psImage *kernelImage = psMetadataLookupPtr(&mdok, analysis, 66 "SUBTRACTION.KERNEL.IMAGE"); // Image of kernel 67 psFits *fits = psFitsOpen("kernel.fits", "w"); 68 psFitsWriteImage(fits, NULL, kernelImage, 0, NULL); 69 psFitsClose(fits); 62 70 } 63 64 psFits *fits = psFitsOpen("kernel.fits", "w");65 psFitsWriteImage(fits, NULL, kernelImage, 0, NULL);66 psFitsClose(fits);67 71 #endif 68 72
Note:
See TracChangeset
for help on using the changeset viewer.
