Luiza  v03-01
GloriaAstrometry.h
1 /*
2  * GloriaAstrometry.h
3  *
4  * Created on: Sep 14, 2012
5  * Author: Lech Wiktor Piotrowski
6  */
7 
8 #ifndef GLORIAASTROMETRY_H_
9 #define GLORIAASTROMETRY_H_
10 
11 #include "math.h"
12 #include "GloriaFitsTable.h"
13 #include "leblind.h"
14 
15 namespace gloria
16 {
17 
18 class GloriaAstrometry: public gloria::GloriaFitsTable
19 {
20 public:
22  GloriaAstrometry();
23 
26  GloriaAstrometry(leblind_struct *lestr);
27 
29  GloriaAstrometry(GloriaFitsHeader *header);
30 
33  void InitFromLeblind(leblind_struct *lestr);
34 
36  void InitFromHeader(GloriaFitsHeader *header);
37 
39  void WriteAstrometry(GloriaFitsHeader *header);
40 
42  void DeleteAstrometry(GloriaFitsHeader *header);
43 
45  bool IsAstrometryPresent(GloriaFitsHeader *header);
46 
48  void Print(std::ostream& os);
49 
51  void GetRaDecFromXY(double x, double y, double *ra, double *dec);
52 
53  inline void GetRaDecFromXY(double x, double y, double *radec)
54  { GetRaDecFromXY( x, y, radec, radec+1); };
55 
57  void GetXYFromRaDec(double ra, double dec, double *x, double *y);
58 
59  inline void GetXYFromRaDec(double ra, double dec, double *xy)
60  { GetXYFromRaDec( ra, dec, xy, xy+1); };
61 
62  virtual ~GloriaAstrometry();
63 
64 public:
65 
66  // WCS astrometry values
68  int crpix[2];
70  double crval[2];
72  double cd[4];
74  int sip_order_a;
76  int sip_order_b;
78  int sip_order_ap;
80  int sip_order_bp;
82 
84  vector< vector<double> > sip_a;
86 
88  vector< vector<double> > sip_b;
90 
92  vector< vector<double> > sip_ap;
94 
96  vector< vector<double> > sip_bp;
97 
98  private:
99 
101  double ref_ra, ref_dec;
102 
104  void InitWCSVec();
105 
106  double wcs_ref_vec[3];
107  double wcs_ra_vec[3];
108  double wcs_dec_vec[3];
109 
110  double deg2rad;
111  double rad2deg;
112 };
113 
114 } /* namespace gloria */
115 #endif /* GLORIAASTROMETRY_H_ */
namespace for data storing and exchange formats
Definition: GloriaAstrometry.h:15
Class for reading and processing fits tables in Luiza.
Definition: GloriaFitsTable.h:109
Class for handling fits file headers.
Definition: GloriaFitsHeader.h:33