- Timestamp:
- Aug 10, 2009, 3:43:50 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20090715/Ohana/src/opihi/cmd.astro/galradius.c
r25018 r25033 11 11 opihi_flt *flux, *radius, *values; 12 12 Buffer *buf; 13 Vector *fvec, *rvec, *tvec ;13 Vector *fvec, *rvec, *tvec, *Fvec, *Rvec; 14 14 char name[128]; 15 15 … … 22 22 if ((rvec = SelectVector (argv[1], OLDVECTOR, TRUE)) == NULL) return (FALSE); 23 23 if ((fvec = SelectVector (argv[2], OLDVECTOR, TRUE)) == NULL) return (FALSE); 24 25 if ((Rvec = SelectVector ("rg", ANYVECTOR, TRUE)) == NULL) return (FALSE); 26 if ((Fvec = SelectVector ("fg", ANYVECTOR, TRUE)) == NULL) return (FALSE); 27 24 28 Fmin = atof(argv[3]); 25 29 Fmax = atof(argv[4]); … … 50 54 Rbin = 1; 51 55 } else { 52 Rbin = MAX(1, Rsum / Rnpt);56 Rbin = MAX(1, 0.5*(Rsum / Rnpt)); 53 57 } 54 58 … … 56 60 if (Rbin <= 2) { 57 61 Nout = fvec[0].Nelements; 62 ResetVector (Rvec, OPIHI_FLT, Nout); 63 ResetVector (Fvec, OPIHI_FLT, Nout); 64 memcpy (Fvec[0].elements.Flt, fvec[0].elements.Flt, Fvec[0].Nelements*sizeof(opihi_flt)); 65 memcpy (Rvec[0].elements.Flt, rvec[0].elements.Flt, Rvec[0].Nelements*sizeof(opihi_flt)); 58 66 flux = fvec[0].elements.Flt; 59 67 radius = rvec[0].elements.Flt; 60 // XXX handle the necessary free below61 68 } else { 62 69 // rebin the vectors by Rbin values: 63 70 Nout = fvec[0].Nelements / Rbin + 1; 64 ALLOCATE (flux, opihi_flt, Nout);65 ALLOCATE (radius, opihi_flt, Nout);66 71 ALLOCATE (values, opihi_flt, fvec[0].Nelements); 67 72 73 ResetVector (Rvec, OPIHI_FLT, Nout); 74 ResetVector (Fvec, OPIHI_FLT, Nout); 75 flux = Fvec[0].elements.Flt; 76 radius = Rvec[0].elements.Flt; 77 68 78 for (i = 0; i < Nout; i++) { 69 79 radius[i] = (i + 0.5)*Rbin; … … 73 83 N = 0; 74 84 for (j = 0; j < fvec[0].Nelements; j++) { 75 if (rvec[0].elements.Flt[ i] < Rmin) continue;76 if (rvec[0].elements.Flt[ i] > Rmax) continue;77 values[N] = fvec[0].elements.Flt[ i];85 if (rvec[0].elements.Flt[j] < Rmin) continue; 86 if (rvec[0].elements.Flt[j] > Rmax) continue; 87 values[N] = fvec[0].elements.Flt[j]; 78 88 N++; 79 89 } … … 87 97 } 88 98 } 99 free (values); 89 100 } 90 101
Note:
See TracChangeset
for help on using the changeset viewer.
