[801] | 1 | // Dominique YVON, CEA/DAPNIA/SPP 02/2000
|
---|
| 2 |
|
---|
| 3 | #ifndef CARTELOBE_SEEN
|
---|
| 4 | #define CARTELOBE_SEEN
|
---|
| 5 |
|
---|
| 6 | #include "abslobenopolar.h"
|
---|
| 7 |
|
---|
| 8 | #define NRANSI
|
---|
| 9 | #include "numrecipes.h"
|
---|
| 10 | /* Les lobes cartographies ne presentant aucune symetrie spatialle, il est necessaire
|
---|
| 11 | de connaitre l orientation du repere Ticra pour pouvoir calculer dans les lobes.
|
---|
| 12 | Ceci est incompatible avec l'etablissement a priori de carte du ciel mesures.
|
---|
| 13 | Il faut connaitre la strategie de scanning et alors reconstruire les cartes, bref
|
---|
| 14 | faire tout le boulot.
|
---|
| 15 | */
|
---|
| 16 |
|
---|
| 17 | class CarteLobe {
|
---|
| 18 | /* les cartes de lobe centraux sont stockees selon les variables
|
---|
| 19 | U=sin(alpha)cos(beta)
|
---|
| 20 | V=sin(alpha)sin(beta) ou alpha et beta sont les angle en coordonnees
|
---|
| 21 | polaires dans le repere du logiciel TICRA
|
---|
| 22 | Ce sont ces variables qu'il faut passer a la fonction Value pour obtenir
|
---|
| 23 | une reponse coherente
|
---|
| 24 | */
|
---|
| 25 | // On utilise les Numerical Recepies:gestions de tableau particulieres
|
---|
| 26 | public:
|
---|
| 27 | CarteLobe(char fileRoot[]="cartelobevide",double frequence=100.E9,int_4 NbPixelX=100,
|
---|
| 28 | int_4 NbPixelY=100);
|
---|
| 29 | virtual ~CarteLobe();
|
---|
| 30 | void FitsVisu(char FitsFile[],long NbX=300,long NbY=300);
|
---|
| 31 | double Value(double UValue,double VValue) const ;
|
---|
| 32 | // Retourne la valeur de la carte interpole en UValue (X) et en VValue(Y)
|
---|
| 33 | // Echelle lineaire.
|
---|
| 34 | double getFreq() const { return freq;}
|
---|
| 35 | void UVToAng(double U, double V, double& alpha, double& beta) const;
|
---|
| 36 | //fonction ecrite dans la limite des petits angles
|
---|
| 37 | double UCentre(){return (XMin+XMax)/2.;}
|
---|
| 38 | double VCentre(){return (YMin+YMax)/2.;}
|
---|
| 39 | void UBornes(double& UMin, double& UMax) const {
|
---|
| 40 | UMin=(double)XMin; UMax=(double)XMax; return;}
|
---|
| 41 | void VBornes(double& VMin, double& VMax) const {
|
---|
| 42 | VMin=(double)YMin; VMax=(double)YMax; return;}
|
---|
| 43 | double halfAngAperture();
|
---|
| 44 | inline double resol() {return resolution;}
|
---|
| 45 | protected:
|
---|
| 46 | //NumRecipes NR; // pour avoir acces au librairies NR
|
---|
| 47 | long NbPixX;
|
---|
| 48 | long NbPixY;
|
---|
| 49 | float *pAxeX;
|
---|
| 50 | float *pAxeY;
|
---|
| 51 |
|
---|
| 52 | float XMin, XMax;
|
---|
| 53 | float YMin, YMax;
|
---|
| 54 | float** pCarte; // Pointeur sur la carte du lobe,facon NR
|
---|
| 55 | // Les valeurs sont stockees en decibel
|
---|
| 56 | double freq; // Frequence a laquelle la carte du lobe a ete etablie
|
---|
| 57 | double resolution; //Resolution angulaire de la carte de base
|
---|
| 58 |
|
---|
| 59 | double CalcResol();
|
---|
| 60 | };
|
---|
| 61 |
|
---|
| 62 | #endif
|
---|