Changeset 431 in Sophya
- Timestamp:
- Sep 24, 1999, 3:17:11 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archTOI.old/plgalcross.cc
r428 r431 16 16 17 17 ////////////////////////////////////////////////////////////////////////// 18 // cmv 24/9/1999 18 19 // Pour calculer les azimuth (E of N) d'intersection d'une direction avec 19 20 // le plan galactique: … … 23 24 // zRot : angle de rotation de l'axe du detecteur avec le zenith 24 25 // (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 27 27 // (heures et degres decimaux alpG=[0,24[, decG=[-90,90]) 28 28 // ex: Galactic plane, original IAU definition of galactic 29 // North pole is : (12h 49mn ,+27d 24' 30 // soit (12h 51mn 30s, 29 // North pole is : (12h 49mn ,+27d 24' , 1950) 30 // soit (12h 51mn 30s,+27d 07' 42", 2000) 31 31 // ---- OUTPUT: 32 32 // azCr1,2 : azimuths (E of N) d'intersection du plan definit au dessus 33 33 // 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 35 37 // ---- RETURN VALUE: 36 38 // -1 : mauvaise valeur en entree, relisez la doc! … … 56 58 double aG, hG; 57 59 EquatToHoriz(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.)); 58 64 59 65 // on convertit l'angle "zRot" en elevation des coord horizontales 60 66 double hRot = 90.-zRot; 67 //printf("PlGalCross: axe rot: elev = %g dist.zen = %g\n",hRot,zRot); 61 68 62 69 // on convertit en radian … … 67 74 // du plan considere (OM.G=0) ayant l'elevation hRot. 68 75 // 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)! 70 77 // En coordonnees cartesiennes: 71 78 // | cos(h).cos(a) | | cos(hG).cos(aG) | … … 77 84 // x^2 + y^2 = R^2 et z=sin(hRot) avec R=cos(hRot) 78 85 // - 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) 80 87 double ch=cos(hRot); 81 88 double z=sin(hRot), chG=cos(hG), shG=sin(hG); … … 93 100 } else { 94 101 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); 95 103 //Stabilite numerique: |b|>|a| on resoud pour "x" sinon pour "y" 96 104 // **** cas 1-/ |b|>|a| : droite y = -(a/b)*x-cz/b … … 117 125 if(calcx) {x1=sol1; x2=sol2; y1=-a/b*x1-cz/b; y2=-a/b*x2-cz/b;} 118 126 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); 119 128 // Calcul des azimuths 120 129 azCr1 = atan2(-y1/ch,x1/ch); azCr2 = atan2(-y2/ch,x2/ch); … … 123 132 if(azCr1<0.) azCr1+=360.; if(azCr1>=360.) azCr1-=360.; if(azCr1<0.) azCr1=0.; 124 133 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)); 125 136 return 0; 126 137 } … … 134 145 // pour une latitude terrestre et un temps sideral donnes. 135 146 // INPUT: 136 // alpha,delta : coord equat orialesen heures [0,24[ et degres [-90,90] decimaux147 // alpha,delta : coord equat en heures [0,24[ et degres [-90,90] decimaux 137 148 // tsid : temps sideral en heures [0,24[ decimales 138 149 // (ou angle horaire du point vernal ou ascension droite du zenith) … … 142 153 // OUTPUT: les coordonnees horizontales: 143 154 // azimuth : azimuth (E of N) degre [0,360[ decimaux 144 // ici compte + dans sens retrograde avecorigine au Nord,155 // tourne + sens retrograde (N>E>S>W), origine au Nord, 145 156 // azimuth "des marins" (serveur BDL, USNO, xephem , skycalc...) 146 157 // elevation : elevation degre [-90,90] decimaux
Note:
See TracChangeset
for help on using the changeset viewer.