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
|
---|