Changeset 20936 for trunk/Ohana/src/opihi/cmd.data/vclip.c
- Timestamp:
- Dec 7, 2008, 3:31:01 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/vclip.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/vclip.c
r7917 r20936 3 3 int vclip (int argc, char **argv) { 4 4 5 int i, Npix, DO_NAN, DO_INF, N;5 int i, Npix, DO_NAN, DO_INF, DO_CLIP, N; 6 6 double min, Vmin, max, Vmax, nan_val, inf_val; 7 float *in;8 7 Vector *vec; 9 8 … … 33 32 if ((vec = SelectVector (argv[1], OLDVECTOR, TRUE)) == NULL) return (FALSE); 34 33 34 DO_CLIP = FALSE; 35 35 if (argc == 6) { 36 36 min = atof (argv[2]); … … 38 38 max = atof (argv[4]); 39 39 Vmax = atof (argv[5]); 40 DO_CLIP = TRUE; 40 41 } 41 42 43 if (DO_NAN && vec[0].type == OPIHI_INT) { 44 gprint (GP_ERR, " warning : clipping on NAN is invalid for INT vectors\n"); 45 return (FALSE); 46 } 47 48 if (DO_INF && vec[0].type == OPIHI_INT) { 49 gprint (GP_ERR, " warning : clipping on INF is invalid for INT vectors\n"); 50 return (FALSE); 51 } 52 42 53 Npix = vec[0].Nelements; 43 in = vec[0].elements;44 54 45 if (argc == 6) { 55 if (vec[0].type == OPIHI_FLT) { 56 opihi_flt *in = vec[0].elements.Flt; 46 57 for (i = 0; i < Npix; i++, in++) { 47 if ( *in < min)58 if (DO_CLIP && (*in < min)) { 48 59 *in = Vmin; 49 if (*in > max) 60 } 61 if (DO_CLIP && (*in > max)) { 50 62 *in = Vmax; 51 } 52 } 53 in = vec[0].elements; 54 if (DO_NAN) { 55 for (i = 0; i < Npix; i++, in++) { 56 if (isnan (*in)) { 63 } 64 if (!finite (*in) && DO_INF) { 65 *in = inf_val; 66 } 67 if (isnan (*in) && DO_NAN) { 57 68 *in = nan_val; 58 69 } 59 70 } 60 } 61 in = vec[0].elements; 62 if (DO_INF) { 71 } else { 72 opihi_int *in = vec[0].elements.Int; 63 73 for (i = 0; i < Npix; i++, in++) { 64 if (!finite (*in)) { 65 *in = inf_val; 74 if (DO_CLIP && (*in < min)) { 75 *in = Vmin; 76 } 77 if (DO_CLIP && (*in > max)) { 78 *in = Vmax; 66 79 } 67 80 } 68 81 } 69 82 return (TRUE); 70 71 83 } 72 73
Note:
See TracChangeset
for help on using the changeset viewer.
