Changeset 12524
- Timestamp:
- Mar 21, 2007, 12:13:40 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.astro/coords.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.astro/coords.c
r9038 r12524 1 1 # include "astro.h" 2 2 3 enum {NONE, SKY, PIXEL };3 enum {NONE, SKY, PIXEL, VECTOR, SCALAR}; 4 4 5 5 int coords (int argc, char **argv) { 6 6 7 int mode, N, Quiet;8 double X , Y, R, D;7 int i, mode, form, N, Quiet; 8 double Xin, Yin, Xout, Yout; 9 9 char *MOSAIC; 10 10 Coords coords, moscoords; 11 11 Buffer *buf, *mosbuffer; 12 Vector *xvec, *yvec; 12 13 13 14 MOSAIC = NULL; … … 28 29 } 29 30 31 form = NONE; 30 32 mode = NONE; 31 33 if ((N = get_argument (argc, argv, "-p"))) { 32 remove_argument (N, &argc, argv);33 X = atof(argv[N]);34 remove_argument (N, &argc, argv);35 Y = atof(argv[N]);36 34 remove_argument (N, &argc, argv); 37 35 mode = SKY; … … 40 38 if (mode == SKY) goto syntax; 41 39 remove_argument (N, &argc, argv); 42 R = atof(argv[N]);43 remove_argument (N, &argc, argv);44 D = atof(argv[N]);45 remove_argument (N, &argc, argv);46 40 mode = PIXEL; 47 41 } 48 42 if (mode == NONE) goto syntax; 49 if (argc != 2) goto syntax; 43 if (argc != 4) goto syntax; 44 45 if (SelectScalar (argv[2], &Xin)) { 46 if (!SelectScalar (argv[3], &Yin)) { 47 gprint (GP_ERR, "syntax error: mixed vector and scalar?\n"); 48 return (FALSE); 49 } 50 form = SCALAR; 51 } else { 52 if ((xvec = SelectVector (argv[2], OLDVECTOR, TRUE)) == NULL) return (FALSE); 53 if ((yvec = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return (FALSE); 54 if (xvec[0].Nelements != yvec[0].Nelements) { 55 fprintf (stderr, "mis-matched vector lengths\n"); 56 return (FALSE); 57 } 58 form = VECTOR; 59 } 50 60 51 61 if ((buf = SelectBuffer (argv[1], OLDBUFFER, TRUE)) == NULL) goto escape; … … 61 71 } 62 72 73 if (form == SCALAR) { 74 if (mode == SKY) { 75 XY_to_RD (&Xout, &Yout, Xin, Yin, &coords); 76 if (!Quiet) gprint (GP_LOG, "%10.6f %10.6f\n", Xout, Yout); 77 set_variable ("RA", Xout); 78 set_variable ("DEC", Yout); 79 return (TRUE); 80 } 81 if (mode == PIXEL) { 82 RD_to_XY (&Xout, &Yout, Xin, Yin, &coords); 83 if (!Quiet) gprint (GP_LOG, "%7.2f %7.2f\n", Xout, Yout); 84 set_variable ("Xc", Xout); 85 set_variable ("Yc", Yout); 86 return (TRUE); 87 } 88 } 63 89 if (mode == SKY) { 64 XY_to_RD (&R, &D, X, Y, &coords); 65 if (!Quiet) gprint (GP_LOG, "%10.6f %10.6f\n", R, D); 66 set_variable ("RA", R); 67 set_variable ("DEC", D); 90 for (i = 0; i < xvec[0].Nelements; i++) { 91 fXY_to_RD (&xvec[0].elements[i], &yvec[0].elements[i], xvec[0].elements[i], yvec[0].elements[i], &coords); 92 } 68 93 return (TRUE); 69 94 } 70 71 95 if (mode == PIXEL) { 72 RD_to_XY (&X, &Y, R, D, &coords); 73 if (!Quiet) gprint (GP_LOG, "%7.2f %7.2f\n", X, Y); 74 set_variable ("Xc", X); 75 set_variable ("Yc", Y); 96 for (i = 0; i < xvec[0].Nelements; i++) { 97 fRD_to_XY (&xvec[0].elements[i], &yvec[0].elements[i], xvec[0].elements[i], yvec[0].elements[i], &coords); 98 } 76 99 return (TRUE); 77 100 } … … 79 102 80 103 syntax: 81 gprint (GP_ERR, "USAGE: coords [buffer] (-c R D) /(-p X Y)\n");104 gprint (GP_ERR, "USAGE: coords [buffer] (-c R D) | (-p X Y)\n"); 82 105 gprint (GP_ERR, "only one of -p or -c can be used\n"); 83 106 escape:
Note:
See TracChangeset
for help on using the changeset viewer.
