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