Changeset 8300
- Timestamp:
- Aug 11, 2006, 4:56:32 PM (20 years ago)
- Location:
- trunk/Ohana/src/gastro2
- Files:
-
- 1 deleted
- 7 edited
-
Makefile (modified) (2 diffs)
-
src/coordtest.c (modified) (4 diffs)
-
src/gaussj.c (deleted)
-
src/gheader2.c (modified) (1 diff)
-
src/gproject2.c (modified) (1 diff)
-
src/lumfunc.c (modified) (1 diff)
-
src/plots.c (modified) (3 diffs)
-
src/polyfit.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/gastro2/Makefile
r8241 r8300 25 25 COORDTEST = \ 26 26 $(SRC)/coordtest.$(ARCH).o \ 27 $(SRC)/gaussj.$(ARCH).o \28 27 $(SRC)/gpairs.$(ARCH).o \ 29 28 $(SRC)/polyfit.$(ARCH).o … … 44 43 $(SRC)/lumfunc.$(ARCH).o \ 45 44 $(SRC)/gregions2.$(ARCH).o \ 46 $(SRC)/gaussj.$(ARCH).o \47 45 $(SRC)/sort.$(ARCH).o \ 48 46 $(SRC)/misc.$(ARCH).o \ -
trunk/Ohana/src/gastro2/src/coordtest.c
r8241 r8300 2 2 3 3 # define A00 +500.00 4 // # define A00 +0.005 4 # define A10 +4.00 6 5 # define A01 +1.00 … … 8 7 # define A11 +0.000 9 8 # define A02 -0.001 10 # define A30 +0.00 211 # define A21 +0.00 112 # define A12 -0.00 113 # define A03 -0.00 29 # define A30 +0.00002 10 # define A21 +0.00001 11 # define A12 -0.00001 12 # define A03 -0.00002 14 13 15 14 # define B00 400.00 16 // # define B00 +0.0017 15 # define B10 -1.00 18 16 # define B01 4.00 … … 20 18 # define B11 0.000 21 19 # define B02 -0.001 22 # define B30 -0.00 223 # define B21 -0.00 124 # define B12 +0.00 125 # define B03 +0.00 220 # define B30 -0.00002 21 # define B21 -0.00001 22 # define B12 +0.00001 23 # define B03 +0.00002 26 24 27 25 int main (int argc, char **argv) { … … 109 107 double Lo, Mo, dL, dL2, dM, dM2; 110 108 double Xo, Yo, dX, dX2, dY, dY2; 109 double Lx, Mx; 111 110 112 111 dL = dL2 = dM = dM2 = 0.0; -
trunk/Ohana/src/gastro2/src/gheader2.c
r7995 r8300 15 15 oldsize = header.size; 16 16 17 if (Target[0].answer.N < 6) { 18 gfits_modify (&header, "NASTRO", "%d", 1, 0); 19 gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry"); 20 goto skipstuff; 17 /* check for insufficient number of stars */ 18 switch (Target[0].coords.Npolyterms) { 19 case 0: 20 case 1: 21 if (Target[0].answer.N < 6) { 22 gfits_modify (&header, "NASTRO", "%d", 1, 0); 23 gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry"); 24 goto skipstuff; 25 } 26 break; 27 case 2: 28 if (Target[0].answer.N < 12) { 29 gfits_modify (&header, "NASTRO", "%d", 1, 0); 30 gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry"); 31 goto skipstuff; 32 } 33 break; 34 case 3: 35 if (Target[0].answer.N < 20) { 36 gfits_modify (&header, "NASTRO", "%d", 1, 0); 37 gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry"); 38 goto skipstuff; 39 } 40 break; 41 default: 42 fprintf (stderr, "invalid order\n"); 43 exit (2); 21 44 } 22 45 -
trunk/Ohana/src/gastro2/src/gproject2.c
r8241 r8300 34 34 35 35 /* create Focal Plane to Tangent Plane transformation from input coords */ 36 strcpy (FPtoTP.ctype, "FP--- LIN");36 strcpy (FPtoTP.ctype, "FP---PLY"); 37 37 FPtoTP.crval1 = FPtoTP.crval2 = 0; 38 38 -
trunk/Ohana/src/gastro2/src/lumfunc.c
r2442 r8300 97 97 b[1][0] += y[i]*x[i]; 98 98 } 99 gaussj (c, 2, b, 1);99 dgaussj (c, 2, b, 1); 100 100 *C0 = b[0][0]; 101 101 *C1 = b[1][0]; -
trunk/Ohana/src/gastro2/src/plots.c
r8249 r8300 375 375 fprintf (stderr, "residuals using RD_to_XY\n"); 376 376 plot_resid_plot (0, xvect0, yvect0, Npair); 377 plot_resid_plot (1, xvect1, yvect1, Npair);377 // plot_resid_plot (1, xvect1, yvect1, Npair); 378 378 plot_fullfield_pairs (xvect2, yvect2, 2*Npair); 379 379 … … 381 381 fit_apply (&x, &y, st[idx1[i]].X, st[idx1[i]].Y); 382 382 383 dx = x - sr[idx2[i]].L;384 dy = y - sr[idx2[i]].M;383 dx = 5.0*(x - sr[idx2[i]].P); 384 dy = 5.0*(y - sr[idx2[i]].Q); 385 385 386 386 xvect0[i] = st[idx1[i]].X; … … 389 389 yvect1[i] = dy; 390 390 391 xvect2[2*i+0] = sr[idx2[i]]. L;392 yvect2[2*i+0] = sr[idx2[i]]. M;391 xvect2[2*i+0] = sr[idx2[i]].P; 392 yvect2[2*i+0] = sr[idx2[i]].Q; 393 393 xvect2[2*i+1] = x; 394 394 yvect2[2*i+1] = y; 395 395 } 396 396 397 fprintf (stderr, "residuals using RD_to_XY\n");398 plot_resid_plot ( 0, xvect0, yvect0, Npair);399 plot_resid_plot (1, xvect1, yvect1, Npair);400 plot_fullfield_pairs (xvect2, yvect2, 2*Npair);397 fprintf (stderr, "residuals using fit_apply\n"); 398 plot_resid_plot (1, xvect0, yvect0, Npair); 399 // plot_resid_plot (1, xvect1, yvect1, Npair); 400 // plot_fullfield_pairs (xvect2, yvect2, 2*Npair); 401 401 402 402 free (xvect2); -
trunk/Ohana/src/gastro2/src/polyfit.c
r8241 r8300 101 101 vector[i][1] /= max; 102 102 } 103 gaussj (matrix, NPARS, vector, 2);103 dgaussj (matrix, NPARS, vector, 2); 104 104 i = 0; 105 105 for (m = 0; m < NPOWR; m++) { … … 233 233 234 234 /* convert fit terms to coords and polyterms */ 235 /**** what do we do with the value of ctype??? 236 can we leave it alone? ****/ 235 237 int fit_adjust (Coords *coords) { 236 238 … … 240 242 double Xo, Yo, det; 241 243 int Np, Nv; 242 double **A, **B ;244 double **A, **B, Fx, Fy; 243 245 244 246 /* start with the linear solution for Xo,Yo */ 245 247 coords[0].cdelt1 = hypot (xsum[1][0], ysum[1][0]); 246 248 coords[0].cdelt2 = hypot (xsum[0][1], ysum[0][1]); 247 248 coords[0].cdelt1 = coords[0].cdelt2 = 1.0; 249 // coords[0].cdelt1 = coords[0].cdelt2 = 1.0; 250 249 251 det = 1.0 / (xsum[1][0]*ysum[0][1] - xsum[0][1]*ysum[1][0]); 250 252 Xo = det*(ysum[0][0]*xsum[0][1] - xsum[0][0]*ysum[0][1]); … … 265 267 266 268 for (i = 0; i < 10; i++) { 267 fit_apply (& B[0][0], &B[1][0], Xo, Yo);269 fit_apply (&Fx, &Fy, Xo, Yo); 268 270 fit_apply_dx (&A[0][0], &A[0][1], Xo, Yo); 269 271 fit_apply_dy (&A[1][0], &A[1][1], Xo, Yo); 270 B[0][0] *= -1;271 B[1][0] *= -1;272 gaussj (A, 2, B, 1);272 B[0][0] = -Fx; 273 B[1][0] = -Fy; 274 dgaussj (A, 2, B, 1); 273 275 Xo += B[0][0]; 274 276 Yo += B[1][0]; … … 295 297 296 298 case 2: 297 298 299 a10 = xsum[1][0] + 2.0*xsum[2][0]*Xo + xsum[1][1]*Yo; 299 300 a01 = xsum[0][1] + 2.0*xsum[0][2]*Yo + xsum[1][1]*Xo; … … 326 327 327 328 case 3: 328 /* the linear solution can be analytically inverted */ 329 a10 = xsum[1][0] + 2*xsum[2][0]*Xo + xsum[1][1]*Yo + 3*xsum[3][0]*Xo*Xo + 2*xsum[2][1]*Xo*Yo + xsum[1][2]*Yo*Yo; 330 a01 = xsum[0][1] + 2*xsum[0][2]*Yo + xsum[1][1]*Xo + 3*xsum[0][3]*Yo*Yo + 2*xsum[1][2]*Xo*Yo + xsum[2][1]*Xo*Xo; 331 a20 = xsum[2][0] + 3*xsum[3][0]*Xo + xsum[2][1]*Yo; 332 a11 = xsum[1][1] + xsum[2][1]*Xo + xsum[1][2]*Yo; 333 a02 = xsum[0][2] + 3*xsum[0][3]*Yo + xsum[1][2]*Xo; 329 a10 = xsum[1][0] + 2*xsum[2][0]*Xo + xsum[1][1]*Yo + 3*xsum[3][0]*Xo*Xo + 2*xsum[2][1]*Xo*Yo + xsum[1][2]*Yo*Yo; 330 a01 = xsum[0][1] + 2*xsum[0][2]*Yo + xsum[1][1]*Xo + 3*xsum[0][3]*Yo*Yo + 2*xsum[1][2]*Xo*Yo + xsum[2][1]*Xo*Xo; 331 a20 = xsum[2][0] + 3*xsum[3][0]*Xo + xsum[2][1]*Yo; 332 a11 = xsum[1][1] + 2*xsum[2][1]*Xo + 2*xsum[1][2]*Yo; 333 a02 = xsum[0][2] + 3*xsum[0][3]*Yo + xsum[1][2]*Xo; 334 334 a30 = xsum[3][0]; 335 335 a21 = xsum[2][1]; … … 337 337 a03 = xsum[0][3]; 338 338 339 b10 = ysum[1][0] + 2*ysum[2][0]*Xo + ysum[1][1]*Yo + 3*ysum[3][0]*Xo*Xo + 2*ysum[2][1]*Xo*Yo + ysum[1][2]*Yo*Yo;340 b01 = ysum[0][1] + 2*ysum[0][2]*Yo + ysum[1][1]*Xo + 3*ysum[0][3]*Yo*Yo + 2*ysum[1][2]*Xo*Yo + ysum[2][1]*Xo*Xo;341 b20 = ysum[2][0] + 3*ysum[3][0]*Xo + ysum[2][1]*Yo;342 b11 = ysum[1][1] + ysum[2][1]*Xo +ysum[1][2]*Yo;343 b02 = ysum[0][2] + 3*ysum[0][3]*Yo + ysum[1][2]*Xo;339 b10 = ysum[1][0] + 2*ysum[2][0]*Xo + ysum[1][1]*Yo + 3*ysum[3][0]*Xo*Xo + 2*ysum[2][1]*Xo*Yo + ysum[1][2]*Yo*Yo; 340 b01 = ysum[0][1] + 2*ysum[0][2]*Yo + ysum[1][1]*Xo + 3*ysum[0][3]*Yo*Yo + 2*ysum[1][2]*Xo*Yo + ysum[2][1]*Xo*Xo; 341 b20 = ysum[2][0] + 3*ysum[3][0]*Xo + ysum[2][1]*Yo; 342 b11 = ysum[1][1] + 2*ysum[2][1]*Xo + 2*ysum[1][2]*Yo; 343 b02 = ysum[0][2] + 3*ysum[0][3]*Yo + ysum[1][2]*Xo; 344 344 b30 = ysum[3][0]; 345 345 b21 = ysum[2][1];
Note:
See TracChangeset
for help on using the changeset viewer.
