Changeset 13479 for trunk/Ohana/src/opihi/cmd.data/tv.c
- Timestamp:
- May 22, 2007, 12:23:09 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/tv.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/tv.c
r7917 r13479 3 3 int tv (int argc, char **argv) { 4 4 5 int N, Ximage, Nimage; 5 int N, kapa; 6 char *name, *file; 6 7 Coords coords; 7 8 Buffer *buf; 8 9 KiiImage image; 9 K iiDisplayMode mode;10 KapaImageData data; 10 11 11 Nimage = -1;12 name = NULL; 12 13 if ((N = get_argument (argc, argv, "-n"))) { 13 14 remove_argument (N, &argc, argv); 14 Nimage = atof(argv[N]);15 name = strcreate (argv[N]); 15 16 remove_argument (N, &argc, argv); 16 17 } 17 if (!GetImage (&Ximage, &Nimage)) return (FALSE); 18 if (!GetImage (&data, &kapa, name)) return (FALSE); 19 FREE (name); 18 20 19 21 /* shell exits on pipe close, FIX */ 20 22 if ((N = get_argument (argc, argv, "-kill"))) { 21 KiiClose (Ximage); 22 Ximage = 0; 23 KiiClose (kapa); 23 24 return (TRUE); 24 25 } 25 26 26 mode.logflux = FALSE;27 data.logflux = FALSE; 27 28 if ((N = get_argument (argc, argv, "-log"))) { 28 29 remove_argument (N, &argc, argv); 29 mode.logflux = TRUE;30 data.logflux = TRUE; 30 31 } 31 32 33 // use the currently-set zero,range values if not supplied 32 34 if ((argc != 2) && (argc != 4)) { 33 35 gprint (GP_ERR, "USAGE: tv <buffer> [zero range] [-n Nimage] [-log] [-kill]\n"); … … 35 37 } 36 38 37 GetImageScale (&mode.zero, &mode.range);38 39 if (argc == 4) { 39 mode.zero = atof (argv[2]); 40 mode.range = atof (argv[3]); 41 if (mode.range == 0.0) mode.range = 0.001; 42 SetImageScale (mode.zero, mode.range); 40 data.zero = atof (argv[2]); 41 data.range = atof (argv[3]); 42 if (data.range == 0.0) data.range = 0.001; 43 43 } 44 44 … … 49 49 image.Nx = buf[0].matrix.Naxis[0]; 50 50 image.Ny = buf[0].matrix.Naxis[1]; 51 image.file = buf[0].file;52 image.name = buf[0].name;53 51 54 KiiNewPicture1D (Ximage, &image, &mode, &coords); 52 // send only the root of the file, not the full path 53 file = filerootname (buf[0].file); 54 strcpy (data.file, file); 55 free (file); 55 56 56 SetImageName (argv[1]); 57 strcpy (data.name, argv[1]); 58 59 KiiNewPicture1D (kapa, &image, &data, &coords); 60 57 61 set_str_variable ("TV", argv[1]); 58 62 return (TRUE); 59 63 } 60 61 62 /*63 projections and coordinates:64 65 IRAS:66 CTYPE1 = 'LL ' /TANGENT PLANE (L)67 CRVAL1 = 0.100000D+02 /R.A. OF MAP CENTER *** SEE COMMENT68 CDELT1 = -0.133333D-01 /SEPARATION IN L (DEG)69 CRPIX1 = 128 /MAPCENTER IN L70 CROTA1 = 0.000000E+00 /NO ROTATION71 72 CTYPE2 = 'MM ' /TANGENT PLANE (M)73 CRVAL2 = 0.410000D+02 /DEC. OF MAP CENTER *** SEE COMMENT74 CDELT2 = 0.133333D-01 /SEPARATION IN M (DEG)75 CRPIX2 = 128 /MAP CENTER IN M76 CROTA2 = 0.000000E+00 /NO ROTATION77 78 HIRAS:79 CTYPE1 = 'RA---TAN ' / PRIMARY AXIS NAME80 CRVAL1 = 1.000000000000E+01 / PRIMARY REFERENCE VALUE81 CDELT1 = -5.555555555556E-03 / PRIMARY PIXEL SEPARATION82 CRPIX1 = 2.560000000000E+02 / PRIMARY REFERENCE PIXEL83 CUNIT1 = 'DEGREE ' / PRIMARY AXIS UNITS84 85 CDELT2 = 5.555555555556E-03 / PRIMARY PIXEL SEPARATION86 CRPIX2 = 2.560000000000E+02 / PRIMARY REFERENCE PIXEL87 CRVAL2 = 4.100000000000E+01 / PRIMARY REFERENCE VALUE88 CTYPE2 = 'DEC--TAN ' / PRIMARY AXIS NAME89 CUNIT2 = 'DEGREE ' / PRIMARY AXIS UNITS90 91 PROJTYPE= 'GNOMON '92 COORDSYS= 'EQUATORIAL '93 94 gene (small FOV linear):95 RA_O96 RA_X97 RA_Y98 DEC_O99 DEC_X100 DEC_Y101 102 103 */104 105 # ifdef NEWTVMODE106 {107 double *pixvalues, slope;108 109 ALLOCATE (pixvalues, double, Ncolors + 1);110 range = fabs (range);111 for (i = 0; i < Ncolors + 1; i++) {112 if (ISLOG) {113 pixvalues[i] = i*range / NNcol + zero;114 }115 if (!ISLOG) {116 pixvalues[i] = pow (10.0, i*log10(range - 1.0) / NNcol) + zero - 1.0;117 }118 }119 for (j = 0; j < Npix; j++, in++, out++) {120 if (*in < pixvalues[0]) {121 i = 0;122 } else {123 if (*in > pixvalues[NNcol]) {124 i = NNcol;125 } else {126 for (i = 0; (*in < pixvalues[i]) || (*in > pixvalues[i+1]); ) {127 slope = 1.0 / (pixvalues[i+1] - pixvalues[i]);128 i = MIN (MAX (0, i + (*in - pixvalues[i]) * slope), NNcol);129 }130 }131 }132 /* for (i = 0; (i < Ncolors - 1) && (pixvalues[i] < *in); i++); */133 *out = i;134 }135 free (pixvalues);136 }137 # endif
Note:
See TracChangeset
for help on using the changeset viewer.
