Changeset 431 in Sophya for trunk/Poubelle


Ignore:
Timestamp:
Sep 24, 1999, 3:17:11 PM (26 years ago)
Author:
ansari
Message:

galcross

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Poubelle/archTOI.old/plgalcross.cc

    r428 r431  
    1616
    1717//////////////////////////////////////////////////////////////////////////
     18//                                cmv 24/9/1999
    1819// Pour calculer les azimuth (E of N) d'intersection d'une direction avec
    1920// le plan galactique:
     
    2324// zRot : angle de rotation de l'axe du detecteur avec le zenith
    2425//        (0 = zenith, degres decimaux [0,180]).
    25 // alpG,decG : alpha,delta du vecteur perpendiculaire
    26 //             au plan (galactique) considere
     26// alpG,decG : alpha,delta du vecteur perpendiculaire au plan considere
    2727//             (heures et degres decimaux alpG=[0,24[, decG=[-90,90])
    2828//     ex: Galactic plane, original IAU definition of galactic
    29 //         North pole is : (12h 49mn    ,+27d 24'     , 1950)
    30 //                   soit  (12h 51mn 30s, +27d 07' 42", 2000)
     29//         North pole is : (12h 49mn    ,+27d 24'    , 1950)
     30//                   soit  (12h 51mn 30s,+27d 07' 42", 2000)
    3131// ---- OUTPUT:
    3232// azCr1,2 : azimuths (E of N) d'intersection du plan definit au dessus
    3333//           avec le cercle balaye par l'axe du detecteur
    34 //           (degres decimaux [0,360[)
     34//           (degres decimaux [0,360[).
     35//           Angle + sens retrograde (N>E>S>W), origine au Nord.
     36
    3537// ---- RETURN VALUE:
    3638//  -1 : mauvaise valeur en entree, relisez la doc!
     
    5658double aG, hG;
    5759EquatToHoriz(alpG,decG,TSid,Lat,aG,hG);
     60//printf("PlGalCross: tsid=%g lat=%g perp plan: alpha=%g dec=%g\n"
     61//      ,TSid,Lat,alpG,decG);
     62//printf("            -> elev=%g azi=%g (+180=%g)\n"
     63//      ,hG,aG,((aG>180.)?aG-180.:aG+180.));
    5864
    5965// on convertit l'angle "zRot" en elevation des coord horizontales
    6066double hRot = 90.-zRot;
     67//printf("PlGalCross: axe rot: elev = %g  dist.zen = %g\n",hRot,zRot);
    6168
    6269// on convertit en radian
     
    6774// du plan considere (OM.G=0) ayant l'elevation hRot.
    6875// Soient (a,h)=(azimuth,elevation) du point M (vecteur OM)
    69 // ATTENTION: l'azimuth aM,aG tourne + dans le sens retrograde!
     76// ATTENTION: l'azimuth aM,aG tourne + dans sens retrograde (N>E>S>W)!
    7077// En coordonnees cartesiennes:
    7178//     |  cos(h).cos(a) |      |  cos(hG).cos(aG) |
     
    7784//            x^2 + y^2 = R^2  et z=sin(hRot) avec R=cos(hRot)
    7885// - Equation de la droite d'intersection du plan avec le plan du cercle:
    79 //            a*x + b*y + c*z = 0 avec z=sin(hRot)
     86//            a*x + b*y + c*z = 0 avec z=sin(hRot)=cos(zRot)
    8087double ch=cos(hRot);
    8188double z=sin(hRot), chG=cos(hG), shG=sin(hG);
     
    93100} else {
    94101  double a=chG*cos(aG), b=-chG*sin(aG), cz=shG*z, R2=ch*ch;
     102  //printf("PlGalCross: plan a=%g b=%g c=%g R=%g\n",a,b,shG,ch);
    95103  //Stabilite numerique: |b|>|a| on resoud pour "x" sinon pour "y"
    96104  // **** cas 1-/ |b|>|a|  :  droite y = -(a/b)*x-cz/b
     
    117125  if(calcx) {x1=sol1; x2=sol2; y1=-a/b*x1-cz/b; y2=-a/b*x2-cz/b;}
    118126     else   {y1=sol1; y2=sol2; x1=-b/a*y1-cz/a; x2=-b/a*y2-cz/a;}
     127  //printf("PlGalCross: int1=(%g,%g,%g) int2=(%g,%g,%g)\n",x1,y1,z,x2,y2,z);
    119128  // Calcul des azimuths
    120129  azCr1 = atan2(-y1/ch,x1/ch); azCr2 = atan2(-y2/ch,x2/ch);
     
    123132  if(azCr1<0.) azCr1+=360.; if(azCr1>=360.) azCr1-=360.; if(azCr1<0.) azCr1=0.;
    124133  if(azCr2<0.) azCr2+=360.; if(azCr2>=360.) azCr2-=360.; if(azCr2<0.) azCr2=0.;
     134  //printf("PlGalCross: azCr1 = %g,    azCr2 = %g  (azCr1+azCr2)/2 = %g\n"
     135  //,azCr1,azCr2,((azCr1+azCr2>=720.)?(azCr1+azCr2)/2-360.:(azCr1+azCr2)/2));
    125136  return 0;
    126137}
     
    134145// pour une latitude terrestre et un temps sideral donnes.
    135146// INPUT:
    136 //   alpha,delta : coord equatoriales en heures [0,24[ et degres [-90,90] decimaux
     147//   alpha,delta : coord equat en heures [0,24[ et degres [-90,90] decimaux
    137148//   tsid : temps sideral en heures [0,24[ decimales
    138149//          (ou angle horaire du point vernal ou ascension droite du zenith)
     
    142153// OUTPUT: les coordonnees horizontales:
    143154//   azimuth : azimuth (E of N) degre [0,360[ decimaux
    144 //             ici compte + dans sens retrograde avec origine au Nord,
     155//             tourne +  sens retrograde (N>E>S>W), origine au Nord,
    145156//             azimuth "des marins" (serveur BDL, USNO, xephem , skycalc...)
    146157//   elevation : elevation degre [-90,90] decimaux
Note: See TracChangeset for help on using the changeset viewer.