00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _imagepol_cmpt__H__
00014 #define _imagepol_cmpt__H__
00015
00016 #include <vector>
00017 #include <xmlcasa/casac.h>
00018
00019 #include <xmlcasa/conversions.h>
00020 #include <xmlcasa/variant.h>
00021 #include <xmlcasa/images/imagepol_forward.h>
00022 #include <xmlcasa/images/image_cmpt.h>
00023
00024
00025
00026 namespace casac {
00027
00036 class imagepol
00037 {
00038 private:
00039
00040
00041
00042 public:
00043
00044 imagepol();
00045
00046 virtual ~imagepol();
00047
00048 bool imagepoltestimage(const std::string& outfile = "imagepol.iquv", const std::vector<double>& rm = std::vector<double> (1, 0.0), const double pa0 = 0.0, const double sigma = 0.01, const int nx = 32, const int ny = 32, const int nf = 32, const double f0 = 1.4e9, const double bw = 128.0e6);
00049
00050 bool complexlinpol(const std::string& outfile);
00051
00052 bool complexfraclinpol(const std::string& outfile);
00053
00054 ::casac::image * depolratio(const std::string& infile, const bool debias = false, const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00055
00056 bool close();
00057
00058 bool done();
00059
00060 bool fourierrotationmeasure(const std::string& complex = "", const std::string& amp = "", const std::string& pa = "", const std::string& real = "", const std::string& imag = "", const bool zerolag0 = false);
00061
00062 ::casac::image * fraclinpol(const bool debias = false, const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00063
00064 ::casac::image * fractotpol(const bool debias = false, const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00065
00066 ::casac::image * linpolint(const bool debias = false, const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00067
00068 ::casac::image * linpolposang(const std::string& outfile = "");
00069
00070 bool makecomplex(const std::string& complex, const std::string& real = "", const std::string& imag = "", const std::string& amp = "", const std::string& phase = "");
00071
00072 bool open(const ::casac::variant& image = ::casac::initialize_variant(""));
00073
00074 ::casac::image * pol(const std::string& which, const bool debias = false, const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00075
00076 bool rotationmeasure(const std::string& rm = "", const std::string& rmerr = "", const std::string& pa0 = "", const std::string& pa0err = "", const std::string& nturns = "", const std::string& chisq = "", const double sigma = -1, const double rmfg = 0.0, const double rmmax = 0.0, const double maxpaerr = 1e30, const std::string& plotter = "", const int nx = 5, const int ny = 5);
00077
00078 double sigma(const double clip = 10.0);
00079
00080 ::casac::image * sigmadepolratio(const std::string& infile, const bool debias = false, const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00081
00082 ::casac::image * sigmafraclinpol(const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00083
00084 ::casac::image * sigmafractotpol(const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00085
00086 double sigmalinpolint(const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00087
00088 ::casac::image * sigmalinpolposang(const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00089
00090 double sigmastokes(const std::string& which, const double clip = 10.0);
00091
00092 double sigmastokesi(const double clip = 10.0);
00093
00094 double sigmastokesq(const double clip = 10.0);
00095
00096 double sigmastokesu(const double clip = 10.0);
00097
00098 double sigmastokesv(const double clip = 10.0);
00099
00100 double sigmatotpolint(const double clip = 10.0, const double sigma = -1);
00101
00102 ::casac::image * stokes(const std::string& which, const std::string& outfile = "");
00103
00104 ::casac::image * stokesi(const std::string& outfile = "");
00105
00106 ::casac::image * stokesq(const std::string& outfile = "");
00107
00108 ::casac::image * stokesu(const std::string& outfile = "");
00109
00110 ::casac::image * stokesv(const std::string& outfile = "");
00111
00112 bool summary();
00113
00114 ::casac::image * totpolint(const bool debias = false, const double clip = 10.0, const double sigma = -1, const std::string& outfile = "");
00115
00116 private:
00117
00118 #include <xmlcasa/images/imagepol_private.h>
00119
00120 };
00121
00122 }
00123 #endif
00124