source: BAORadio/libindi/libindi/communs/astro.h @ 684

Last change on this file since 684 was 684, checked in by frichard, 12 years ago
File size: 3.6 KB
Line 
1////////////////////////////////
2// Classe Astro               //
3// Franck RICHARD             //
4// BAORadio                   //
5// franckrichard033@gmail.com //
6// juin 2011                  //
7////////////////////////////////
8
9#ifndef Astro_class
10#define Astro_class
11
12#include "math.h"
13#include "../communs/const.h"
14#include "stdio.h"
15#include "stdlib.h"
16#include <iostream>
17#include <string.h>
18#include <sstream>
19#include <iomanip>
20#include "const.h"
21
22using namespace std;
23
24
25
26
27struct CoordonneesHoraires
28{
29    string ar;                          // Coordonnées horaires d'un objet
30    string dec;
31};
32
33struct CoordonneesHorairesDouble
34{
35    double ar;                          // Coordonnées horaires d'un objet
36    double dec;
37};
38
39class Astro
40{
41public:
42    Astro();
43    ~Astro();
44
45       
46    void   DefinirDateHeure(double Annee, double Mois, double Jour, double Heu, double Min, double Sec);
47    void   DefinirPressionTemp(double P, double T);
48    void   DefinirLongitudeLatitude(double log, double lat);
49    double VerifAngle(double Angle);
50    double VerifDistance(double Angle);
51    double DistanceAngulaireEntre2Points(double az1, double ha1, double az2, double ha2);
52    double Arrondi(double a);
53    string DHMS(double mema, bool HMS);
54     void   Azimut(double Ar, double De, double *azi, double *hau);
55    void   AzHa2ADDe(double Az, double Ha, double *AD, double *Dec);
56    void   RechercheAzimutFinSuivi(double AD, double Dec, long int *azmin, long int *azmax);
57    void   Precession(double *ar, double *de);
58    void   NutationEtoile(double *ar, double *de);
59    void   AberrationAnnuelle(double *ar, double *de);
60    void   CalculJJ(double Heure);
61    double CalculJJ(double A, double M, double J, double Heure);
62    void   CalculTSL(); 
63    double RefractionAtmospherique(double ht);
64    double CalculLongitudeSoleil();
65    double TSL(double JJ,double HeureSiderale,double Longitude);
66    bool    Decomposition(string chaine, char type, float *a1, float *a2, float *a3);
67    void   Nutation();
68    void   Obliquite(double JJ);
69    void   atms ( double rt, double tt, double dnt, double gamal, double r,
70                   double *dn, double *rdndr );
71    void   atmt ( double robs, double tdkok, double alpha, double gamm2,
72                   double delm2, double c1, double c2, double c3,
73                   double c4, double c5, double c6, double r,
74                   double *t, double *dn, double *rdndr );
75    void   slaRefro ( double zobs, double hm, double tdk, double pmb,
76                double rh, double wl, double phi, double tlr,
77                double eps, double *ref );
78    float  slaRange(float angle );
79    double slaDrange(double angle );
80    void   CalculARDecSoleil(CoordonneesHorairesDouble *Soleil);
81   
82    double GetLatitude()    { return Latitude;  }
83    double GetLongitude()   { return Longitude; }
84    double GetPression()    { return Pression;  }
85    double GetTemperature() { return Temp;  }
86    double GetAnnee()       { return Annee; }
87    double GetMois()        { return Mois;  }
88    double GetJour()        { return Jour;  }
89    double GetHeure()       { return Heure; }
90    double GetMin()         { return Min;   }
91    double GetSec()         { return Sec;   }
92    double GetJJ()          { return JJ;    } 
93    double GetTSL()         { return tsl;   } 
94
95 
96     
97private:
98   
99    double Pression;
100    double Temp;
101    double Longitude;
102    double Latitude;
103    double JJ;
104    double CorP;
105    double CorEP;
106    double Annee;
107    double Mois;
108    double Jour;
109    double Heure;
110    double Min;
111    double Sec;
112    double ep;
113    double hs;
114    double UTCP;
115    double tsl;
116    double LongitudeSoleil;
117 
118};
119
120
121#endif
Note: See TracBrowser for help on using the repository browser.