SpectralCollapser.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef IMAGEANALYSIS_SPECTRALCOLLAPSER_H
00029 #define IMAGEANALYSIS_SPECTRALCOLLAPSER_H
00030
00031 #include <imageanalysis/ImageAnalysis/ImageTask.h>
00032
00033 #include <casa/namespace.h>
00034
00035 namespace casa {
00036
00037 template <class T> class SubImage;
00038
00039 class SpectralCollapser {
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 public:
00063
00064 enum CollapseType {
00065 PMEAN,
00066 PMEDIAN,
00067 PSUM,
00068 CUNKNOWN
00069
00070 };
00071
00072 enum CollapseError {
00073 PNOERROR,
00074 PERMSE,
00075 PPROPAG,
00076 EUNKNOWN
00077 };
00078
00079
00080 SpectralCollapser(const SPCIIF image);
00081
00082
00083 SpectralCollapser(const SPCIIF image, const String storePath);
00084
00085
00086 virtual ~SpectralCollapser();
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097 virtual Bool collapse(const Vector<Float> &specVals, const Float startVal, const Float endVal,
00098 const String &unit, const SpectralCollapser::CollapseType &collType, const SpectralCollapser::CollapseError &collError, String &outname, String &msg);
00099
00100 String summaryHeader() const;
00101
00102 void collapseTypeToVector(const SpectralCollapser::CollapseType &collType, Vector<Int> &momentVec);
00103
00104
00105 static void stringToCollapseType(const String &text, SpectralCollapser::CollapseType &collType);
00106
00107
00108 static void stringToCollapseError(const String &text, SpectralCollapser::CollapseError &collError);
00109
00110
00111 static void collapseTypeToString(const SpectralCollapser::CollapseType &collType, String &strCollType);
00112
00113
00114 static void collapseErrorToString(const SpectralCollapser::CollapseError &collError, String &strCollError);
00115
00116 private:
00117 SPCIIF _image;
00118 LogIO *_log;
00119
00120 String _storePath;
00121 String _all;
00122 IPosition _specAxis;
00123 Bool _hasQualAxis;
00124
00125
00126 SpectralCollapser();
00127
00128 void _setUp();
00129 Bool _cleanTmpData(const String &tmpFileName) const;
00130 Bool _cleanTmpData(const String &tmpData, const String &tmpError) const;
00131 Bool _getQualitySubImg(const ImageInterface<Float>* image, const Bool &data, SubImage<Float> &qualitySub);
00132 Bool _getQualitySubImgs(SPCIIF image, SHARED_PTR<SubImage<Float> > &subData, SHARED_PTR<SubImage<Float> > &subError) const;
00133 Bool _getOutputName(const String &wcsInp, String &outImg, String &outImgData, String &outImgError) const;
00134 Bool _collapse(const SPCIIF image, const String &aggString,
00135 const String& chanInp, const String& outname) const;
00136 Bool _moments(const ImageInterface<Float> *image, const Vector<Int> &momentVec,
00137 const Int & startIndex, const Int &endIndex, const String& outname);
00138 Bool _mergeDataError(const String &outImg, const String &dataImg, const String &errorImg, const Float &normError=1.0) const;
00139 void _addMiscInfo(const String &outName, const String &wcsInput, const String &chanInput,
00140 const SpectralCollapser::CollapseType &collType, const SpectralCollapser::CollapseError &collError) const;
00141 void _collTypeToImCollString(const SpectralCollapser::CollapseType &collType, String &colType) const;
00142 void _collErrorToImCollString(const SpectralCollapser::CollapseError &collError, String &colError) const ;
00143
00144 };
00145 }
00146
00147 #endif