Changeset 42821 for trunk/Ohana/src/opihi
- Timestamp:
- May 8, 2025, 4:29:52 PM (15 months ago)
- Location:
- trunk/Ohana
- Files:
-
- 34 edited
- 3 copied
-
. (modified) (1 prop)
-
src/opihi/cmd.astro/cdensify.c (modified) (8 diffs)
-
src/opihi/cmd.astro/imfit-fgauss-pol.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-fgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-pgauss-psf.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-pgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-q2gauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-qfgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-qgauss-psf.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-qgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-qrgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-r2gauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-rgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-sgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-tgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit-vgauss.c (modified) (1 diff)
-
src/opihi/cmd.astro/imfit.c (modified) (7 diffs)
-
src/opihi/cmd.astro/mkgauss.c (modified) (4 diffs)
-
src/opihi/cmd.astro/region.c (modified) (1 diff)
-
src/opihi/cmd.data/Makefile (modified) (2 diffs)
-
src/opihi/cmd.data/histbins.c (copied) (copied from branches/eam_branches/ipp-20230313/Ohana/src/opihi/cmd.data/histbins.c )
-
src/opihi/cmd.data/impoints.c (copied) (copied from branches/eam_branches/ipp-20230313/Ohana/src/opihi/cmd.data/impoints.c )
-
src/opihi/cmd.data/init.c (modified) (4 diffs)
-
src/opihi/cmd.data/interpolate_presort.c (modified) (2 diffs)
-
src/opihi/cmd.data/vgroup.c (modified) (2 diffs)
-
src/opihi/dvo/avperiodogram.c (modified) (1 diff)
-
src/opihi/dvo/avperiodomatch.c (modified) (1 diff)
-
src/opihi/dvo/avselect.c (modified) (3 diffs)
-
src/opihi/dvo/gstar.c (modified) (1 diff)
-
src/opihi/dvo/mextract.c (modified) (4 diffs)
-
src/opihi/dvo/mmatch.c (modified) (4 diffs)
-
src/opihi/dvo/mmextract.c (modified) (4 diffs)
-
src/opihi/lib.data/mrq2dmin.c (modified) (3 diffs)
-
src/opihi/lib.data/spline.c (modified) (2 diffs)
-
src/opihi/lib.shell/convert_to_RPN.c (modified) (1 diff)
-
src/opihi/lib.shell/stack_math.c (modified) (2 diffs)
-
src/opihi/test/cdensify.sh (copied) (copied from branches/eam_branches/ipp-20230313/Ohana/src/opihi/test/cdensify.sh )
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
- Property svn:mergeinfo changed
-
trunk/Ohana/src/opihi/cmd.astro/cdensify.c
r41515 r42821 1 1 # include "data.h" 2 # define dCOS(A) ((double) cos ((double)RAD_DEG*A)) 2 3 3 4 # define CHECKVAL(ARG) if (!isfinite(ARG)) { gprint (GP_ERR, "illegal value for %s: %f\n", #ARG, ARG); return (FALSE); } … … 116 117 PutCoords (&newcoords, &bf[0].header); 117 118 119 // use the mask to prevent double-counting 120 ALLOCATE_PTR (mask, char, Nx*Ny); 121 118 122 float scalescale = scale*scale; 119 123 float scale2 = (scale + 1.0) * (scale + 1.0); … … 142 146 coords.crval1 = rn; 143 147 coords.crval2 = *d; 148 149 // XXX do not oversample by more than a factor of 10 150 float dXn = dX * MAX(fabs(dCOS(*d)), 0.1); 144 151 145 152 float F = 1.0; 146 153 if (vv) { F = isFloatScale ? Fs[i] : Is[i]; } 154 155 // reset the mask so we do not double-count 156 memset (mask, 0, Nx*Ny); 147 157 148 158 switch (PSFTYPE) { … … 162 172 break; 163 173 case IS_SQUARE: 164 for (ix = -scale; ix <= scale; ix += dX ) {174 for (ix = -scale; ix <= scale; ix += dXn) { 165 175 for (iy = -scale; iy <= scale; iy += dY) { 166 176 double rp, dp; … … 184 194 break; 185 195 case IS_CIRCLE: 186 for (ix = -scale ; ix <= scale; ix += dX) {187 for (iy = -scale ; iy <= scale; iy += dY) {196 for (ix = -scale - dXn; ix <= scale + dXn; ix += dXn) { 197 for (iy = -scale - dY; iy <= scale + dY; iy += dY) { 188 198 float r2 = ix*ix + iy*iy; 189 199 double rp, dp; … … 199 209 if (Xb < 0) continue; 200 210 if (Yb < 0) continue; 211 if (mask[Xb + Yb*Nx]) continue; 212 mask[Xb + Yb*Nx] = 1; 201 213 if (vv) { 202 214 val[Xb + Yb*Nx] += Normalize ? fCircle*F : F; … … 208 220 break; 209 221 case IS_GAUSS: 210 for (ix = -3.0*scale; ix <= 3.0*scale; ix += dX ) {222 for (ix = -3.0*scale; ix <= 3.0*scale; ix += dXn) { 211 223 for (iy = -3.0*scale; iy <= 3.0*scale; iy += dY) { 212 224 float r2 = ix*ix + iy*iy; … … 232 244 } 233 245 } 246 247 free (mask); 234 248 return (TRUE); 235 249 } -
trunk/Ohana/src/opihi/cmd.astro/imfit-fgauss-pol.c
r42078 r42821 51 51 set_variable ("Zpk", par[5]); 52 52 set_variable ("Sg", par[6]); 53 54 /* 55 set_variable ("dXg", dpar[0]); 56 set_variable ("dYg", dpar[1]); 57 set_variable ("dSXg", NAN); 58 set_variable ("dSYg", NAN); 59 set_variable ("dSXYg", NAN); 60 set_variable ("dZpk", dpar[5]); 61 set_variable ("dSg", dpar[6]); 62 */ 53 63 } 54 64 -
trunk/Ohana/src/opihi/cmd.astro/imfit-fgauss.c
r42078 r42821 39 39 set_variable ("Zpk", par[5]); 40 40 set_variable ("Sg", par[6]); 41 42 /* 43 set_variable ("dXg", dpar[0]); 44 set_variable ("dYg", dpar[1]); 45 set_variable ("dSXg", 2.35 / dpar[2]); 46 set_variable ("dSYg", 2.35 / dpar[3]); 47 set_variable ("dSXYg", dpar[4]); 48 set_variable ("dZpk", dpar[5]); 49 set_variable ("dSg", dpar[6]); 50 */ 41 51 } 42 52 -
trunk/Ohana/src/opihi/cmd.astro/imfit-pgauss-psf.c
r39457 r42821 35 35 set_variable ("Zpk", par[2]); 36 36 set_variable ("Sg", par[3]); 37 38 /* 39 set_variable ("dXg", dpar[0]); 40 set_variable ("dYg", dpar[1]); 41 set_variable ("dZpk", dpar[2]); 42 set_variable ("dSg", dpar[3]); 43 */ 37 44 } 38 45 -
trunk/Ohana/src/opihi/cmd.astro/imfit-pgauss.c
r39457 r42821 37 37 set_variable ("Zpk", par[5]); 38 38 set_variable ("Sg", par[6]); 39 40 /* 41 set_variable ("dXg", dpar[0]); 42 set_variable ("dYg", dpar[1]); 43 set_variable ("dSXg", 2.35 / dpar[2]); 44 set_variable ("dSYg", 2.35 / dpar[3]); 45 set_variable ("dSXYg", dpar[4]); 46 set_variable ("dZpk", dpar[5]); 47 set_variable ("dSg", dpar[6]); 48 */ 39 49 } 40 50 -
trunk/Ohana/src/opihi/cmd.astro/imfit-q2gauss.c
r42078 r42821 41 41 set_variable ("Sg", par[6]); 42 42 set_variable ("Sr", par[7]); 43 44 /* 45 set_variable ("dXg", dpar[0]); 46 set_variable ("dYg", dpar[1]); 47 set_variable ("dSXg", 2.35 / dpar[2]); 48 set_variable ("dSYg", 2.35 / dpar[3]); 49 set_variable ("dSXYg", dpar[4]); 50 set_variable ("dZpk", dpar[5]); 51 set_variable ("dSg", dpar[6]); 52 set_variable ("dSr", dpar[7]); 53 */ 43 54 } 44 55 -
trunk/Ohana/src/opihi/cmd.astro/imfit-qfgauss.c
r39457 r42821 41 41 set_variable ("Zpk", par[5]); 42 42 set_variable ("Sg", par[6]); 43 44 /* 45 set_variable ("dXg", dpar[0]); 46 set_variable ("dYg", dpar[1]); 47 set_variable ("dSXg", 2.35 / dpar[2]); 48 set_variable ("dSYg", 2.35 / dpar[3]); 49 set_variable ("dSXYg", dpar[4]); 50 set_variable ("dZpk", dpar[5]); 51 set_variable ("dSg", dpar[6]); 52 */ 43 53 } 44 54 -
trunk/Ohana/src/opihi/cmd.astro/imfit-qgauss-psf.c
r39457 r42821 38 38 set_variable ("Zpk", par[2]); 39 39 set_variable ("Sg", par[3]); 40 41 /* 42 set_variable ("dXg", dpar[0]); 43 set_variable ("dYg", dpar[1]); 44 set_variable ("dZpk", dpar[2]); 45 set_variable ("dSg", dpar[3]); 46 */ 40 47 } 41 48 -
trunk/Ohana/src/opihi/cmd.astro/imfit-qgauss.c
r42078 r42821 41 41 set_variable ("Sg", par[6]); 42 42 set_variable ("Sr", par[7]); 43 44 /* 45 set_variable ("dXg", dpar[0]); 46 set_variable ("dYg", dpar[1]); 47 set_variable ("dSXg", 2.35 / dpar[2]); 48 set_variable ("dSYg", 2.35 / dpar[3]); 49 set_variable ("dSXYg", dpar[4]); 50 set_variable ("dZpk", dpar[5]); 51 set_variable ("dSg", dpar[6]); 52 set_variable ("dSr", dpar[7]); 53 */ 43 54 } 44 55 -
trunk/Ohana/src/opihi/cmd.astro/imfit-qrgauss.c
r42078 r42821 42 42 set_variable ("Sg", par[6]); 43 43 set_variable ("Npow", par[7]); 44 45 /* 46 set_variable ("dXg", dpar[0]); 47 set_variable ("dYg", dpar[1]); 48 set_variable ("dSXg", 2.35 / dpar[2]); 49 set_variable ("dSYg", 2.35 / dpar[3]); 50 set_variable ("dSXYg", dpar[4]); 51 set_variable ("dZpk", dpar[5]); 52 set_variable ("dSg", dpar[6]); 53 set_variable ("dNpow", dpar[7]); 54 */ 44 55 } 45 56 -
trunk/Ohana/src/opihi/cmd.astro/imfit-r2gauss.c
r42078 r42821 85 85 set_variable ("SYf", 2.35 * sqrt(2.0) / par[8]); 86 86 set_variable ("SXYf", par[9]); 87 88 /* 89 set_variable ("dXg", dpar[0]); 90 set_variable ("dYg", dpar[1]); 91 set_variable ("dSXg", 2.35 * sqrt(2.0) / dpar[2]); 92 set_variable ("dSYg", 2.35 * sqrt(2.0) / dpar[3]); 93 set_variable ("dSXYg", dpar[4]); 94 set_variable ("dZpk", dpar[5]); 95 set_variable ("dSg", dpar[6]); 96 set_variable ("dSXf", 2.35 * sqrt(2.0) / dpar[7]); 97 set_variable ("dSYf", 2.35 * sqrt(2.0) / dpar[8]); 98 set_variable ("dSXYf", dpar[9]); 99 */ 87 100 } -
trunk/Ohana/src/opihi/cmd.astro/imfit-rgauss.c
r42078 r42821 42 42 set_variable ("Sg", par[6]); 43 43 set_variable ("Sr", par[7]); 44 45 /* 46 set_variable ("dXg", dpar[0]); 47 set_variable ("dYg", dpar[1]); 48 set_variable ("dSXg", 2.35 / dpar[2]); 49 set_variable ("dSYg", 2.35 / dpar[3]); 50 set_variable ("dSXYg", dpar[4]); 51 set_variable ("dZpk", dpar[5]); 52 set_variable ("dSg", dpar[6]); 53 set_variable ("dSr", dpar[7]); 54 */ 44 55 } 45 56 -
trunk/Ohana/src/opihi/cmd.astro/imfit-sgauss.c
r39457 r42821 49 49 set_variable ("SYf", 2.35 / par[8]); 50 50 set_variable ("SXYf", par[9]); 51 52 /* 53 set_variable ("dXg", dpar[0]); 54 set_variable ("dYg", dpar[1]); 55 set_variable ("dSXg", 2.35 / dpar[2]); 56 set_variable ("dSYg", 2.35 / dpar[3]); 57 set_variable ("dSXYg", dpar[4]); 58 set_variable ("dZpk", dpar[5]); 59 set_variable ("dSg", dpar[6]); 60 set_variable ("dSXf", 2.35 / dpar[7]); 61 set_variable ("dSYf", 2.35 / dpar[8]); 62 set_variable ("dSXYf", dpar[9]); 63 */ 51 64 } 52 65 -
trunk/Ohana/src/opihi/cmd.astro/imfit-tgauss.c
r39457 r42821 80 80 set_variable ("SYf", 2.35 * sqrt(2.0) / par[8]); 81 81 set_variable ("SXYf", par[9]); 82 83 /* 84 set_variable ("dXg", dpar[0]); 85 set_variable ("dYg", dpar[1]); 86 set_variable ("dSXg", 2.35 * sqrt(2.0) / dpar[2]); 87 set_variable ("dSYg", 2.35 * sqrt(2.0) / dpar[3]); 88 set_variable ("dSXYg", dpar[4]); 89 set_variable ("dZpk", dpar[5]); 90 set_variable ("dSg", dpar[6]); 91 set_variable ("dSXf", 2.35 * sqrt(2.0) / dpar[7]); 92 set_variable ("dSYf", 2.35 * sqrt(2.0) / dpar[8]); 93 set_variable ("dSXYf", dpar[9]); 94 */ 82 95 } -
trunk/Ohana/src/opihi/cmd.astro/imfit-vgauss.c
r39457 r42821 69 69 set_variable ("SXf", par[7]); 70 70 set_variable ("SYf", par[8]); 71 72 /* 73 set_variable ("dXg", dpar[0]); 74 set_variable ("dYg", dpar[1]); 75 set_variable ("dSXg", 2.35 / dpar[2]); 76 set_variable ("dSYg", 2.35 / dpar[3]); 77 set_variable ("dSXYg", dpar[4]); 78 set_variable ("dZpk", dpar[5]); 79 set_variable ("dSg", dpar[6]); 80 set_variable ("dSXf", dpar[7]); 81 set_variable ("dSYf", dpar[8]); 82 */ 71 83 } -
trunk/Ohana/src/opihi/cmd.astro/imfit.c
r42078 r42821 13 13 } 14 14 15 Buffer *var = NULL; 16 if ((N = get_argument (argc, argv, "-var-image"))) { 17 remove_argument (N, &argc, argv); 18 var = SelectBuffer (argv[N], OLDBUFFER, TRUE); 19 if (!var) { 20 gprint (GP_ERR, "unknown buffer for variance %s\n", argv[N]); 21 FREE (Save); 22 return (FALSE); 23 } 24 remove_argument (N, &argc, argv); 25 } 26 15 27 int Insert = FALSE; 16 28 if ((N = get_argument (argc, argv, "-insert"))) { … … 18 30 Insert = TRUE; 19 31 if (Save) { gprint (GP_ERR, "-save and -insert are mutually exclusive\n"); free (Save); return (FALSE); } 32 if (var) { gprint (GP_ERR, "-save and -var-image are mutually exclusive\n"); return (FALSE); } 20 33 } 21 34 … … 40 53 Gain = atof(argv[N]); 41 54 remove_argument (N, &argc, argv); 55 if (var) { gprint (GP_ERR, "warning: -var-image selected, -gain will have no effect\n"); } 42 56 } 43 57 … … 48 62 RDnoise = atof(argv[N]); 49 63 remove_argument (N, &argc, argv); 64 if (var) { gprint (GP_ERR, "warning: -var-image selected, -rdnoise will have no effect\n"); } 50 65 } 51 66 … … 140 155 if (j + sy >= Ny) continue; 141 156 float *V = (float *)(buf[0].matrix.buffer) + (j+sy)*buf[0].matrix.Naxis[0] + sx; 157 float *dV = (var) ? ((float *)(var[0].matrix.buffer) + (j+sy)*var[0].matrix.Naxis[0] + sx) : NULL; 142 158 for (int i = 0; i < dX; i++) { 143 159 if (i + sx < 0) continue; … … 145 161 if (*V > SatThreshold) goto next; // skip pixels above threshold 146 162 if (!isfinite(*V)) goto next; // skip nan pixels 147 dz[N] = (SQ(RDnoise) + MAX(0.0, *V/Gain)); // treat negative pixels as pure read noise 163 if (dV) { 164 dz[N] = *dV; 165 } else { 166 dz[N] = (SQ(RDnoise) + MAX(0.0, *V/Gain)); // treat negative pixels as pure read noise 167 } 148 168 if (dz[N] <= 0) goto next; 149 169 dz[N] = 1.0 / dz[N]; … … 154 174 next: 155 175 V++; 176 if (dV) { dV++; } 156 177 } 157 178 } -
trunk/Ohana/src/opihi/cmd.astro/mkgauss.c
r41341 r42821 11 11 Buffer *buf; 12 12 13 // if TRUE, integrated flux is Flux, else Io is Flux 13 14 int Normalize = FALSE; 14 15 if ((N = get_argument (argc, argv, "-norm"))) { … … 16 17 remove_argument (N, &argc, argv); 17 18 } 19 20 // Io or integrated flux (depending on value of Normalize) 21 float Flux = 1.0; 22 if ((N = get_argument (argc, argv, "-flux"))) { 23 remove_argument (N, &argc, argv); 24 Flux = atof(argv[N]); 25 remove_argument (N, &argc, argv); 26 } 27 18 28 19 29 // this should be Nx/2, Ny/2 if not set … … 29 39 if ((argc < 3) || (argc > 5)) { 30 40 gprint (GP_ERR, "USAGE: mkgauss (buffer) (sigma) [[sy/sx] angle]\n"); 41 gprint (GP_ERR, " -flux flux : integral or peak is flux (default is 1.0)\n"); 42 gprint (GP_ERR, " -norm : integral is flux (else peak)\n"); 43 gprint (GP_ERR, " -c X Y : place center at X,Y\n"); 31 44 return (FALSE); 32 45 } … … 66 79 /* f = exp (-r), r = (x^2 / 2Sx) + (y^2 / 2Sy) + Sxy*x*y */ 67 80 68 double Io = Normalize ? 1.0 / (2.0 * M_PI * Sig_x * Sig_y) : 1.0;81 double Io = Normalize ? Flux / (2.0 * M_PI * Sig_x * Sig_y) : Flux; 69 82 70 83 in = (float *) buf[0].matrix.buffer; -
trunk/Ohana/src/opihi/cmd.astro/region.c
r42078 r42821 160 160 if (!strcasecmp (argv[CtypeArg], "PAR")) { strcpy (graphmode.coords.ctype, "DEC--PAR"); goto got_ctype; } 161 161 if (!strcasecmp (argv[CtypeArg], "MOL")) { strcpy (graphmode.coords.ctype, "DEC--MOL"); goto got_ctype; } 162 if (!strcasecmp (argv[CtypeArg], "LIN")) { strcpy (graphmode.coords.ctype, "DEC--LIN"); goto got_ctype; } 163 if (!strcasecmp (argv[CtypeArg], "CAR")) { strcpy (graphmode.coords.ctype, "DEC--CAT"); goto got_ctype; } 162 164 gprint (GP_ERR, "ERROR: invalid projection type %s\n", argv[CtypeArg]); 163 gprint (GP_ERR, "allowed values: TAN, SIN, ARC, STG, ZEA, AIT, GLS, PAR, MOL \n");165 gprint (GP_ERR, "allowed values: TAN, SIN, ARC, STG, ZEA, AIT, GLS, PAR, MOL, LIN, CAR\n"); 164 166 return FALSE; 165 167 } -
trunk/Ohana/src/opihi/cmd.data/Makefile
r42456 r42821 67 67 $(SRC)/ungridify.$(ARCH).o \ 68 68 $(SRC)/histogram.$(ARCH).o \ 69 $(SRC)/histbins.$(ARCH).o \ 69 70 $(SRC)/tdhistogram.$(ARCH).o \ 70 71 $(SRC)/hermitian1d.$(ARCH).o \ … … 80 81 $(SRC)/imresample.$(ARCH).o \ 81 82 $(SRC)/imcollapse.$(ARCH).o \ 83 $(SRC)/impoints.$(ARCH).o \ 82 84 $(SRC)/integrate.$(ARCH).o \ 83 85 $(SRC)/interpolate.$(ARCH).o \ -
trunk/Ohana/src/opihi/cmd.data/init.c
r42456 r42821 56 56 int ungridify PROTO((int, char **)); 57 57 int histogram PROTO((int, char **)); 58 int histbins PROTO((int, char **)); 58 59 int tdhistogram PROTO((int, char **)); 59 60 int hermitian1d PROTO((int, char **)); … … 70 71 int imresample PROTO((int, char **)); 71 72 int imcollapse PROTO((int, char **)); 73 int impoints PROTO((int, char **)); 72 74 int integrate PROTO((int, char **)); 73 75 int interpolate PROTO((int, char **)); … … 265 267 {1, "header", header, "print image header"}, 266 268 {1, "histogram", histogram, "generate histogram from vector"}, 269 {1, "histbins", histbins, "generate histogram from vector, bins specified by vectors"}, 267 270 {1, "tdhistogram", tdhistogram, "generate 2D histogram image from vector set"}, 268 271 {1, "hermitian1d", hermitian1d, "generate 1-D Hermitian Polynomial"}, … … 281 284 {1, "imconvolve", imconvolve, "full 2D real-space convolution"}, 282 285 {1, "imstats", imstats, "statistics on a portion of an image"}, 286 {1, "impoints", impoints, "insert points into an image by vector pair"}, 283 287 {1, "integrate", integrate, "integrate a vector"}, 284 288 {1, "interpolate_presort", interpolate_presort, "interpolate between vector pairs"}, -
trunk/Ohana/src/opihi/cmd.data/interpolate_presort.c
r41341 r42821 17 17 /** check basic syntax **/ 18 18 if (argc != 5) { 19 gprint (GP_ERR, "USAGE: interpolate Xi Yi Xo Yo \n");19 gprint (GP_ERR, "USAGE: interpolate Xi Yi Xo Yo [-fill-ends]\n"); 20 20 gprint (GP_ERR, " Xi Yi - sorted reference vectors\n"); 21 21 gprint (GP_ERR, " Xo - output positions (vector)\n"); … … 23 23 gprint (GP_ERR, " (vectors must be pre-sorted)\n"); 24 24 gprint (GP_ERR, " (use 'threshold' to interpolate to a value)\n"); 25 gprint (GP_ERR, " -fill-ends : values outside of range are set to end-point values\n"); 25 26 return (FALSE); 26 27 } -
trunk/Ohana/src/opihi/cmd.data/vgroup.c
r33963 r42821 70 70 ALLOCATE (values, double, xin[0].Nelements); 71 71 72 for (i = 0; i < xout[0].Nelements - 1; i++) { 72 // if we specify binsize, then we need to examine all bins 73 int Nout = isnan(binsize) ? xout[0].Nelements - 1 : xout[0].Nelements; 74 for (i = 0; i < Nout; i++) { 73 75 if (isnan(binsize)) { 74 76 xmin = xout[0].elements.Flt[i]; … … 81 83 N = 0; 82 84 for (j = 0; j < xin[0].Nelements; j++) { 83 if (xin[0].elements.Flt[j] < xmin) continue;84 if (xin[0].elements.Flt[j] > xmax) continue;85 if (xin[0].elements.Flt[j] < xmin) continue; 86 if (xin[0].elements.Flt[j] >= xmax) continue; 85 87 if (yin) { 86 88 values[N] = yin[0].elements.Flt[j]; -
trunk/Ohana/src/opihi/dvo/avperiodogram.c
r40574 r42821 274 274 // The first 3 values[] / fields[] will be time, mag, dmag 275 275 for (off_t n = 0; n < Nmfields; n++) { 276 mvalues[n] = dbExtractMeasures (average, secfilt, &measure[k], NULL, NULL, &mfields[n]);276 mvalues[n] = dbExtractMeasures (average, secfilt, NULL, &measure[k], NULL, NULL, NULL, &mfields[n]); 277 277 } 278 278 if (!dbBooleanCond (mstack, Nmstack, mvalues)) continue; -
trunk/Ohana/src/opihi/dvo/avperiodomatch.c
r41379 r42821 302 302 // The first 3 values[] / fields[] will be time, mag, dmag 303 303 for (off_t n = 0; n < Nmfields; n++) { 304 mvalues[n] = dbExtractMeasures (average, secfilt, &measure[k], NULL, NULL, &mfields[n]);304 mvalues[n] = dbExtractMeasures (average, secfilt, NULL, &measure[k], NULL, NULL, NULL, &mfields[n]); 305 305 } 306 306 if (!dbBooleanCond (mstack, Nmstack, mvalues)) continue; -
trunk/Ohana/src/opihi/dvo/avselect.c
r41341 r42821 17 17 int VERBOSE; 18 18 char name[1024]; 19 float RADIUS;19 opihi_flt RADIUS; 20 20 21 21 Catalog catalog; 22 22 23 23 Vector **vec, **invec, *RAvec, *DECvec, *IDXvec, *RADvec; 24 Vector *RINvec = NULL; 24 25 dbField *fields; 25 26 dbValue *values; … … 102 103 } 103 104 104 RADIUS = atof (argv[1]); 105 106 /* load regions which contain all supplied RA,DEC coordinates */ 105 if (SelectScalar (argv[1], &RADIUS)) { 106 remove_argument (1, &argc, argv); 107 } else { 108 gprint (GP_ERR, " RADIUS must be a numerical value\n"); 109 goto help; 110 if ((RINvec = SelectVector (argv[1], ANYVECTOR, TRUE)) == NULL) goto help; 111 RADIUS = 0.0; // find the max radius for region selection: 112 for (i = 0; i < RINvec->Nelements; i++) { 113 RADIUS = MAX(RINvec->elements.Flt[i], RADIUS); 114 } 115 } 116 117 /* load regions which contain all supplied RA,DEC coordinates (for RINvec, uses max radius) */ 107 118 if ((skylist = SelectRegionsByCoordVectorsAndRadius (RAvec, DECvec, RADIUS/3600.0)) == NULL) goto escape; 108 119 … … 167 178 return status; 168 179 } 169 170 RADIUS = atof (argv[1]);171 remove_argument (1, &argc, argv);172 180 173 181 // parse the fields to be extracted and returned -
trunk/Ohana/src/opihi/dvo/gstar.c
r41427 r42821 401 401 gprint (GP_LOG, "%20s ", date); 402 402 gprint (GP_LOG, "%f ", catalog.average[k].Trange / 86400.0); 403 404 gprint (GP_LOG, "%ld ", catalog.average[k].extID); 405 // gprint (GP_LOG, "0x%16x ", catalog.average[k].extID); 403 406 } 404 407 -
trunk/Ohana/src/opihi/dvo/mextract.c
r42103 r42821 221 221 } 222 222 223 int needLensobj = dbFieldNeedLensobj (fields, Nfields); 223 224 int needLensing = dbFieldNeedLensing (fields, Nfields); 224 225 int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE); 226 int needGalphot = dbFieldNeedGalphot (fields, Nfields); 225 227 226 228 // the lensing table does not have a good index to/from the measure table. if we need lensing … … 247 249 catalog.catflags = DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_SECFILT; 248 250 catalog.catflags |= needLensing ? DVO_LOAD_LENSING : DVO_SKIP_LENSING; 251 catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ; 249 252 catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR; 253 catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT; 250 254 catalog.Nsecfilt = Nsecfilt; 251 255 … … 297 301 dbExtractMeasuresInitMeas (); // reset counters for saved fields (costs very little 298 302 299 int Nstarpar = average->starparOffset; 300 StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[Nstarpar] : NULL; 303 int nStar = average->starparOffset; 304 StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[nStar] : NULL; 305 306 int nLens = average->lensobjOffset; 307 Lensobj *lensobj = needLensobj && average->Nlensobj ? &catalog.lensobj[nLens] : NULL; 308 309 int nPhot = average->galphotOffset; 310 GalPhot *galphot = needGalphot && average->Ngalphot ? &catalog.galphot[nPhot] : NULL; 301 311 302 312 Lensing *lensing = NULL; … … 313 323 314 324 for (n = 0; n < Nfields; n++) { 315 values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], lensing, starpar, &fields[n]);325 values[n] = dbExtractMeasures (average, secfilt, lensobj, &catalog.measure[m], lensing, starpar, galphot, &fields[n]); 316 326 } 317 327 // fprintf (stderr, "object: ave: %f, cat: %f, averef %d\n", fields[n].name, values[2], values[3], catalog.measure[m].averef); -
trunk/Ohana/src/opihi/dvo/mmatch.c
r41341 r42821 232 232 ALLOCATE (index, off_t, Nelem); 233 233 234 // int needLensing = dbFieldNeedLensing (fields, Nfields); 234 int needLensobj = dbFieldNeedLensobj (fields, Nfields); 235 //int needLensing = dbFieldNeedLensing (fields, Nfields); 235 236 int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE); 237 int needGalphot = dbFieldNeedGalphot (fields, Nfields); 236 238 237 239 // grab data from all selected sky regions … … 249 251 catalog.filename = HOST_ID ? hostfile : skylist[0].filename[i]; 250 252 catalog.catflags = DVO_LOAD_AVERAGE | DVO_LOAD_SECFILT | DVO_LOAD_MEASURE; 253 catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ; 251 254 catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR; 255 catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT; 252 256 catalog.Nsecfilt = Nsecfilt; 253 257 … … 289 293 Average *average = &catalog.average[Ncat]; 290 294 291 int Nstarpar = average->starparOffset; 292 StarPar *starpar = needStarpar ? &catalog.starpar[Nstarpar] : NULL; 295 int nStar = average->starparOffset; 296 StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[nStar] : NULL; 297 298 int nLens = average->lensobjOffset; 299 Lensobj *lensobj = needLensobj && average->Nlensobj ? &catalog.lensobj[nLens] : NULL; 300 301 int nPhot = average->galphotOffset; 302 GalPhot *galphot = needGalphot && average->Ngalphot ? &catalog.galphot[nPhot] : NULL; 293 303 294 304 // int Nlensing = average->lensobjOffset; … … 299 309 300 310 for (n = 0; n < Nfields; n++) { 301 values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], NULL, starpar, &fields[n]);311 values[n] = dbExtractMeasures (average, secfilt, lensobj, &catalog.measure[m], NULL, starpar, galphot, &fields[n]); 302 312 } 303 313 -
trunk/Ohana/src/opihi/dvo/mmextract.c
r39457 r42821 174 174 } 175 175 176 // int needLensing = dbFieldNeedLensing (fields, Nfields); 176 int needLensobj = dbFieldNeedLensobj (fields, Nfields); 177 //int needLensing = dbFieldNeedLensing (fields, Nfields); 177 178 int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE); 179 int needGalphot = dbFieldNeedGalphot (fields, Nfields); 178 180 179 181 // grab data from all selected sky regions … … 185 187 catalog.filename = skylist[0].filename[i]; 186 188 catalog.catflags = DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_SECFILT; 189 // catalog.catflags |= needLensing ? DVO_LOAD_LENSING : DVO_SKIP_LENSING; 190 catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ; 191 catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR; 192 catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT; 187 193 catalog.Nsecfilt = Nsecfilt; 188 194 … … 220 226 Average *average = &catalog.average[j]; 221 227 222 int Nstarpar = average->starparOffset; 223 StarPar *starpar = needStarpar ? &catalog.starpar[Nstarpar] : NULL; 228 int nStar = average->starparOffset; 229 StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[nStar] : NULL; 230 231 int nLens = average->lensobjOffset; 232 Lensobj *lensobj = needLensobj && average->Nlensobj ? &catalog.lensobj[nLens] : NULL; 233 234 int nPhot = average->galphotOffset; 235 GalPhot *galphot = needGalphot && average->Ngalphot ? &catalog.galphot[nPhot] : NULL; 224 236 225 237 // int Nlensing = average->lensobjOffset; … … 231 243 for (n = 0; n < Nfields; n++) { 232 244 // values needs to be a pointer to a type with FLT and INT (with a union, we would save a bit of memory...) 233 values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], NULL, starpar, &fields[n]);245 values[n] = dbExtractMeasures (average, secfilt, lensobj, &catalog.measure[m], NULL, starpar, galphot, &fields[n]); 234 246 } 235 247 // fprintf (stderr, "object: ave: %f, cat: %f, averef %d\n", fields[n].name, values[2], values[3], catalog.measure[m].averef); -
trunk/Ohana/src/opihi/lib.data/mrq2dmin.c
r41715 r42821 17 17 static opihi_flt *parmax = NULL; 18 18 19 /** only used locally **/ 19 20 opihi_flt mrq2dcof (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 20 21 opihi_flt *par, int Npar, opihi_flt **ta, opihi_flt **tb, … … 60 61 } 61 62 63 /** only used in imfit-test.c ?? **/ 62 64 opihi_flt mrq2dchi (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 63 65 opihi_flt *par, int Npar, … … 126 128 chisq = ochisq; 127 129 } 130 131 /* note that the parameter errors are sqrt(alpha[j][j]) */ 128 132 129 133 return (chisq); -
trunk/Ohana/src/opihi/lib.data/spline.c
r42332 r42821 113 113 opihi_flt dx, a, b, value; 114 114 115 // saturate correction at high and low ends 116 if (X < x[0]) return y[0]; 117 if (X > x[N-1]) return y[N-1]; 115 // linear extrapolation past endpoints 116 if (X < x[0]) { 117 hi = 1; 118 lo = 0; 119 goto evaluate; 120 // alternative: saturate correction at high and low ends 121 // return y[0]; 122 } 123 if (X > x[N-1]) { 124 hi = N - 1; 125 lo = N - 2; 126 goto evaluate; 127 // alternative: saturate correction at high and low ends 128 // return y[N-1]; 129 } 118 130 119 131 /* find correct element in array (x must be sorted) */ … … 128 140 } 129 141 } 142 143 evaluate: 130 144 131 145 /* error condition: duplicate abssisca */ -
trunk/Ohana/src/opihi/lib.shell/convert_to_RPN.c
r42080 r42821 77 77 if (!strcmp (argv[i], "isflt")) { type = ST_UNARY; goto gotit; } 78 78 if (!strcmp (argv[i], "length")) { type = ST_UNARY; goto gotit; } 79 if (!strcmp (argv[i], "toupper")) { type = ST_UNARY; goto gotit; } 80 if (!strcmp (argv[i], "tolower")) { type = ST_UNARY; goto gotit; } 79 81 80 82 /* binary operations */ -
trunk/Ohana/src/opihi/lib.shell/stack_math.c
r42389 r42821 1615 1615 int i, Nx; 1616 1616 1617 // handle string vectors in the L_unary function 1618 if (V1->vector->type == OPIHI_STR) { 1619 int status = L_unary (OUT, V1, op); 1620 return status; 1621 } 1622 1617 1623 Nx = V1[0].vector[0].Nelements; 1618 1624 1619 1625 OUT[0].vector = InitVector (); 1620 1626 OUT[0].type = ST_VECTOR_TMP; /*** <<--- says this is a temporary matrix ***/ 1621 1622 if (V1->vector->type == OPIHI_STR) {1623 ResetVector (OUT->vector, V1->vector->type, V1->vector->Nelements);1624 for (i = 0; i < V1->vector->Nelements; i++) {1625 OUT->vector->elements.Str[i] = strcreate (V1->vector->elements.Str[i]);1626 }1627 goto escape;1628 }1629 1627 1630 1628 # define V_FUNC(OP,FTYPE) { \ … … 1744 1742 for (int i = 0; i < Nx; i++) { 1745 1743 Ov[i] = strcreate (Iv[i]); 1744 } 1745 goto escape; 1746 } 1747 if (!strcmp (op, "toupper")) { 1748 for (int i = 0; i < Nx; i++) { 1749 Ov[i] = strcreate (Iv[i]); 1750 for (int j = 0; Ov[i][j]; j++) { 1751 Ov[i][j] = toupper ((unsigned int) Ov[i][j]); 1752 } 1753 } 1754 goto escape; 1755 } 1756 if (!strcmp (op, "tolower")) { 1757 for (int i = 0; i < Nx; i++) { 1758 Ov[i] = strcreate (Iv[i]); 1759 for (int j = 0; Ov[i][j]; j++) { 1760 Ov[i][j] = tolower ((unsigned int) Ov[i][j]); 1761 } 1746 1762 } 1747 1763 goto escape;
Note:
See TracChangeset
for help on using the changeset viewer.
