Changeset 3572 in Sophya for trunk/SophyaExt/XAstroPack
- Timestamp:
- Feb 7, 2009, 10:50:34 PM (17 years ago)
- Location:
- trunk/SophyaExt/XAstroPack
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/XAstroPack/mollweide.cc
r2730 r3572 48 48 \endverbatim 49 49 */ 50 double MollWeide_XY(double longitude,double latitude,double * xmoll,double*ymoll)50 double MollWeide_XY(double longitude,double latitude,double& xmoll,double& ymoll) 51 51 { 52 52 int i,niter=2; … … 90 90 91 91 t0 *= asgn; 92 *xmoll = 2.*M_SQRT2*(longitude-M_PI)/M_PI*cos(t0);93 *ymoll = M_SQRT2*sin(t0);92 xmoll = 2.*M_SQRT2*(longitude-M_PI)/M_PI*cos(t0); 93 ymoll = M_SQRT2*sin(t0); 94 94 95 95 return t0; … … 118 118 \endverbatim 119 119 */ 120 double MollWeide_LL(double xmoll,double ymoll,double * longitude,double*latitude)120 double MollWeide_LL(double xmoll,double ymoll,double& longitude,double& latitude) 121 121 { 122 122 double t,a,eps=1.e-20; 123 123 124 *longitude = *latitude = -999.;124 longitude = latitude = -999.; 125 125 if(xmoll<-2*M_SQRT2 || xmoll>2*M_SQRT2) return(-901.); 126 126 if(ymoll<-M_SQRT2 || ymoll>M_SQRT2) return(-902.); … … 130 130 131 131 a = (2.*t+sin(2.*t))/M_PI; if(a<-1.) a=-1.; else if(a>1.) a=1.; 132 *latitude = asin(a);132 latitude = asin(a); 133 133 134 134 a= cos(t); 135 135 if(fabs(a)<eps) return(-903.); 136 *longitude = M_PI*(xmoll/(2.*M_SQRT2*a)+1.);136 longitude = M_PI*(xmoll/(2.*M_SQRT2*a)+1.); 137 137 138 138 return(t); -
trunk/SophyaExt/XAstroPack/mollweide.h
r1811 r3572 1 1 #ifndef MOLLWEIDE_H_SEEN 2 2 #define MOLLWEIDE_H_SEEN 3 double MollWeide_XY(double longitude,double latitude,double * xmoll,double*ymoll);4 double MollWeide_LL(double xmoll,double ymoll,double * longitude,double*latitude);3 double MollWeide_XY(double longitude,double latitude,double& xmoll,double& ymoll); 4 double MollWeide_LL(double xmoll,double ymoll,double& longitude,double& latitude); 5 5 #endif -
trunk/SophyaExt/XAstroPack/tstmollweide.cc
r2743 r3572 20 20 a = 2.*tvrai+sin(2.*tvrai); 21 21 lat = asin(a/M_PI); 22 tcalc = MollWeide_XY(0.,lat, &x,&y);22 tcalc = MollWeide_XY(0.,lat,x,y); 23 23 if(fabs(tcalc-tvrai)>tll) {tll = fabs(tcalc-tvrai); txy=tvrai;} 24 24 if(file) fprintf(file,"%e %e %e %e\n",tvrai,tcalc,a,tcalc-tvrai); … … 28 28 29 29 for(lon=0.;lon<360.;lon+=2.5) for(lat=-90.;lat<=90.1;lat+=2.5) { 30 txy = MollWeide_XY(lon*M_PI/180.,lat*M_PI/180., &x,&y);31 tll = MollWeide_LL(x,y, &longitude,&latitude);30 txy = MollWeide_XY(lon*M_PI/180.,lat*M_PI/180.,x,y); 31 tll = MollWeide_LL(x,y,longitude,latitude); 32 32 longitude *= 180./M_PI; 33 33 latitude *= 180./M_PI;
Note:
See TracChangeset
for help on using the changeset viewer.