Changeset 40477 for branches/czw_branch/20170908/Ohana/src/opihi
- Timestamp:
- Jun 27, 2018, 3:20:35 PM (8 years ago)
- Location:
- branches/czw_branch/20170908/Ohana
- Files:
-
- 77 edited
- 19 copied
-
. (modified) (1 prop)
-
src/opihi/cmd.astro/Makefile (modified) (1 diff)
-
src/opihi/cmd.astro/cdot.c (modified) (1 diff)
-
src/opihi/cmd.astro/cgrid.c (modified) (7 diffs)
-
src/opihi/cmd.astro/cline.c (modified) (1 diff)
-
src/opihi/cmd.astro/czplot.c (modified) (2 diffs)
-
src/opihi/cmd.astro/fitplx.c (modified) (4 diffs)
-
src/opihi/cmd.astro/fitplx_irls.c (modified) (8 diffs)
-
src/opihi/cmd.astro/fitpm.c (modified) (1 diff)
-
src/opihi/cmd.astro/fitpm_irls.c (modified) (1 diff)
-
src/opihi/cmd.astro/init.c (modified) (2 diffs)
-
src/opihi/cmd.astro/jdtolst.c (copied) (copied from trunk/Ohana/src/opihi/cmd.astro/jdtolst.c )
-
src/opihi/cmd.astro/star.c (modified) (4 diffs)
-
src/opihi/cmd.data/Makefile (modified) (6 diffs)
-
src/opihi/cmd.data/dot.c (modified) (1 diff)
-
src/opihi/cmd.data/grid.c (modified) (1 diff)
-
src/opihi/cmd.data/idxread.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/idxread.c )
-
src/opihi/cmd.data/impeaks.c (modified) (1 diff)
-
src/opihi/cmd.data/init.c (modified) (8 diffs)
-
src/opihi/cmd.data/limits.c (modified) (4 diffs)
-
src/opihi/cmd.data/line.c (modified) (1 diff)
-
src/opihi/cmd.data/mslice.c (modified) (2 diffs)
-
src/opihi/cmd.data/nnet.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/nnet.c )
-
src/opihi/cmd.data/nnet_apply.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/nnet_apply.c )
-
src/opihi/cmd.data/nnet_commands.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/nnet_commands.c )
-
src/opihi/cmd.data/nnet_train.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/nnet_train.c )
-
src/opihi/cmd.data/nnet_train.save.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/nnet_train.save.c )
-
src/opihi/cmd.data/periodogram-fm.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/periodogram-fm.c )
-
src/opihi/cmd.data/print_vectors.c (modified) (3 diffs)
-
src/opihi/cmd.data/read_vectors.c (modified) (1 diff)
-
src/opihi/cmd.data/reindex.c (modified) (2 diffs)
-
src/opihi/cmd.data/sort.c (modified) (2 diffs)
-
src/opihi/cmd.data/test/mslice.sh (copied) (copied from trunk/Ohana/src/opihi/cmd.data/test/mslice.sh )
-
src/opihi/cmd.data/test/nnet.sh (copied) (copied from trunk/Ohana/src/opihi/cmd.data/test/nnet.sh )
-
src/opihi/cmd.data/test/periodogram-fm.sh (copied) (copied from trunk/Ohana/src/opihi/cmd.data/test/periodogram-fm.sh )
-
src/opihi/cmd.data/test/periodogram.sh (modified) (3 diffs)
-
src/opihi/cmd.data/test/uniqpair.sh (copied) (copied from trunk/Ohana/src/opihi/cmd.data/test/uniqpair.sh )
-
src/opihi/cmd.data/test/vlorentz.sh (copied) (copied from trunk/Ohana/src/opihi/cmd.data/test/vlorentz.sh )
-
src/opihi/cmd.data/textline.c (modified) (3 diffs)
-
src/opihi/cmd.data/uniq.c (modified) (1 diff)
-
src/opihi/cmd.data/uniqpair.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/uniqpair.c )
-
src/opihi/cmd.data/vlorentz.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/vlorentz.c )
-
src/opihi/cmd.data/write_vectors.c (modified) (1 diff)
-
src/opihi/cmd.data/zplot.c (modified) (2 diffs)
-
src/opihi/dvo/Makefile (modified) (2 diffs)
-
src/opihi/dvo/PeriodogramOps.c (copied) (copied from trunk/Ohana/src/opihi/dvo/PeriodogramOps.c )
-
src/opihi/dvo/avperiodogram.c (copied) (copied from trunk/Ohana/src/opihi/dvo/avperiodogram.c )
-
src/opihi/dvo/avperiodomatch.c (copied) (copied from trunk/Ohana/src/opihi/dvo/avperiodomatch.c )
-
src/opihi/dvo/catalog.c (modified) (1 diff)
-
src/opihi/dvo/dmt.c (modified) (1 diff)
-
src/opihi/dvo/dvo_host_utils.c (modified) (4 diffs)
-
src/opihi/dvo/fitcolors.c (modified) (5 diffs)
-
src/opihi/dvo/fitsed.c (modified) (1 diff)
-
src/opihi/dvo/gimages.c (modified) (1 diff)
-
src/opihi/dvo/gstar.c (modified) (12 diffs)
-
src/opihi/dvo/images.c (modified) (1 diff)
-
src/opihi/dvo/imbox.c (modified) (1 diff)
-
src/opihi/dvo/imdata.c (modified) (1 diff)
-
src/opihi/dvo/imdense.c (modified) (1 diff)
-
src/opihi/dvo/imlist.c (modified) (1 diff)
-
src/opihi/dvo/imphot.c (modified) (3 diffs)
-
src/opihi/dvo/imstats.c (modified) (2 diffs)
-
src/opihi/dvo/init.c (modified) (2 diffs)
-
src/opihi/dvo/objectcoverage.c (modified) (1 diff)
-
src/opihi/dvo/paverage.c (modified) (2 diffs)
-
src/opihi/dvo/pmeasure.c (modified) (1 diff)
-
src/opihi/dvo/procks.c (modified) (2 diffs)
-
src/opihi/dvo/region_list.c (modified) (2 diffs)
-
src/opihi/dvo/remote.c (modified) (1 diff)
-
src/opihi/dvo/showtile.c (modified) (1 diff)
-
src/opihi/dvo/simage.c (modified) (1 diff)
-
src/opihi/dvo/skycat.c (modified) (1 diff)
-
src/opihi/dvo/skycoverage.c (modified) (1 diff)
-
src/opihi/include/astro.h (modified) (1 diff)
-
src/opihi/include/data.h (modified) (3 diffs)
-
src/opihi/include/dvoshell.h (modified) (1 diff)
-
src/opihi/include/pantasks.h (modified) (5 diffs)
-
src/opihi/lib.data/Makefile (modified) (2 diffs)
-
src/opihi/lib.data/gaussian.c (modified) (1 diff)
-
src/opihi/lib.data/graphtools.c (modified) (2 diffs)
-
src/opihi/lib.data/nnet.c (copied) (copied from trunk/Ohana/src/opihi/lib.data/nnet.c )
-
src/opihi/lib.data/starfuncs.c (modified) (6 diffs)
-
src/opihi/lib.shell/VectorIO.c (modified) (4 diffs)
-
src/opihi/lib.shell/check_stack.c (modified) (1 diff)
-
src/opihi/lib.shell/convert_to_RPN.c (modified) (2 diffs)
-
src/opihi/lib.shell/dvomath.c (modified) (2 diffs)
-
src/opihi/lib.shell/evaluate_stack.c (modified) (6 diffs)
-
src/opihi/lib.shell/parse.c (modified) (2 diffs)
-
src/opihi/lib.shell/stack_math.c (modified) (8 diffs)
-
src/opihi/mana/findrowpeaks.c (modified) (1 diff)
-
src/opihi/pantasks/CheckController.c (modified) (1 diff)
-
src/opihi/pantasks/JobIDOps.c (modified) (1 diff)
-
src/opihi/pantasks/JobOps.c (modified) (5 diffs)
-
src/opihi/pantasks/delete.c (modified) (1 diff)
-
src/opihi/pantasks/kill.c (modified) (2 diffs)
-
src/opihi/pantasks/test/nice_remote.sh (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/czw_branch/20170908/Ohana
- Property svn:mergeinfo changed
-
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/Makefile
r39591 r40477 82 82 $(SRC)/wcs.$(ARCH).o \ 83 83 $(SRC)/imsub.$(ARCH).o \ 84 $(SRC)/jdtolst.$(ARCH).o \ 84 85 $(SRC)/imfit.$(ARCH).o \ 85 86 $(SRC)/imfit-fgauss.$(ARCH).o \ -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/cdot.c
r34088 r40477 22 22 23 23 /* set point style and errorbar mode (these are NOT sticky) */ 24 graphmode.style = 2;24 graphmode.style = KAPA_PLOT_POINTS; /* points */ 25 25 graphmode.etype = 0; 26 26 -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/cgrid.c
r34584 r40477 95 95 } 96 96 97 int JustifyRA = 5; 98 double JustifyDEC = 5; 99 if ((N = get_argument (argc, argv, "-justify-ra"))) { 100 remove_argument (N, &argc, argv); 101 JustifyRA = atoi (argv[N]); 102 remove_argument (N, &argc, argv); 103 } 104 if ((N = get_argument (argc, argv, "-justify-dec"))) { 105 remove_argument (N, &argc, argv); 106 JustifyDEC = atoi (argv[N]); 107 remove_argument (N, &argc, argv); 108 } 109 110 double LabelRA = NAN; 111 double LabelDEC = NAN; 112 if ((N = get_argument (argc, argv, "-label-ra"))) { 113 remove_argument (N, &argc, argv); 114 LabelRA = atof (argv[N]); 115 remove_argument (N, &argc, argv); 116 } 117 if ((N = get_argument (argc, argv, "-label-dec"))) { 118 remove_argument (N, &argc, argv); 119 LabelDEC = atof (argv[N]); 120 remove_argument (N, &argc, argv); 121 } 122 123 int LabelColor = KapaColorByName ("black"); 124 if ((N = get_argument (argc, argv, "-label-color"))) { 125 remove_argument (N, &argc, argv); 126 LabelColor = KapaColorByName (argv[N]); 127 if (LabelColor == -1) return (FALSE); 128 remove_argument (N, &argc, argv); 129 } 130 97 131 if (!style_args (&graphmode, &argc, argv, &kapa)) return FALSE; 98 132 … … 196 230 if (Labels) { 197 231 char line[16], format[8]; 198 double xt, yt, dx, dy, frac; 199 dx = +0.01 * (graphmode.xmax - graphmode.xmin); 200 dy = -0.02 * (graphmode.ymax - graphmode.ymin); 201 232 double xt, yt, frac; 233 // dx = +0.01 * (graphmode.xmax - graphmode.xmin); 234 // dy = -0.02 * (graphmode.ymax - graphmode.ymin); 235 236 if (isnan(LabelRA)) LabelRA = graphmode.coords.crval1; 237 if (isnan(LabelDEC)) LabelDEC = graphmode.coords.crval2; 202 238 for (r = firstRA; r <= graphmode.coords.crval1 + 180.0; r += minorRA) { 203 status = RD_to_XY (&xt, &yt, r, graphmode.coords.crval2, &graphmode.coords);239 status = RD_to_XY (&xt, &yt, r, LabelDEC, &graphmode.coords); 204 240 if (!status) continue; 205 241 if (xt < graphmode.xmin) continue; … … 212 248 } 213 249 if (frac <= 0.0) frac = 0.0; 214 snprintf (format, 8, "%%.%df", (int) frac);215 250 if (RAbyHour) { 251 snprintf (format, 8, "%%.%df^h", (int) frac); 216 252 snprintf (line, 16, format, r / 15.0); 217 253 } else { 254 snprintf (format, 8, "%%.%df^o", (int) frac); 218 255 snprintf (line, 16, format, r); 219 256 } 220 KapaSendTextline (kapa, line, xt + dx, yt + dy, 0.0);257 KapaSendTextline (kapa, line, xt, yt, 0.0, JustifyRA, LabelColor); 221 258 } 222 259 for (r = firstRA; r >= graphmode.coords.crval1 - 180.0; r -= minorRA) { 223 status = RD_to_XY (&xt, &yt, r, graphmode.coords.crval2, &graphmode.coords);260 status = RD_to_XY (&xt, &yt, r, LabelDEC, &graphmode.coords); 224 261 if (!status) continue; 225 262 if (xt < graphmode.xmin) continue; … … 232 269 } 233 270 if (frac <= 0.0) frac = 0.0; 234 snprintf (format, 8, "%%.%df", (int) frac);235 271 if (RAbyHour) { 272 snprintf (format, 8, "%%.%df^h", (int) frac); 236 273 snprintf (line, 16, format, r / 15.0); 237 274 } else { 275 snprintf (format, 8, "%%.%df^o", (int) frac); 238 276 snprintf (line, 16, format, r); 239 277 } 240 KapaSendTextline (kapa, line, xt + dx, yt + dy, 0.0);278 KapaSendTextline (kapa, line, xt, yt, 0.0, JustifyRA, LabelColor); 241 279 } 242 280 for (d = firstDEC; d <= graphmode.coords.crval2 + 90.0; d += minorDEC) { 243 status = RD_to_XY (&xt, &yt, graphmode.coords.crval1, d, &graphmode.coords);281 status = RD_to_XY (&xt, &yt, LabelRA, d, &graphmode.coords); 244 282 if (!status) continue; 245 283 if (xt < graphmode.xmin) continue; … … 252 290 } 253 291 if (frac <= 0.0) frac = 0.0; 254 snprintf (format, 8, "%%.%df ", (int) frac);292 snprintf (format, 8, "%%.%df^o", (int) frac); 255 293 snprintf (line, 16, format, d); 256 KapaSendTextline (kapa, line, xt + dx, yt + dy, 0.0);294 KapaSendTextline (kapa, line, xt, yt, 0.0, JustifyDEC, LabelColor); 257 295 } 258 296 for (d = firstDEC; d >= graphmode.coords.crval2 - 90.0; d -= minorDEC) { 259 status = RD_to_XY (&xt, &yt, graphmode.coords.crval1, d, &graphmode.coords);297 status = RD_to_XY (&xt, &yt, LabelRA, d, &graphmode.coords); 260 298 if (!status) continue; 261 299 if (xt < graphmode.xmin) continue; … … 268 306 } 269 307 if (frac <= 0.0) frac = 0.0; 270 snprintf (format, 8, "%%.%df ", (int) frac);308 snprintf (format, 8, "%%.%df^o", (int) frac); 271 309 snprintf (line, 16, format, d); 272 KapaSendTextline (kapa, line, xt + dx, yt + dy, 0.0);310 KapaSendTextline (kapa, line, xt, yt, 0.0, JustifyDEC, LabelColor); 273 311 } 274 312 } … … 276 314 /* send the line segments as connect-points */ 277 315 Xvec.Nelements = Yvec.Nelements = N; 278 graphmode.style = 2; /* points */279 graphmode.ptype = 100; /* connect a pair*/316 graphmode.style = KAPA_PLOT_POINTS; /* points */ 317 graphmode.ptype = KAPA_POINT_PAIR_CONNECT; /* connect pairs of points */ 280 318 graphmode.etype = 0; 281 319 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/cline.c
r34088 r40477 20 20 21 21 /* set point style and errorbar mode (these are NOT sticky) */ 22 graphmode.style = 0;22 graphmode.style = KAPA_PLOT_CONNECT; 23 23 graphmode.etype = 0; 24 24 -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/czplot.c
r35757 r40477 111 111 Zvec.Nelements = Npts; 112 112 113 graphmode.style = 2;113 graphmode.style = KAPA_PLOT_POINTS; /* points */ 114 114 graphmode.size = -1; /* point size determined by Zvec */ 115 115 graphmode.etype = 0; … … 236 236 Zvec.Nelements = Npts; 237 237 238 graphmode.style = 2;238 graphmode.style = KAPA_PLOT_POINTS; 239 239 graphmode.color = -1; /* point color determined by Zvec */ 240 240 graphmode.etype = 0; -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/fitplx.c
r39610 r40477 77 77 double *dD = dDvec->elements.Flt; 78 78 79 int *mask = NULL;79 opihi_int *mask = NULL; 80 80 if (mvec) { 81 81 mask = mvec->elements.Int; … … 380 380 } 381 381 382 int PlxSetMeanEpoch (double *R, double *D, double *T, double *Rmean, double *Dmean, double *Tmean, int *mask, int Ntotal) {382 int PlxSetMeanEpoch (double *R, double *D, double *T, double *Rmean, double *Dmean, double *Tmean, opihi_int *mask, int Ntotal) { 383 383 384 384 int i; … … 413 413 414 414 // generate the fit values (projected X,Y; parallax factors; 415 int PlxSetEpochPosition (PlxFitData *fitdata, double *R, double *D, double *dR, double *dD, double *T, int *mask, int Ntotal, Coords *coords, double Tmean) {415 int PlxSetEpochPosition (PlxFitData *fitdata, double *R, double *D, double *dR, double *dD, double *T, opihi_int *mask, int Ntotal, Coords *coords, double Tmean) { 416 416 417 417 int i; … … 464 464 # define MAX_REJECT 0.1 465 465 466 int PlxOutlierClip (PlxFitData *fitdata, int *mask, int Noutlier, float dPsigMax, Vector *dPvec, int VERBOSE) {466 int PlxOutlierClip (PlxFitData *fitdata, opihi_int *mask, int Noutlier, float dPsigMax, Vector *dPvec, int VERBOSE) { 467 467 468 468 int i, n; -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/fitplx_irls.c
r39926 r40477 12 12 if ((mvec = SelectVector (argv[N], ANYVECTOR, TRUE)) == NULL) return (FALSE); 13 13 remove_argument (N, &argc, argv); 14 CastVector (mvec, OPIHI_INT);15 14 } 16 15 … … 81 80 double *dD = dDvec->elements.Flt; 82 81 83 int *mask = NULL;84 if (mvec) {85 mask = mvec->elements.Int;86 }87 88 82 // Ntotal : all points supplied by user 89 83 // Nsubset : unmasked points 90 84 int Ntotal = tvec->Nelements; // XXX check other lengths 91 85 86 if (rvec->Nelements != Ntotal) ESCAPE ("mis-match in vector lengths (mjd vs ra) = (%d vs %d)\n", rvec->Nelements, Ntotal); 87 if (dvec->Nelements != Ntotal) ESCAPE ("mis-match in vector lengths (mjd vs dec) = (%d vs %d)\n", dvec->Nelements, Ntotal); 88 if (dRvec->Nelements != Ntotal) ESCAPE ("mis-match in vector lengths (mjd vs dR) = (%d vs %d)\n", dRvec->Nelements, Ntotal); 89 if (dDvec->Nelements != Ntotal) ESCAPE ("mis-match in vector lengths (mjd vs dD) = (%d vs %d)\n", dDvec->Nelements, Ntotal); 90 91 opihi_int *mask = NULL; 92 if (mvec) { 93 ResetVector (mvec, OPIHI_INT, Ntotal); 94 mask = mvec->elements.Int; 95 for (i = 0; i < Ntotal; i++) { mask[i] = 1; } 96 } 97 98 92 99 double Rmean, Dmean, Tmean; 93 100 PlxSetMeanEpoch (R, D, T, &Rmean, &Dmean, &Tmean, mask, Ntotal); … … 109 116 for (i = 0; (VERBOSE == 2) && (i < fitdata.Npts); i++) { 110 117 int n = fitdata.index[i]; 111 int maskValue = mask ? mask[n] : 1;112 fprintf (stderr, "%f %f : %f %d: %f %f %f\n", R[n], D[n], T[n], maskValue, fitdata.t[i], fitdata.X[i], fitdata.Y[i]);118 opihi_int maskValue = mask ? mask[n] : 1; 119 fprintf (stderr, "%f %f : %f "OPIHI_INT_FMT" : %f %f %f\n", R[n], D[n], T[n], maskValue, fitdata.t[i], fitdata.X[i], fitdata.Y[i]); 113 120 } 114 121 … … 135 142 136 143 // update the mask based on the input mask and the outlier limits. 137 double Sum_Wx = 0; 138 double Sum_Wy = 0; 139 mask = mvec->elements.Int; 140 for (i = 0; i < fitdata.Npts; i++) { 141 Sum_Wx += fitdata.Wx[i]; 142 Sum_Wy += fitdata.Wy[i]; 143 } 144 for (i = 0; i < fitdata.Npts; i++) { 145 // fitdata only includes the previously unmasked points 146 if ((fitdata.Wx[i] < outlier_limit * Sum_Wx / (1.0 * fitdata.Npts))|| 147 (fitdata.Wy[i] < outlier_limit * Sum_Wy / (1.0 * fitdata.Npts))) { 148 int n = fitdata.index[i]; 149 mask[n] = 0; 144 if (mask) { 145 double Sum_Wx = 0; 146 double Sum_Wy = 0; 147 148 // calculate the total weight 149 for (i = 0; i < fitdata.Npts; i++) { 150 Sum_Wx += fitdata.Wx[i]; 151 Sum_Wy += fitdata.Wy[i]; 152 } 153 for (i = 0; i < fitdata.Npts; i++) { 154 // fitdata only includes the previously unmasked points 155 if ((fitdata.Wx[i] < outlier_limit * Sum_Wx / (1.0 * fitdata.Npts))|| 156 (fitdata.Wy[i] < outlier_limit * Sum_Wy / (1.0 * fitdata.Npts))) { 157 int n = fitdata.index[i]; 158 mask[n] = 0; 150 159 151 if (VERBOSE == 2) { 152 fprintf (stderr, "%f %f : %f %d : %f %f %f : %f %f %f %f\n", R[n], D[n], T[n], mask[n], fitdata.t[i], fitdata.X[i], fitdata.Y[i], fitdata.Wx[i], fitdata.Wy[i], Sum_Wx, Sum_Wy); 153 } 154 } 155 } 156 157 if (Nresample){ 158 // now that the mask has been updated, we need to recalculate mean epoch and positions 159 // XXX make this conditional on actually masking unmasked points above 160 // PlxSetMeanEpoch (R, D, T, &Rmean, &Dmean, &Tmean, mask, Ntotal); 161 // PlxSetEpochPosition (&fitdata, R, D, dR, dD, T, mask, Ntotal, &coords, Tmean); 160 if (VERBOSE == 2) { 161 fprintf (stderr, "%f %f : %f "OPIHI_INT_FMT" : %f %f %f : %f %f %f %f\n", R[n], D[n], T[n], mask[n], fitdata.t[i], fitdata.X[i], fitdata.Y[i], fitdata.Wx[i], fitdata.Wy[i], Sum_Wx, Sum_Wy); 162 } 163 } 164 } 165 } 166 167 if (Nresample) { 168 // if the mask has been updated, we need to recalculate mean epoch and positions 169 if (mask) { 170 PlxSetMeanEpoch (R, D, T, &Rmean, &Dmean, &Tmean, mask, Ntotal); 171 PlxSetEpochPosition (&fitdata, R, D, dR, dD, T, mask, Ntotal, &coords, Tmean); 172 } 162 173 163 174 PlxFitData sample; … … 218 229 // fprintf (stderr, "%f +/- %f | %f %f\n", fit.p, fit.dp, fit.uR, fit.uD); 219 230 220 Vector *dRresP MP, *dDresPMP, *dRresPLX, *dDresPLX;231 Vector *dRresPOS, *dDresPOS, *dRresPMP, *dDresPMP, *dRresPLX, *dDresPLX; 221 232 222 233 // save fit residuals (with only pm removed, and pm and plx removed) 234 if ((dRresPOS = SelectVector ("dRresPOS", ANYVECTOR, TRUE)) == NULL) ESCAPE ("cannot generate vector %s\n", "dRresPOS"); 235 if ((dDresPOS = SelectVector ("dDresPOS", ANYVECTOR, TRUE)) == NULL) ESCAPE ("cannot generate vector %s\n", "dDresPOS"); 223 236 if ((dRresPMP = SelectVector ("dRresPMP", ANYVECTOR, TRUE)) == NULL) ESCAPE ("cannot generate vector %s\n", "dRresPMP"); 224 237 if ((dDresPMP = SelectVector ("dDresPMP", ANYVECTOR, TRUE)) == NULL) ESCAPE ("cannot generate vector %s\n", "dDresPMP"); … … 226 239 if ((dDresPLX = SelectVector ("dDresPLX", ANYVECTOR, TRUE)) == NULL) ESCAPE ("cannot generate vector %s\n", "dDresPLX"); 227 240 241 ResetVector (dRresPOS, OPIHI_FLT, Ntotal); 242 ResetVector (dDresPOS, OPIHI_FLT, Ntotal); 228 243 ResetVector (dRresPMP, OPIHI_FLT, Ntotal); 229 244 ResetVector (dDresPMP, OPIHI_FLT, Ntotal); … … 246 261 double Yplx = fit.Do + fit.uD*t0; 247 262 263 dRresPOS->elements.Flt[i] = x0; 264 dDresPOS->elements.Flt[i] = y0; 248 265 dRresPMP->elements.Flt[i] = x0 - Xpmp; 249 266 dDresPMP->elements.Flt[i] = y0 - Ypmp; … … 538 555 539 556 double wx,wy; 557 double lim_Wx = outlier_limit * Sum_Wx / (1.0 * Npts); 558 double lim_Wy = outlier_limit * Sum_Wy / (1.0 * Npts); 540 559 for (i = 0; i < Npts; i++) { 541 if ((Wx[i] > outlier_limit * Sum_Wx / (1.0 * Npts))|| 542 (Wy[i] > outlier_limit * Sum_Wy / (1.0 * Npts))) { 543 560 int skip = (Wx[i] < lim_Wx) || (Wy[i] < lim_Wy); 561 if (!skip) { 544 562 Xf = fit[0].Ro + fit[0].uR*T[i] + fit[0].p*pR[i]; 545 563 Yf = fit[0].Do + fit[0].uD*T[i] + fit[0].p*pD[i]; -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/fitpm.c
r39228 r40477 50 50 double *dD = dDvec->elements.Flt; 51 51 52 int *mask = NULL;52 opihi_int *mask = NULL; 53 53 if (mvec) { 54 54 mask = mvec->elements.Int; -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/fitpm_irls.c
r39596 r40477 58 58 double *dD = dDvec->elements.Flt; 59 59 60 int *mask = NULL;60 opihi_int *mask = NULL; 61 61 if (mvec) { 62 62 mask = mvec->elements.Int; -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/init.c
r39591 r40477 33 33 int imfit PROTO((int, char **)); 34 34 int imsub PROTO((int, char **)); 35 int jdtolst PROTO((int, char **)); 35 36 int medianmap PROTO((int, char **)); 36 37 int galsectors PROTO((int, char **)); … … 103 104 {1, "imfit", imfit, "fit function"}, 104 105 {1, "imsub", imsub, "subtract function"}, 106 {1, "jdtolst", jdtolst, "JD to LST conversion"}, 105 107 {1, "medianmap", medianmap, "small median image"}, 106 108 {1, "mkgauss", mkgauss, "generate a 2-D gaussian centered in image"}, -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.astro/star.c
r36679 r40477 3 3 int star (int argc, char **argv) { 4 4 5 int x, y, N, dx,Nborder;5 int x, y, N, Nborder; 6 6 double max; 7 7 Buffer *buf; … … 33 33 } 34 34 35 int dx = 11; 36 int dy = 11; 37 int BOX = FALSE; 38 if ((N = get_argument (argc, argv, "-box"))) { 39 remove_argument (N, &argc, argv); 40 dx = atoi(argv[N]); 41 remove_argument (N, &argc, argv); 42 dy = atoi(argv[N]); 43 remove_argument (N, &argc, argv); 44 BOX = TRUE; 45 } 46 35 47 if ((argc != 4) && (argc != 5)) { 36 gprint (GP_ERR, "USAGE: star (buffer) x y [dx] [-border N] [-sat cnts] \n");48 gprint (GP_ERR, "USAGE: star (buffer) x y [dx] [-border N] [-sat cnts] [-box dx dy]\n"); 37 49 gprint (GP_ERR, " dx is the aperture diameter, but is adjusted up to the next odd number\n"); 38 50 return (FALSE); … … 40 52 if ((buf = SelectBuffer (argv[1], OLDBUFFER, TRUE)) == NULL) return (FALSE); 41 53 42 dx = 11;43 54 x = atof (argv[2]); 44 55 y = atof (argv[3]); … … 47 58 } 48 59 49 get_aperture_stats (&buf[0].matrix, x, y, dx, Nborder, max, VERBOSE); 60 if (BOX) { 61 get_box_stats (&buf[0].matrix, x, y, dx, dy, Nborder, max, VERBOSE); 62 } else { 63 get_aperture_stats (&buf[0].matrix, x, y, dx, Nborder, max, VERBOSE); 64 } 50 65 51 66 return (TRUE); -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/Makefile
r40007 r40477 66 66 $(SRC)/hermitian1d.$(ARCH).o \ 67 67 $(SRC)/hermitian2d.$(ARCH).o \ 68 $(SRC)/idxread.$(ARCH).o \ 68 69 $(SRC)/imcut.$(ARCH).o \ 69 70 $(SRC)/imhist.$(ARCH).o \ … … 99 100 $(SRC)/medimage_commands.$(ARCH).o \ 100 101 $(SRC)/mset.$(ARCH).o \ 101 $(SRC)/needles.$(ARCH).o \ 102 $(SRC)/needles.$(ARCH).o \ 103 $(SRC)/nnet.$(ARCH).o \ 104 $(SRC)/nnet_commands.$(ARCH).o \ 105 $(SRC)/nnet_train.$(ARCH).o \ 106 $(SRC)/nnet_apply.$(ARCH).o \ 102 107 $(SRC)/peak.$(ARCH).o \ 103 108 $(SRC)/periodogram.$(ARCH).o \ 109 $(SRC)/periodogram-fm.$(ARCH).o \ 104 110 $(SRC)/plot.$(ARCH).o \ 105 111 $(SRC)/dot.$(ARCH).o \ … … 154 160 $(SRC)/type.$(ARCH).o \ 155 161 $(SRC)/uniq.$(ARCH).o \ 162 $(SRC)/uniqpair.$(ARCH).o \ 156 163 $(SRC)/unsign.$(ARCH).o \ 157 164 $(SRC)/vbin.$(ARCH).o \ … … 159 166 $(SRC)/vclip.$(ARCH).o \ 160 167 $(SRC)/vgauss.$(ARCH).o \ 168 $(SRC)/vlorentz.$(ARCH).o \ 161 169 $(SRC)/vellipse.$(ARCH).o \ 162 170 $(SRC)/vmaxwell.$(ARCH).o \ … … 171 179 $(SRC)/vstats.$(ARCH).o \ 172 180 $(SRC)/xsection.$(ARCH).o \ 173 $(SRC)/vsh.$(ARCH).o \181 $(SRC)/vsh.$(ARCH).o \ 174 182 $(SRC)/vshfit.$(ARCH).o \ 175 183 $(SRC)/shterms.$(ARCH).o \ … … 187 195 $(INC)/external.h \ 188 196 $(INC)/shell.h \ 197 $(INC)/data.h \ 189 198 $(INC)/dvomath.h \ 190 199 $(INC)/display.h -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/dot.c
r33963 r40477 29 29 30 30 /* set point style and errorbar mode (these are NOT sticky) */ 31 graphmode.style = 2;31 graphmode.style = KAPA_PLOT_POINTS; 32 32 graphmode.etype = 0; 33 33 -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/grid.c
r34584 r40477 175 175 176 176 Xvec.Nelements = Yvec.Nelements = N; 177 graphmode.style = 2; /* points */178 graphmode.ptype = 100; /* connect a pair*/177 graphmode.style = KAPA_PLOT_POINTS; /* points */ 178 graphmode.ptype = KAPA_POINT_PAIR_CONNECT; /* connect pairs of points */ 179 179 graphmode.etype = 0; 180 180 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/impeaks.c
r36679 r40477 100 100 int Npeaks = 0; 101 101 for (ix = 1; ix < Nx - 1; ix++) { 102 if (!isfinite(row[ix])) continue; // ignore NAN values 102 103 if (row[ix] < threshold) continue; // only accept pixels above threshold 103 104 if (row[ix] < row[ix - 1]) continue; // peak pixel must be at least preceeding pixel -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/init.c
r40007 r40477 55 55 int hermitian1d PROTO((int, char **)); 56 56 int hermitian2d PROTO((int, char **)); 57 int idxread PROTO((int, char **)); 57 58 int imcut PROTO((int, char **)); 58 59 int imhist PROTO((int, char **)); … … 89 90 int mset PROTO((int, char **)); 90 91 int needles PROTO((int, char **)); 92 int nnet_command PROTO((int, char **)); 91 93 int peak PROTO((int, char **)); 92 94 int periodogram PROTO((int, char **)); 95 int periodogram_fm PROTO((int, char **)); 93 96 int plot PROTO((int, char **)); 94 97 int dot PROTO((int, char **)); … … 140 143 int tvcontour PROTO((int, char **)); 141 144 int tvgrid PROTO((int, char **)); 142 int opihi_type PROTO((int, char **));145 int opihi_type PROTO((int, char **)); 143 146 int uniq PROTO((int, char **)); 147 int uniqpair PROTO((int, char **)); 144 148 int unsign PROTO((int, char **)); 145 149 int vbin PROTO((int, char **)); … … 149 153 int vgrid PROTO((int, char **)); 150 154 int vgauss PROTO((int, char **)); 155 int vlorentz PROTO((int, char **)); 151 156 int vellipse PROTO((int, char **)); 152 157 int vmaxwell PROTO((int, char **)); … … 232 237 {1, "hermitian1d", hermitian1d, "generate 1-D Hermitian Polynomial"}, 233 238 {1, "hermitian2d", hermitian2d, "generate 2-D Hermitian Polynomial"}, 239 {1, "idxread", idxread, "read vector or image data from an IDX file"}, 234 240 {1, "imbin", rebin, "rebin image data by factor of N"}, 235 241 {1, "imclip", imclip, "clip values in an image to be within a range"}, … … 268 274 {1, "imset", mset, "insert a vector in an image"}, 269 275 {1, "needles", needles, "plot vectors needles"}, 276 {1, "nnet", nnet_command, "Neural Network commands"}, 270 277 {1, "parity", parity, "set image parity"}, 271 278 {1, "peak", peak, "find vector peak in range"}, 272 {1, "periodogram", periodogram, "measure periods in unevenly sampled data"}, 279 {1, "periodogram", periodogram, "measure periods in unevenly sampled data (Lomb-Scargle)"}, 280 {1, "periodogram_fm", periodogram_fm, "measure periods in unevenly sampled data (generalized Lomb-Scargle; floating mean)"}, 273 281 {1, "plot", plot, "plot a pair of vectors"}, 274 282 {1, "png", jpeg, "convert display graphic to PNG"}, … … 323 331 {1, "ungridify", ungridify, "convert image region to vector triplet"}, 324 332 {1, "uniq", uniq, "create a uniq vector subset from a vector"}, 333 {1, "uniqpair", uniqpair, "create a uniq vector subset from a pair of vectors, saving duplicates if desired"}, 325 334 {1, "unsign", unsign, "toggle the UNSIGN status"}, 326 335 {1, "vbin", vbin, "rebin vector data by a factor of N"}, … … 330 339 {1, "vtype", vtype, "return the vector type (FLT or INT)"}, 331 340 {1, "vgauss", vgauss, "fit a Gaussian to a vector"}, 341 {1, "vlorentz", vlorentz, "fit a Lorentzian to a vector"}, 332 342 {1, "vellipse", vellipse, "fit a Ellipse to a vector pair"}, 333 343 {1, "vgrid", vgrid, "generate an image from a triplet of vectors"}, -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/limits.c
r31160 r40477 3 3 int limits (int argc, char **argv) { 4 4 5 int N, APPLY,dX, dY;5 int N, dX, dY; 6 6 int kapa; 7 char *name;8 7 Graphdata graphmode; 9 8 Vector *xvec, *yvec; … … 11 10 xvec = yvec = NULL; 12 11 13 APPLY = FALSE; 12 float minLimitX = NAN; 13 float minLimitY = NAN; 14 float maxLimitX = NAN; 15 float maxLimitY = NAN; 16 float delLimitX = NAN; 17 float delLimitY = NAN; 18 19 if ((N = get_argument (argc, argv, "-minX"))) { 20 remove_argument (N, &argc, argv); 21 minLimitX = atof (argv[N]); 22 remove_argument (N, &argc, argv); 23 } 24 if ((N = get_argument (argc, argv, "-maxX"))) { 25 remove_argument (N, &argc, argv); 26 maxLimitX = atof (argv[N]); 27 remove_argument (N, &argc, argv); 28 } 29 if ((N = get_argument (argc, argv, "-delX"))) { 30 if (!isnan(minLimitX) || !isnan(maxLimitX)) { 31 gprint (GP_ERR, "-minX & -maxX cannot be mixed with -delX\n"); 32 return (FALSE); 33 } 34 remove_argument (N, &argc, argv); 35 delLimitX = atof (argv[N]); 36 remove_argument (N, &argc, argv); 37 } 38 if ((N = get_argument (argc, argv, "-minY"))) { 39 remove_argument (N, &argc, argv); 40 minLimitY = atof (argv[N]); 41 remove_argument (N, &argc, argv); 42 } 43 if ((N = get_argument (argc, argv, "-maxY"))) { 44 remove_argument (N, &argc, argv); 45 maxLimitY = atof (argv[N]); 46 remove_argument (N, &argc, argv); 47 } 48 if ((N = get_argument (argc, argv, "-delY"))) { 49 if (!isnan(minLimitY) || !isnan(maxLimitY)) { 50 gprint (GP_ERR, "-minY & -maxY cannot be mixed with -delY\n"); 51 return (FALSE); 52 } 53 remove_argument (N, &argc, argv); 54 delLimitY = atof (argv[N]); 55 remove_argument (N, &argc, argv); 56 } 57 58 int APPLY = FALSE; 14 59 if ((N = get_argument (argc, argv, "-a"))) { 15 60 remove_argument (N, &argc, argv); 16 61 APPLY = TRUE; 17 62 } 18 name = NULL;63 char *name = NULL; 19 64 if ((N = get_argument (argc, argv, "-n"))) { 20 65 remove_argument (N, &argc, argv); … … 22 67 remove_argument (N, &argc, argv); 23 68 } 69 24 70 if (!GetGraph (&graphmode, &kapa, name)) return (FALSE); 25 71 FREE (name); … … 97 143 success: 98 144 SetLimits (xvec, yvec, &graphmode); 145 146 if (!isnan(minLimitX)) graphmode.xmin = MIN (minLimitX, graphmode.xmin); 147 if (!isnan(maxLimitX)) graphmode.xmax = MAX (maxLimitX, graphmode.xmax); 148 if (!isnan(minLimitY)) graphmode.ymin = MIN (minLimitY, graphmode.ymin); 149 if (!isnan(maxLimitY)) graphmode.ymax = MAX (maxLimitY, graphmode.ymax); 150 151 if (!isnan(delLimitX)) { 152 float delta = graphmode.xmax - graphmode.xmin; 153 if (fabs(delLimitX) > fabs(delta)) { 154 float midpt = 0.5*(graphmode.xmax + graphmode.xmin); 155 graphmode.xmax = midpt + 0.5*delLimitX; 156 graphmode.xmin = midpt - 0.5*delLimitX; 157 } 158 } 159 if (!isnan(delLimitY)) { 160 float delta = graphmode.ymax - graphmode.ymin; 161 if (fabs(delLimitY) > fabs(delta)) { 162 float midpt = 0.5*(graphmode.ymax + graphmode.ymin); 163 graphmode.ymax = midpt + 0.5*delLimitY; 164 graphmode.ymin = midpt - 0.5*delLimitY; 165 } 166 } 167 99 168 if (APPLY) KapaSetLimits (kapa, &graphmode); 100 169 return (TRUE); -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/line.c
r33662 r40477 33 33 34 34 /* set point style and errorbar mode (these are NOT sticky) */ 35 graphmode.style = 0;35 graphmode.style = KAPA_PLOT_CONNECT; 36 36 graphmode.etype = 0; 37 37 -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/mslice.c
r39233 r40477 3 3 int mslice (int argc, char **argv) { 4 4 5 int i;5 int N; 6 6 Buffer *in, *out; 7 7 8 int Dir = 0; 9 if ((N = get_argument (argc, argv, "-x"))) { 10 remove_argument (N, &argc, argv); 11 Dir = 1; 12 } 13 if ((N = get_argument (argc, argv, "-y"))) { 14 remove_argument (N, &argc, argv); 15 if (Dir) { 16 gprint (GP_ERR, "ERROR: multiple -x,-y,-z options are not allowed\n"); 17 return FALSE; 18 } 19 Dir = 2; 20 } 21 if ((N = get_argument (argc, argv, "-z"))) { 22 remove_argument (N, &argc, argv); 23 if (Dir) { 24 gprint (GP_ERR, "ERROR: multiple -x,-y,-z options are not allowed\n"); 25 return FALSE; 26 } 27 Dir = 3; 28 } 29 if (!Dir) Dir = 3; 30 8 31 if (argc != 4) { 9 gprint (GP_ERR, "USAGE: mget <input> <output> plane\n"); 32 gprint (GP_ERR, "USAGE: mslice <input> <output> plane [-x,-y,-z]\n"); 33 gprint (GP_ERR, " -z is default\n"); 10 34 return (FALSE); 11 35 } … … 24 48 int Nz = in[0].matrix.Naxis[2]; 25 49 50 int NplaneMax = 0; 51 int Nout1 = 0; 52 int Nout2 = 0; 53 switch (Dir) { 54 case 1: NplaneMax = Nx; Nout1 = Ny; Nout2 = Nz; break; 55 case 2: NplaneMax = Ny; Nout1 = Nx; Nout2 = Nz; break; 56 case 3: NplaneMax = Nz; Nout1 = Nx; Nout2 = Ny; break; 57 default: myAbort ("impossible"); 58 } 59 26 60 int invalid = FALSE; 27 61 invalid = invalid || (plane < 0); 28 invalid = invalid || (plane >= N z);62 invalid = invalid || (plane >= NplaneMax); 29 63 if (invalid) { 30 gprint (GP_ERR, "plane %d out of range \n", plane);64 gprint (GP_ERR, "plane %d out of range (max = %d)\n", plane, NplaneMax); 31 65 return (FALSE); 32 66 } 33 67 34 68 /* I should encapsulate this in a create_default_buffer */ 69 35 70 gfits_free_matrix (&out[0].matrix); 36 71 gfits_free_header (&out[0].header); 37 if (!CreateBuffer (out, N x, Ny, -32, 1.0, 0.0)) return FALSE;72 if (!CreateBuffer (out, Nout1, Nout2, -32, 1.0, 0.0)) return FALSE; 38 73 39 float *inF = (float *) in[0].matrix.buffer + plane*Nx*Ny; 40 float *outF = (float *) out[0].matrix.buffer; 74 // pixel (ix, iy, iz) : in[0].matrix.buffer + ix + iy*Nx + iz*Nx*Ny 41 75 42 for (i = 0; i < Nx*Ny; i++, inF ++, outF++) { 43 *outF = *inF; 76 switch (Dir) { 77 case 1: { 78 float *outF = (float *) out[0].matrix.buffer; 79 80 // pixel (ix, iy, iz) : in[0].matrix.buffer + ix + iy*Nx + iz*Nx*Ny 81 82 for (int iz = 0; iz < Nz; iz++) { 83 float *inF = (float *) in[0].matrix.buffer + plane + iz*Nx*Ny; 84 for (int iy = 0; iy < Ny; iy++, inF += Nx, outF++) { 85 *outF = *inF; 86 } 87 } 88 break; 89 } 90 case 2: { 91 92 float *outF = (float *) out[0].matrix.buffer; 93 94 for (int iz = 0; iz < Nz; iz++) { 95 float *inF = (float *) in[0].matrix.buffer + plane*Nx + iz*Nx*Ny; 96 for (int ix = 0; ix < Nx; ix++, inF++, outF++) { 97 *outF = *inF; 98 } 99 } 100 break; 101 } 102 case 3: { 103 float *inF = (float *) in[0].matrix.buffer + plane*Nx*Ny; 104 float *outF = (float *) out[0].matrix.buffer; 105 106 for (int i = 0; i < Nx*Ny; i++, inF ++, outF++) { 107 *outF = *inF; 108 } 109 break; 110 } 111 default: myAbort ("impossible"); 44 112 } 45 113 return (TRUE); -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/print_vectors.c
r37049 r40477 4 4 5 5 Vector **vec; 6 int i, j; 6 int i, j, N; 7 8 int START_VALUE = 0; 9 if ((N = get_argument (argc, argv, "-s"))) { 10 remove_argument (N, &argc, argv); 11 START_VALUE = atoi (argv[N]); 12 remove_argument (N, &argc, argv); 13 } 14 15 int END_VALUE = -1; 16 if ((N = get_argument (argc, argv, "-e"))) { 17 remove_argument (N, &argc, argv); 18 END_VALUE = atoi (argv[N]); 19 remove_argument (N, &argc, argv); 20 } 7 21 8 22 if (argc < 2) { … … 27 41 } 28 42 29 for (j = 0; j < MaxLen; j++) { 43 // start and end may be 0 - N (truncated to N) or may be negative, in which case it refers to 44 // distance from the end (just like vector[-5]) 45 START_VALUE = (START_VALUE < 0) ? MaxLen + START_VALUE + 1 : MIN (START_VALUE, MaxLen); 46 START_VALUE = MAX (0, START_VALUE); 47 48 END_VALUE = (END_VALUE < 0) ? MaxLen + END_VALUE + 1 : MIN (END_VALUE, MaxLen); 49 END_VALUE = MAX (0, END_VALUE); 50 51 for (j = START_VALUE; j < END_VALUE; j++) { 30 52 for (i = 0; i < Nvec; i++) { 31 53 if (j >= vec[i][0].Nelements) { … … 35 57 gprint (GP_LOG, "%f ", vec[i][0].elements.Flt[j]); 36 58 } else { 37 gprint (GP_LOG, "%d", vec[i][0].elements.Int[j]);59 gprint (GP_LOG, OPIHI_INT_FMT" ", vec[i][0].elements.Int[j]); 38 60 } 39 61 } -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/read_vectors.c
r40012 r40477 19 19 } 20 20 21 if (strlen(argv[1]) >= 2048) { 22 gprint (GP_ERR, "filename %s is too long\n", argv[1]); 23 return (FALSE); 24 } 25 21 26 strcpy (filename, argv[1]); 22 27 if (f != (FILE *) NULL) { fclose (f); } 23 28 f = fopen (filename, "r"); 24 29 if (f == (FILE *) NULL) { 25 gprint (GP_ERR, "failed to open file %s\n", argv[1]);30 gprint (GP_ERR, "failed to open file %s\n", filename); 26 31 return (FALSE); 27 32 } -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/reindex.c
r39227 r40477 47 47 continue; 48 48 } 49 if (*vx > Nmax) ESCAPE("unexpected value in index: %d(%d)\n", *vx, i);49 if (*vx > Nmax) ESCAPE("unexpected value in index: "OPIHI_INT_FMT" (%d)\n", *vx, i); 50 50 ovec[0].elements.Flt[Npts] = vi[*vx]; 51 51 Npts++; … … 67 67 continue; 68 68 } 69 if (*vx > Nmax) ESCAPE("unexpected value in index: %d(%d)\n", *vx, i);69 if (*vx > Nmax) ESCAPE("unexpected value in index: "OPIHI_INT_FMT" (%d)\n", *vx, i); 70 70 ovec[0].elements.Int[Npts] = vi[*vx]; 71 71 Npts++; -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/sort.c
r20936 r40477 7 7 itmp = IDX[A]; IDX[A] = IDX[B]; IDX[B] = itmp; \ 8 8 } 9 # define COMPARE(A,B)(X[A] < X[B]) 9 10 // # define COMPARE(A,B)(X[A] < X[B]) 11 # define COMPARE(A,B)((!isfinite(X[A]) && isfinite(X[B])) || (X[A] < X[B])) 10 12 11 13 OHANA_SORT (N, COMPARE, SWAPFUNC); … … 22 24 itmp = IDX[A]; IDX[A] = IDX[B]; IDX[B] = itmp; \ 23 25 } 26 24 27 # define COMPARE(A,B)(X[A] < X[B]) 28 // # define COMPARE(A,B)((!isfinite(X[A]) && isfinite(X[B])) || (X[A] < X[B])) 25 29 26 30 OHANA_SORT (N, COMPARE, SWAPFUNC); -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/test/periodogram.sh
r27435 r40477 1 2 if (not($?PLOT)) set PLOT = 0 1 3 2 4 list tests … … 28 30 echo "OFFSET: {$peakpos - $P}" 29 31 end 32 33 if ($PLOT) 34 lim period power; clear; box; line -c red70 -lw 3 $P 0 to $P $peakval; plot period power -x line 35 end 30 36 end 31 37 … … 107 113 if (abs ($peakpos - $P) > 0.05) 108 114 $PASS = 0 115 end 116 end 117 118 # test using random samples, offset start, non-zero DC 119 macro test5 120 $PASS = 1 121 break -auto off 122 123 local P PI 124 $PI = 3.14159265359 125 $P = 15.0 126 127 delete -q x t f period power 128 129 create x 500 800 130 set t = 300 * rnd(x) + 500 131 set f = sin(2*$PI*t/$P) + 0.5 132 133 periodogram t f 2 30 period power 134 135 # lim -n 0 t f; clear; box; plot -x 2 -pt 2 t f 136 # lim -n 1 period power; clear; box; plot period power 137 138 peak -q period power 139 140 if (abs ($peakpos - $P) > 0.05) 141 $PASS = 0 142 end 143 end 144 145 # test using random samples, offset start, non-zero DC, some noise 146 macro test6 147 $PASS = 1 148 break -auto off 149 150 local P PI 151 $PI = 3.14159265359 152 $P = 15.0 153 154 delete -q x t f period power 155 156 create x 500 800 157 set t = 300 * rnd(x) + 500 158 set fraw = sin(2*$PI*t/$P) + 0.5 159 160 # 0.05 : peakpos = 14.95 161 # 0.10 : peakpos = 15.04 ( 162 gaussdev df t[] 0.0 0.25 163 set f = fraw + df 164 165 periodogram t f 2 30 period power 166 167 # lim -n 0 t f; clear; box; plot -x 2 -pt 2 t f 168 # lim -n 1 period power; clear; box; plot period power 169 170 peak -q period power 171 172 if (abs ($peakpos - $P) > 0.05) 173 $PASS = 0 174 end 175 end 176 177 # test using fewer random samples, offset start, non-zero DC, some noise 178 macro test7 179 $PASS = 1 180 break -auto off 181 182 local P PI 183 $PI = 3.14159265359 184 $P = 15.0 185 186 delete -q x t f period power 187 188 create x 0 100 189 set t = 100 * rnd(x) 190 set fraw = sin(2*$PI*t/$P) + 0.5 191 192 # 0.05 : peakpos = 14.95 193 # 0.10 : peakpos = 15.04 ( 194 gaussdev df t[] 0.0 0.25 195 set f = fraw + df 196 197 periodogram t f 2 30 period power 198 199 # lim -n 0 t f; clear; box; plot -x 2 -pt 2 t f 200 # lim -n 1 period power; clear; box; plot period power 201 202 peak -q period power 203 204 if (abs ($peakpos - $P) > 0.05) 205 $PASS = 0 206 end 207 end 208 209 # test using fewer random samples, high frequency, non-zero DC, some noise 210 macro test8 211 if ($0 != 4) 212 echo "USAGE: test8: Period Ndays df" 213 break 214 end 215 216 local Ndays 217 $P = $1 218 $Ndays = $2 219 $dM = $3 220 221 $PASS = 1 222 break -auto off 223 224 local PI 225 $PI = 3.14159265359 226 $trueP = $P 227 228 delete -q x t f period power 229 230 create x 0 $Ndays 231 232 # t is a time in days, but we always have 4 within 1 hour: 233 set tday = int(100 * rnd(x)); # choose Ndays random days between 0 and 100 234 set dtx = (3/24) * rnd(x); # choose a starting time within that night 235 set t0 = tday + dtx 236 237 set dt1 = (15.0 / 1440) * rnd(x) + ( 0 + 7.5) / 1440 238 set dt2 = (15.0 / 1440) * rnd(x) + (15 + 7.5) / 1440 239 set dt3 = (15.0 / 1440) * rnd(x) + (30 + 7.5) / 1440 240 241 delete -q t 242 concat t0 t 243 set tmp = t0 + dt1; concat tmp t 244 set tmp = t0 + dt2; concat tmp t 245 set tmp = t0 + dt3; concat tmp t 246 247 set fraw = 0.75*sin(2*$PI*t/$P) 248 249 # 0.05 : peakpos = 14.95 250 # 0.10 : peakpos = 15.04 ( 251 gaussdev df t[] 0.0 $dM 252 set f = fraw + df 253 254 periodogram t f 0.1 2.0 period power 255 256 # lim -n 0 t f; clear; box; plot -x 2 -pt 2 t f 257 # lim -n 1 period power; clear; box; plot period power 258 259 peak -q period power 260 261 if (abs ($peakpos - $P) > 0.05) 262 $PASS = 0 263 end 264 if ($PLOT) 265 lim period power; clear; box; line -c red70 -lw 3 $P 0 to $P $peakval; plot period power -x line 109 266 end 110 267 end -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/textline.c
r13479 r40477 6 6 char name[64]; 7 7 double x, y, angle; 8 int kapa;9 8 Graphdata graphmode; 10 9 11 if (!style_args (&graphmode, &argc, argv, &kapa)) return (FALSE); 10 // if (!style_args (&graphmode, &argc, argv, &kapa)) return (FALSE); 11 12 // Using only these style_args options 13 char *kapaName = NULL; 14 int kapa = -1; 15 if ((N = get_argument (argc, argv, "-n"))) { 16 remove_argument (N, &argc, argv); 17 kapaName = strcreate (argv[N]); 18 remove_argument (N, &argc, argv); 19 } 20 if (!GetGraph (&graphmode, &kapa, kapaName)) return (FALSE); 21 FREE (kapaName); 22 23 int color = KapaColorByName ("black"); 24 if ((N = get_argument (argc, argv, "-c"))) { 25 remove_argument (N, &argc, argv); 26 color = KapaColorByName (argv[N]); 27 if (color == -1) return (FALSE); 28 remove_argument (N, &argc, argv); 29 } 12 30 13 31 if ((N = get_argument (argc, argv, "-fn"))) { … … 34 52 } 35 53 54 int justify = 5; // default 55 if ((N = get_argument (argc, argv, "-justify"))) { 56 remove_argument (N, &argc, argv); 57 justify = atoi (argv[N]); 58 remove_argument (N, &argc, argv); 59 } 60 36 61 if (argc != 4) { 37 gprint (GP_ERR, "USAGE: text x y (line) [-fn (font) size] [-rot angle] \n");62 gprint (GP_ERR, "USAGE: text x y (line) [-fn (font) size] [-rot angle] [-justify N]\n"); 38 63 return (FALSE); 39 64 } … … 52 77 } 53 78 54 KapaSendTextline (kapa, argv[3], x, y, angle );79 KapaSendTextline (kapa, argv[3], x, y, angle, justify, color); 55 80 return (TRUE); 56 81 } -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/uniq.c
r39457 r40477 80 80 memcpy (indata, ivec->elements.Int, ivec[0].Nelements*sizeof(opihi_int)); 81 81 82 isort (indata, ivec->Nelements);82 llsort (indata, ivec->Nelements); 83 83 84 84 Nnew = 0; -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/write_vectors.c
r39360 r40477 165 165 } else { 166 166 if (CSV) { 167 fprintf (f, "%d,", vec[j][0].elements.Int[i]);167 fprintf (f, OPIHI_INT_FMT",", vec[j][0].elements.Int[i]); 168 168 } else { 169 fprintf (f, "%d", vec[j][0].elements.Int[i]);169 fprintf (f, OPIHI_INT_FMT" ", vec[j][0].elements.Int[i]); 170 170 } 171 171 } -
branches/czw_branch/20170908/Ohana/src/opihi/cmd.data/zplot.c
r38062 r40477 117 117 118 118 /* point size determined by Zvec */ 119 graphmode.style = 2; /* plotpoints */119 graphmode.style = KAPA_PLOT_POINTS; /* points */ 120 120 graphmode.size = -1; /* point size determined by Zvec */ 121 121 PlotVectorTriplet (kapa, xvec, yvec, &Zvec, mask, &graphmode); … … 226 226 227 227 /* point size determined by Zvec */ 228 graphmode.style = 2; /* plot points */228 graphmode.style = KAPA_PLOT_POINTS; /* plot points */ 229 229 graphmode.color = -1; /* point color determined by Zvec */ 230 230 graphmode.etype = 0; /* no errorbars */ -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/Makefile
r39602 r40477 27 27 $(SRC)/mySequence.$(ARCH).o \ 28 28 $(SRC)/photcode_ops.$(ARCH).o \ 29 $(SRC)/PeriodogramOps.$(ARCH).o \ 29 30 $(SRC)/find_matches.$(ARCH).o 30 31 … … 45 46 $(SRC)/avextract.$(ARCH).o \ 46 47 $(SRC)/avmatch.$(ARCH).o \ 48 $(SRC)/avperiodogram.$(ARCH).o \ 49 $(SRC)/avperiodomatch.$(ARCH).o \ 47 50 $(SRC)/badimages.$(ARCH).o \ 48 51 $(SRC)/catdir.$(ARCH).o \ -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/catalog.c
r38471 r40477 390 390 REALLOCATE (Zvec.elements, float, MAX (Zvec.Nelements, 1)); 391 391 392 graphmode.style = 2; /* set style topoints */392 graphmode.style = KAPA_PLOT_POINTS; /* points */ 393 393 graphmode.size = -1; /* point size determined by Zvec */ 394 394 graphmode.etype = 0; /* no errorbars */ -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/dmt.c
r39457 r40477 150 150 vec5[0].Nelements = Dvec.Nelements; 151 151 } else { 152 graphmode.style = 2; /* set style topoints */152 graphmode.style = KAPA_PLOT_POINTS; /* points */ 153 153 PlotVector (kapa, N, Xvec.elements, Yvec.elements, &graphmode); 154 154 -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/dvo_host_utils.c
r39524 r40477 212 212 continue; 213 213 } 214 free (table->hosts[i].results);215 table->hosts[i].results = NULL;214 // free (table->hosts[i].results); 215 // table->hosts[i].results = NULL; 216 216 set_int_variable (name, 1); // result file has been read 217 217 … … 225 225 FreeVectorArray (invec, Ninvec); 226 226 } 227 } else { 228 // free (table->hosts[i].results); 229 // table->hosts[i].results = NULL; 227 230 } 228 231 } … … 242 245 free (vec); 243 246 244 free (table);247 FreeHostTable (table); 245 248 return TRUE; 246 249 } … … 284 287 // XXX a bit of a waste (but only 1024 * 60 bytes or so 285 288 ALLOCATE (table->hosts[i].results, char, DVO_MAX_PATH); 286 snprintf (table->hosts[i].results, DVO_MAX_PATH, "%s/dvo.results.%s. fits", table->hosts[i].pathname, uniquer);289 snprintf (table->hosts[i].results, DVO_MAX_PATH, "%s/dvo.results.%s.%04d.fits", table->hosts[i].pathname, uniquer, table->hosts[i].hostID); 287 290 288 291 int Ninvec = 0; -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/fitcolors.c
r39457 r40477 48 48 if (!SetPhotSelections (&argc, argv, 4)) goto usage; 49 49 50 int textcolor = KapaColorByName ("black"); 51 50 52 // range for valid data points (exclude extreme outliers) 51 53 minDelta = -0.2; … … 92 94 graphdata.ymin = minDelta; 93 95 graphdata.ymax = maxDelta; 94 graph data.style = 2;95 graph data.ptype = 2;96 graphmode.style = KAPA_PLOT_POINTS; /* points */ 97 graphmode.ptype = KAPA_POINT_CIRCLE_SOLID; /* connect pairs of points */ 96 98 KapaClearSections (kapa); 97 99 KapaSetFont (kapa, "helvetica", 14); … … 192 194 graphdata.ymin = minDelta; 193 195 graphdata.ymax = maxDelta; 194 graph data.style = 2;195 graph data.ptype = 2;196 graphmode.style = KAPA_PLOT_POINTS; /* points */ 197 graphmode.ptype = KAPA_POINT_CIRCLE_SOLID; /* connect pairs of points */ 196 198 } 197 199 … … 315 317 deltaFit[i] = C0 + C1*colorFit[i]; 316 318 } 317 graph data.style = 0;319 graphmode.style = KAPA_PLOT_CONNECT; /* lines */ 318 320 graphdata.color = KapaColorByName ("red"); 319 321 … … 324 326 KapaSetFont (kapa, "helvetica", 8); 325 327 sprintf (label, "%s", code[0][0].name); 326 KapaSendTextline (kapa, label, 0.2*maxColor + 0.8*minColor, 0.8*maxDelta + 0.2*minDelta, 0.0 );328 KapaSendTextline (kapa, label, 0.2*maxColor + 0.8*minColor, 0.8*maxDelta + 0.2*minDelta, 0.0, textcolor); 327 329 sprintf (label, "%s", code[1][0].name); 328 KapaSendTextline (kapa, label, 0.2*maxColor + 0.8*minColor, 0.2*maxDelta + 0.8*minDelta, 0.0 );330 KapaSendTextline (kapa, label, 0.2*maxColor + 0.8*minColor, 0.2*maxDelta + 0.8*minDelta, 0.0, textcolor); 329 331 KapaSetFont (kapa, "helvetica", 14); 330 332 331 graph data.style = 2;333 graphmode.style = KAPA_PLOT_POINTS; /* points */ 332 334 graphdata.color = KapaColorByName ("black"); 333 335 -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/fitsed.c
r39457 r40477 157 157 if (!GetGraph (&graphdata, &kapa, NULL)) return (FALSE); 158 158 SetLimitsRaw (wavecode, NULL, Nfilter, &graphdata); 159 graphdata.style = 2;160 graphdata.ptype = 2;159 graphdata.style = KAPA_PLOT_POINTS; /* points */ 160 graphdata.ptype = KAPA_POINT_CIRCLE_SOLID; 161 161 KapaClearSections (kapa); 162 162 magSection.name = strcreate ("mag"); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/gimages.c
r39347 r40477 214 214 if (PixelCoords) { 215 215 gprint (GP_LOG, "%3d %5d %s %6.1f %6.1f %20s %5d %2d %4.2f %6.3f %5.3f %5.3f %4x %7d\n", 216 Nfound, (int) i, image[i].name, X, Y, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal , image[i].dMcal, image[i].exptime, image[i].flags, image[i].imageID);216 Nfound, (int) i, image[i].name, X, Y, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].McalPSF, image[i].dMcal, image[i].exptime, image[i].flags, image[i].imageID); 217 217 } else { 218 218 XY_to_RD (&ra, &dec, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords); 219 219 gprint (GP_LOG, "%3d %5d %s %8.4f %8.4f %20s %5d %2d %4.2f %6.3f %5.3f %5.3f %4x %7d\n", 220 Nfound, (int) i, image[i].name, ra, dec, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal , image[i].dMcal, image[i].exptime, image[i].flags, image[i].imageID);220 Nfound, (int) i, image[i].name, ra, dec, date, image[i].nstar, image[i].photcode, image[i].secz, image[i].McalPSF, image[i].dMcal, image[i].exptime, image[i].flags, image[i].imageID); 221 221 } 222 222 sprintf (name, "IMAGEx:%d", Nfound); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/gstar.c
r39634 r40477 760 760 761 761 if (FULL_OUTPUT) { 762 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Mcal); 762 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].McalPSF); 763 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].McalAPER); 763 764 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Mflat); 764 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Map); 765 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Mkron); 765 Mrel = PhotRel (&catalog.measure[Nv], &catalog.average[k], &catalog.secfilt[k*Nsecfilt], MAG_CLASS_APER); 766 gprint (GP_LOG, "%6.3f ", Mrel); 767 Mrel = PhotRel (&catalog.measure[Nv], &catalog.average[k], &catalog.secfilt[k*Nsecfilt], MAG_CLASS_KRON); 768 gprint (GP_LOG, "%6.3f ", Mrel); 766 769 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].dMkron); 767 770 gprint (GP_LOG, "%5.1f ", pow(10.0, 0.4*catalog.measure[Nv].dt)); … … 960 963 print_double (NAN); 961 964 } else { 962 print_double_exp (secfilt[seq]. Mstdev);965 print_double_exp (secfilt[seq].sMpsfChp); 963 966 } 964 967 break; … … 1023 1026 print_double (NAN); 1024 1027 } else { 1025 print_double (secfilt[seq].M );1028 print_double (secfilt[seq].MpsfChp); 1026 1029 } 1027 1030 break; … … 1031 1034 print_double (NAN); 1032 1035 } else { 1033 print_double (secfilt[seq].dM );1036 print_double (secfilt[seq].dMpsfChp); 1034 1037 } 1035 1038 break; … … 1039 1042 print_double (NAN); 1040 1043 } else { 1041 print_double (secfilt[seq].Map );1044 print_double (secfilt[seq].MapChp); 1042 1045 } 1043 1046 break; … … 1047 1050 print_double (NAN); 1048 1051 } else { 1049 print_double (secfilt[seq].dMap );1052 print_double (secfilt[seq].dMapChp); 1050 1053 } 1051 1054 break; … … 1055 1058 print_double (NAN); 1056 1059 } else { 1057 print_double_exp (secfilt[seq].sMap );1060 print_double_exp (secfilt[seq].sMapChp); 1058 1061 } 1059 1062 break; … … 1063 1066 print_double (NAN); 1064 1067 } else { 1065 print_double_exp (secfilt[seq].dMap );1068 print_double_exp (secfilt[seq].dMapChp); 1066 1069 } 1067 1070 break; … … 1071 1074 print_double (NAN); 1072 1075 } else { 1073 print_double (secfilt[seq].Mkron );1076 print_double (secfilt[seq].MkronChp); 1074 1077 } 1075 1078 break; … … 1079 1082 print_double (NAN); 1080 1083 } else { 1081 print_double (secfilt[seq].dMkron );1084 print_double (secfilt[seq].dMkronChp); 1082 1085 } 1083 1086 break; … … 1087 1090 print_double (NAN); 1088 1091 } else { 1089 print_double_exp (secfilt[seq].sMkron );1092 print_double_exp (secfilt[seq].sMkronChp); 1090 1093 } 1091 1094 break; … … 1095 1098 print_double (NAN); 1096 1099 } else { 1097 print_double_exp (secfilt[seq].dMkron );1100 print_double_exp (secfilt[seq].dMkronChp); 1098 1101 } 1099 1102 break; -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/images.c
r37807 r40477 352 352 Xvec.Nelements = Yvec.Nelements = N; 353 353 if (N > 0) { 354 graphmode.style = 2; /* points */355 graphmode.ptype = 100; /* connect pairs of points */354 graphmode.style = KAPA_PLOT_POINTS; /* points */ 355 graphmode.ptype = KAPA_POINT_PAIR_CONNECT; /* connect pairs of points */ 356 356 graphmode.etype = 0; 357 357 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/imbox.c
r39926 r40477 156 156 Xvec.Nelements = Yvec.Nelements = Npts; 157 157 if (Npts > 0) { 158 graphmode.style = 2; /* points */159 graphmode.ptype = 100; /* connect pairs of points */158 graphmode.style = KAPA_PLOT_POINTS; /* points */ 159 graphmode.ptype = KAPA_POINT_PAIR_CONNECT; /* connect pairs of points */ 160 160 graphmode.etype = 0; 161 161 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/imdata.c
r39457 r40477 183 183 for (i = 0; i < catalog.Nmeasure; i++) { 184 184 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 185 vec[0].elements.Flt[N] = catalog.measure[i].Mcal ;185 vec[0].elements.Flt[N] = catalog.measure[i].McalPSF; 186 186 N++; 187 187 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/imdense.c
r39926 r40477 59 59 Xvec.Nelements = Yvec.Nelements = N; 60 60 if (N > 0) { 61 graphmode.style = 2; /* points */61 graphmode.style = KAPA_PLOT_POINTS; /* points */ 62 62 graphmode.etype = 0; 63 63 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/imlist.c
r39310 r40477 141 141 if (VERBOSE) { 142 142 gprint (GP_LOG, "%3lld %s %8lld %8.4f %8.4f %f %5d %2d %4.2f %5.3f %5.3f", 143 (long long) i, image[i].name, (long long) image[i].imageID, r, d, t, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal , image[i].dMcal);143 (long long) i, image[i].name, (long long) image[i].imageID, r, d, t, image[i].nstar, image[i].photcode, image[i].secz, image[i].McalPSF, image[i].dMcal); 144 144 145 145 if (showUR) { -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/imphot.c
r39233 r40477 64 64 for (x = 0; x < 100; x+=1.0, p++) { 65 65 // *p = applyMcal (&image[subset[0]], (fx*x), (fy*y)); 66 *p = image[subset[0]].Mcal ;66 *p = image[subset[0]].McalPSF; 67 67 } 68 68 } … … 71 71 for (j = 0; j < Nsubset; j++) { 72 72 i = subset[j]; 73 gprint (GP_ERR, "%s: %f\n", image[i].name, image[i].Mcal );73 gprint (GP_ERR, "%s: %f\n", image[i].name, image[i].McalPSF); 74 74 75 75 // XXX old code when we had the option of a 2D zero point model … … 77 77 switch (image[i].order) { 78 78 case 0: 79 gprint (GP_ERR, "%s: %d - %f\n", image[i].name, image[i].order, image[i].Mcal );79 gprint (GP_ERR, "%s: %d - %f\n", image[i].name, image[i].order, image[i].McalPSF); 80 80 break; 81 81 case 1: 82 gprint (GP_ERR, "%s: %d - %f, %d %d\n", image[i].name, image[i].order, image[i].Mcal , image[i].Mx, image[i].My);82 gprint (GP_ERR, "%s: %d - %f, %d %d\n", image[i].name, image[i].order, image[i].McalPSF, image[i].Mx, image[i].My); 83 83 break; 84 84 case 2: 85 gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d\n", image[i].name, image[i].order, image[i].Mcal , image[i].Mx, image[i].My, image[i].Mxx, image[i].Mxy, image[i].Myy);85 gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d\n", image[i].name, image[i].order, image[i].McalPSF, image[i].Mx, image[i].My, image[i].Mxx, image[i].Mxy, image[i].Myy); 86 86 break; 87 87 case 3: 88 gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal , image[i].Mx, image[i].My,88 gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d\n", image[i].name, image[i].order, image[i].McalPSF, image[i].Mx, image[i].My, 89 89 image[i].Mxx, image[i].Mxy, image[i].Myy, image[i].Mxxx, image[i].Mxxy, image[i].Mxyy, image[i].Myyy); 90 90 break; 91 91 case 4: 92 gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d, %d %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal , image[i].Mx, image[i].My,92 gprint (GP_ERR, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d, %d %d %d %d %d\n", image[i].name, image[i].order, image[i].McalPSF, image[i].Mx, image[i].My, 93 93 image[i].Mxx, image[i].Mxy, image[i].Myy, image[i].Mxxx, image[i].Mxxy, image[i].Mxyy, image[i].Myyy, 94 94 image[i].Mxxxx, image[i].Mxxxy, image[i].Mxxyy, image[i].Mxyyy, image[i].Myyyy); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/imstats.c
r37807 r40477 41 41 Xvec.elements.Flt[i] = image[i].secz; 42 42 if (Mcal) 43 Yvec.elements.Flt[i] = image[i].Mcal ;43 Yvec.elements.Flt[i] = image[i].McalPSF; 44 44 else 45 45 Yvec.elements.Flt[i] = image[i].dMcal; … … 47 47 gprint (GP_ERR, "%d %8.4f %8.4f %10d %6d %5.3f %6.3f %6.3f\n", 48 48 i, r, d, image[i].tzero, image[i].nstar, Xvec.elements.Flt[i], 49 image[i].Mcal , image[i].dMcal);49 image[i].McalPSF, image[i].dMcal); 50 50 } 51 51 if (AutoLimits) SetLimits (&Xvec, &Yvec, &graphmode); 52 52 53 graphmode.style = 2;53 graphmode.style = KAPA_PLOT_POINTS; /* points */ 54 54 graphmode.etype = 0; 55 55 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/init.c
r39602 r40477 3 3 int avextract PROTO((int, char **)); 4 4 int avmatch PROTO((int, char **)); 5 int avperiodogram PROTO((int, char **)); 6 int avperiodomatch PROTO((int, char **)); 5 7 int badimages PROTO((int, char **)); 6 8 int calextract PROTO((int, char **)); … … 67 69 {1, "avextract", avextract, "extract average data values"}, 68 70 {1, "avmatch", avmatch, "extract average data values matched to RA,DEC points"}, 71 {1, "avperiodogram", avperiodogram, "perform periodogram on objects based on restrictions"}, 72 {1, "avperiodomatch", avperiodomatch, "perform periodogram on objects based on ra,dec list"}, 69 73 {1, "badimages", badimages, "look for images with anomalous astrometry"}, 70 74 // {1, "calextract", calextract, "extract photometry calibration"}, -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/objectcoverage.c
r39457 r40477 203 203 if (catalog.secfilt[j*Nsecfilt+Nsec].Ncode < 2) { continue; } 204 204 205 invalid = ((catalog.secfilt[j*Nsecfilt + Nsec].M < 1.0) || (isnan(catalog.secfilt[j*Nsecfilt + Nsec].M)));205 invalid = ((catalog.secfilt[j*Nsecfilt + Nsec].MpsfChp < 1.0) || (isnan(catalog.secfilt[j*Nsecfilt + Nsec].MpsfChp))); 206 206 if (invalid) continue; 207 207 -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/paverage.c
r39457 r40477 81 81 return (FALSE); 82 82 } 83 graphmode.style = 2; /* set style topoints */83 graphmode.style = KAPA_PLOT_POINTS; /* points */ 84 84 graphmode.size = -1; /* point size determined by Zvec */ 85 85 graphmode.etype = 0; /* no errorbars */ … … 125 125 while (average[i].R > Rmax) average[i].R -= 360.0; 126 126 127 mag = secfilt[i*Nsecfilt+Nsec].M ;127 mag = secfilt[i*Nsecfilt+Nsec].MpsfChp; 128 128 Zvec[Npts] = MIN (1.0, MAX (0.01, (mag - Mz) / Mr)); 129 129 if (LimExclude && (Zvec[Npts] > 0.99)) continue; -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/pmeasure.c
r39457 r40477 154 154 return (FALSE); 155 155 } 156 graphmode.style = 2; /* set style topoints */156 graphmode.style = KAPA_PLOT_POINTS; /* points */ 157 157 graphmode.size = -1; /* point size determined by Zvec */ 158 158 graphmode.etype = 0; /* no errorbars */ -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/procks.c
r39457 r40477 111 111 Yvec.Nelements = Xvec.Nelements = N; 112 112 113 graphmode.style = 2; /* set style topoints */113 graphmode.style = KAPA_PLOT_POINTS; /* points */ 114 114 graphmode.etype = 0; /* no errorbars */ 115 115 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); … … 142 142 Yvec.Nelements = Xvec.Nelements = N; 143 143 144 graphmode.style = 2; /* set style topoints */145 graphmode.ptype = 100; /* connect pairs */144 graphmode.style = KAPA_PLOT_POINTS; /* points */ 145 graphmode.ptype = KAPA_POINT_PAIR_CONNECT; /* connect pairs of points */ 146 146 graphmode.etype = 0; /* no errorbars */ 147 147 -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/region_list.c
r33662 r40477 181 181 SkyList *skylist; 182 182 183 // the list of regions comes directly from a file 184 if (selection->list != NULL) { 185 skylist = SkyListLoadFile (selection->list); 186 return (skylist); 187 } 188 189 // all other options require sky to be set 190 if (!sky) { 191 gprint (GP_ERR, "CATDIR not set\n"); 192 return NULL; 193 } 194 183 195 /* determine region-file names */ 184 196 if (selection->name != NULL) { … … 186 198 return (skylist); 187 199 } 188 189 if (selection->list != NULL) {190 skylist = SkyListLoadFile (selection->list);191 return (skylist);192 }193 200 194 201 if (selection->useDisplay) { -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/remote.c
r39283 r40477 27 27 gprint (GP_ERR, " -skip-result : do not try to read from the result file\n"); 28 28 gprint (GP_ERR, "OR: remote -reload (uniquer)\n"); 29 gprint (GP_ERR, " (reloads the remote host results into vectors as if a parallel command were run)\n"); 29 30 gprint (GP_ERR, "OR: remote -get-results (uniquer)\n"); 31 gprint (GP_ERR, " (generates the list of remote result filenames and status variables)\n"); 32 gprint (GP_ERR, " (RESULT_FILE:i is the filenme, RESULT_STATUS:i is the dvo_client exit status)\n"); 30 33 return FALSE; 31 34 } -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/showtile.c
r39457 r40477 78 78 Xvec.Nelements = Yvec.Nelements = N; 79 79 if (N > 0) { 80 graphmode.style = 2; /* points */81 graphmode.ptype = 100; /* connect pairs of points */80 graphmode.style = KAPA_PLOT_POINTS; /* points */ 81 graphmode.ptype = KAPA_POINT_PAIR_CONNECT; /* connect pairs of points */ 82 82 graphmode.etype = 0; 83 83 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/simage.c
r37807 r40477 118 118 } 119 119 120 graphmode.style = 2;120 graphmode.style = KAPA_PLOT_POINTS; 121 121 graphmode.size = -1; 122 122 graphmode.etype = 0; -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/skycat.c
r39926 r40477 121 121 Xvec.Nelements = Yvec.Nelements = Npts; 122 122 if (Npts > 0) { 123 graphmode.style = 2; /* points */124 graphmode.ptype = 100; /* connect pairs of points */123 graphmode.style = KAPA_PLOT_POINTS; /* points */ 124 graphmode.ptype = KAPA_POINT_PAIR_CONNECT; /* connect pairs of points */ 125 125 graphmode.etype = 0; 126 126 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); -
branches/czw_branch/20170908/Ohana/src/opihi/dvo/skycoverage.c
r39233 r40477 330 330 break; 331 331 case MIN_MCAL: 332 V[ys*Nx + xs] = MIN(V[ys*Nx + xs], image[i].Mcal );332 V[ys*Nx + xs] = MIN(V[ys*Nx + xs], image[i].McalPSF); 333 333 break; 334 334 case MAX_MCAL: 335 V[ys*Nx + xs] = MAX(V[ys*Nx + xs], image[i].Mcal );335 V[ys*Nx + xs] = MAX(V[ys*Nx + xs], image[i].McalPSF); 336 336 break; 337 337 case MIN_TIME: { -
branches/czw_branch/20170908/Ohana/src/opihi/include/astro.h
r39610 r40477 47 47 double VectorFractionInterpolate (double *values, float fraction, int Npts); 48 48 49 int PlxSetMeanEpoch (double *R, double *D, double *T, double *Rmean, double *Dmean, double *Tmean, int *mask, int Ntotal);50 int PlxSetEpochPosition (PlxFitData *fitdata, double *R, double *D, double *dR, double *dD, double *T, int *mask, int Ntotal, Coords *coords, double Tmean);51 int PlxOutlierClip (PlxFitData *fitdata, int *mask, int Noutlier, float dPsigMax, Vector *dPvec, int VERBOSE);49 int PlxSetMeanEpoch (double *R, double *D, double *T, double *Rmean, double *Dmean, double *Tmean, opihi_int *mask, int Ntotal); 50 int PlxSetEpochPosition (PlxFitData *fitdata, double *R, double *D, double *dR, double *dD, double *T, opihi_int *mask, int Ntotal, Coords *coords, double Tmean); 51 int PlxOutlierClip (PlxFitData *fitdata, opihi_int *mask, int Noutlier, float dPsigMax, Vector *dPvec, int VERBOSE); 52 52 53 53 int PlxFitDataAlloc (PlxFitData *data, int N); -
branches/czw_branch/20170908/Ohana/src/opihi/include/data.h
r37807 r40477 50 50 float **buffers; 51 51 } MedImageType; 52 53 /*** typedef structs used by the Neural Network functions (nnet_*) ***/ 54 typedef struct { 55 char *name; 56 int Nlayer; // Nlayers = input layer + output layer + hidden layers 57 int *Nnodes; // number of nodes per layer 58 float **weight; // a matrix between each layer 59 float **biases; // a vector for each layer 60 61 float **zvalue; // a vector of z values for each layer (= w*input + b) 62 float **svalue; // a vector of s values for each layer (= sigmoid(z)) 63 float **sprime; // 64 float **delta; // 65 66 float ** Nabla_b; // a vector of Nabla_b values for each layer 67 float **dNabla_b; // a vector of Nabla_b values for each layer 68 69 float ** Nabla_w; // a matrix of Nabla_w values for each layer 70 float **dNabla_w; // a matrix of Nabla_w values for each layer 71 } Nnet; 52 72 53 73 void InitData (void); … … 162 182 /* starfuncs.c */ 163 183 double get_aperture_stats (Matrix *matrix, int X, int Y, int Npix, int Nborder, double max, int VERBOSE); 184 double get_box_stats (Matrix *matrix, int X, int Y, int dX, int dY, int Nborder, double max, int VERBOSE); 185 164 186 int set_rough_radii (double Ra, double Ri, double Ro); 165 187 int get_rough_star (float *data, int Nx, int Ny, int x, int y, opihi_flt *xc, opihi_flt *yc, opihi_flt *sx, opihi_flt *sy, opihi_flt *sxy, opihi_flt *zs, opihi_flt *zp, opihi_flt *sk); … … 227 249 int GetKapaChannelFromString (char *string); 228 250 251 /*** Neural Network functions (nnet_*) ***/ 252 253 // in lib.data/nnet.c: 254 void InitNnets (); 255 void InitNnetData (Nnet *nnet, char *name, int Nlayer); 256 257 void FreeNnets (); 258 void FreeNnetData (Nnet *nnet); 259 260 Nnet *GetNnet (int where); 261 Nnet *FindNnet (char *name); 262 Nnet *CreateNnet (char *name, int Nlayer); 263 void CreateNnetData (Nnet *nnet, int LargeWeightInit); 264 265 void PrintNnet (Nnet *nnet); 266 int DeleteNnet (Nnet *nnet); 267 void ListNnets (); 268 269 // in cmd.data/nnet.c: 270 int nnet_command (int argc, char **argv); 271 272 // in cmd.data/nnet_commands.c: 273 int nnet_init (int argc, char **argv); 274 int nnet_list (int argc, char **argv); 275 int nnet_delete (int argc, char **argv); 276 int nnet_create (int argc, char **argv); 277 int nnet_set (int argc, char **argv); 278 int nnet_get (int argc, char **argv); 279 int nnet_read (int argc, char **argv); 280 int nnet_write (int argc, char **argv); 281 int nnet_print (int argc, char **argv); 282 283 // in cmd.data/nnet_train.c: 284 int nnet_train (int argc, char **argv); 285 void nnet_feedforward (Nnet *nnet); 286 287 // in cmd.data/nnet_apply.c: 288 int nnet_apply (int argc, char **argv); 289 229 290 # endif -
branches/czw_branch/20170908/Ohana/src/opihi/include/dvoshell.h
r39569 r40477 41 41 char *HOSTDIR; 42 42 char *RESULT_FILE; 43 44 typedef struct { 45 int Nmeasure; 46 int Nperiods; 47 opihi_flt *period; 48 opihi_flt *power; 49 double P50; 50 double R50; 51 double R90; 52 } PeriodogramResult; 53 54 /*** Periodogram functions (avperiodogram and avperiodomatch) ***/ 55 void PeriodogramResultFree (PeriodogramResult *result); 56 void PeriodogramResultSave (PeriodogramResult *result, char *extname, FILE *foutput, Average *average); 57 void PeriodogramSetOptions (float minimumPeriod, float maximumPeriod); 58 PeriodogramResult *PeriodogramRawFloatingMean (opihi_flt *time, opihi_flt *flux, opihi_flt *dflux, int Npts); 43 59 44 60 /*** dvo prototypes ***/ -
branches/czw_branch/20170908/Ohana/src/opihi/include/pantasks.h
r36623 r40477 8 8 9 9 # define DEBUG 0 10 11 typedef int IDtype; 10 12 11 13 typedef enum { … … 133 135 134 136 typedef struct { 135 intJobID; /* internal ID for job */137 IDtype JobID; /* internal ID for job */ 136 138 int pid; /* external ID for job */ 137 139 … … 204 206 void UpdateTaskTimerStats (Task *task, int mode, double dtime); 205 207 206 intNextJobID (void);208 IDtype NextJobID (void); 207 209 void InitJobIDs (void); 208 210 void FreeJobIDs (void); 209 int FreeJobID (int ID);210 211 211 212 void InitJobs (void); … … 213 214 214 215 Job *NextJob (void); 215 Job *FindJob ( intJobID);216 Job *FindJob (IDtype JobID); 216 217 void ListJobs (void); 217 218 Job *CreateJob (Task *task); … … 234 235 int SubmitControllerJob (Job *job); 235 236 int DeleteControllerJob (Job *job); 236 Job *FindControllerJob ( intJobID);237 Job *FindControllerJob (IDtype JobID); 237 238 int StartController (void); 238 239 int ControllerCommand (char *command, char *response, IOBuffer *buffer); -
branches/czw_branch/20170908/Ohana/src/opihi/lib.data/Makefile
r39242 r40477 20 20 $(SDIR)/fft.$(ARCH).o \ 21 21 $(SDIR)/svdcmp.$(ARCH).o \ 22 $(SDIR)/svdcmp_bond_new.$(ARCH).o \22 $(SDIR)/svdcmp_bond_new.$(ARCH).o \ 23 23 $(SDIR)/bracket.$(ARCH).o \ 24 24 $(SDIR)/spline.$(ARCH).o \ … … 27 27 $(SDIR)/mrqmin.$(ARCH).o \ 28 28 $(SDIR)/mrq2dmin.$(ARCH).o \ 29 $(SDIR)/nnet.$(ARCH).o \ 29 30 $(SDIR)/precess.$(ARCH).o \ 30 31 $(SDIR)/starfuncs.$(ARCH).o \ -
branches/czw_branch/20170908/Ohana/src/opihi/lib.data/gaussian.c
r38986 r40477 26 26 if (Ngaussint == Nbin) return; 27 27 28 long A = time(NULL);29 srand48(A);28 // long A = time(NULL); 29 // srand48() is called by startup 30 30 31 31 Ngaussint = Nbin; -
branches/czw_branch/20170908/Ohana/src/opihi/lib.data/graphtools.c
r38153 r40477 10 10 if (xvec != NULL) { 11 11 if (xvec->type == OPIHI_FLT) { 12 maxX = DBL_MIN;12 maxX = -DBL_MAX; 13 13 minX = DBL_MAX; 14 14 for (i = 0; i < xvec[0].Nelements; i++) { … … 33 33 if (yvec != NULL) { 34 34 if (yvec->type == OPIHI_FLT) { 35 maxY = DBL_MIN;35 maxY = -DBL_MAX; 36 36 minY = DBL_MAX; 37 37 for (i = 0; i < yvec[0].Nelements; i++) { -
branches/czw_branch/20170908/Ohana/src/opihi/lib.data/starfuncs.c
r36679 r40477 101 101 } 102 102 103 double get_box_stats (Matrix *matrix, int X, int Y, int dX, int dY, int Nborder, double max, int VERBOSE) { 104 105 double *ring; 106 double x, y, x2, y2, xy, I, sky, FWHMx, FWHMy, value, mag, Sxy; 107 int i, j, n, Nring, Nmax; 108 double Npts, gain, dsky2, dmag, peak, offset; 109 char *string; 110 111 string = get_variable ("GAIN"); 112 if (string == (char *) NULL) { 113 gprint (GP_ERR, "assuming a value of 1.0\n"); 114 gain = 1.0; 115 } else { 116 gain = atof (string); 117 } 118 Nborder = MAX (1, Nborder); 119 Nborder = MIN (1000, Nborder); 120 121 int dX2 = (int)(0.5*dX); 122 int dY2 = (int)(0.5*dY); 123 dX = 2 * dX2 + 1; 124 dY = 2 * dY2 + 1; 125 126 Nring = 2*Nborder*(dX + 2*Nborder) + 2*Nborder*(dY + 2*Nborder); 127 ALLOCATE (ring, double, Nring); 128 bzero (ring, sizeof(double)*Nring); 129 130 // get the pixels in the border regions: 131 // XXX gfits_get_matrix_value returns 0 for out-of-bounds pixels, but should return NAN 132 // and they should be skipped 133 n = 0; 134 for (j = 0; j < Nborder; j++) { 135 for (i = X - dX2 - Nborder; i < X + dX2 + Nborder + 1; i++) { 136 value = gfits_get_matrix_value (matrix, i, (int)(Y - dY2 - j)); 137 if (isfinite(value)) { ring[n] = value; n++; } 138 value = gfits_get_matrix_value (matrix, i, (int)(Y + dY2 + j)); 139 if (isfinite(value)) { ring[n] = value; n++; } 140 } 141 for (i = Y - dY2; i < Y + dY2 + 1; i++) { 142 value = gfits_get_matrix_value (matrix, (int)(X - dX2 - j), i); 143 if (isfinite(value)) { ring[n] = value; n++; } 144 value = gfits_get_matrix_value (matrix, (int)(X + dX2 + j), i); 145 if (isfinite(value)) { ring[n] = value; n++; } 146 } 147 } 148 Nring = n; 149 dsort (ring, Nring); 150 for (Npts = sky = dsky2 = 0, i = 0.25*Nring; i < 0.75*Nring; i++, Npts += 1.0) { 151 sky += ring[i]; 152 dsky2 += ring[i]*ring[i]; 153 } 154 sky = sky / Npts; 155 dsky2 = dsky2 / Npts - sky*sky; 156 free (ring); 157 158 float dx, dy; 159 160 peak = 0; 161 Npts = Nmax = 0; 162 x = y = x2 = y2 = xy = I = 0; 163 for (i = X - dX2; i < X + dX2 + 1; i++) { 164 for (j = Y - dY2; j < Y + dY2 + 1; j++) { 165 value = gfits_get_matrix_value (matrix, i, j); 166 if (!isfinite(value)) continue; 167 offset = value - sky; 168 dx = i - X; 169 dy = j - Y; 170 x += dx*offset; 171 y += dy*offset; 172 x2 += dx*dx*offset; 173 y2 += dy*dy*offset; 174 xy += dx*dy*offset; 175 I += offset; 176 Npts ++; 177 if (value > max) { 178 Nmax ++; 179 } 180 if (value > peak) peak = value; 181 } 182 } 183 184 x = x / I; 185 y = y / I; 186 FWHMx = 2.355*sqrt (fabs(x2 / I - x*x)); 187 FWHMy = 2.355*sqrt (fabs(y2 / I - y*y)); 188 Sxy = xy / I - x*y; 189 mag = -2.5*log10(I); 190 191 // flux_error = sqrt( I + Npts*dsky2 ) 192 // dmag = 1.086 * flux_error / flux 193 dmag = 1.086 * sqrt (fabs(I + Npts*dsky2)) / (gain * I); 194 x = x + X; 195 y = y + Y; 196 197 set_variable ("Xg", x); 198 set_variable ("Yg", y); 199 set_variable ("SXg", FWHMx); 200 set_variable ("SYg", FWHMy); 201 set_variable ("SXYg", Sxy); 202 set_variable ("Sg", sky); 203 set_variable ("dSg", sqrt (fabs (dsky2))); 204 set_variable ("Zg", mag); 205 set_variable ("dZg", dmag); 206 set_variable ("Zcg", I); 207 set_variable ("Zpk", peak); 208 set_int_variable ("Nsat", Nmax); 209 set_int_variable ("Npts", Npts); 210 211 if (VERBOSE) gprint (GP_LOG, "%f %f %f %f %f %f %f %f\n", x, y, FWHMx, FWHMy, sky, I, mag, dmag); 212 213 return (mag); 214 215 } 216 103 217 static double Raper = 5; 104 218 static double Rinner = 10; … … 171 285 off = j*Nx; 172 286 for (i = Xs; i < Xe; i++) { 287 if (!isfinite(data[i+off])) continue; 173 288 sky[Nsky] = data[i+off]; 174 289 Nsky ++; … … 180 295 off = j*Nx; 181 296 for (i = Xs; i < Xe; i++) { 297 if (!isfinite(data[i+off])) continue; 182 298 sky[Nsky] = data[i+off]; 183 299 Nsky ++; … … 191 307 off = j*Nx; 192 308 for (i = Xs; i < Xe; i++) { 309 if (!isfinite(data[i+off])) continue; 193 310 sky[Nsky] = data[i+off]; 194 311 Nsky ++; … … 200 317 off = j*Nx; 201 318 for (i = Xs; i < Xe; i++) { 319 if (!isfinite(data[i+off])) continue; 202 320 sky[Nsky] = data[i+off]; 203 321 Nsky ++; … … 227 345 rad2 = SQ(Xc) + SQ(Yc); 228 346 if (rad2 > Ro2) continue; 347 // if (!isfinite(data[i+off])) continue; 229 348 value = data[i+off] - fsky; 230 349 Sx += Xc*value; -
branches/czw_branch/20170908/Ohana/src/opihi/lib.shell/VectorIO.c
r39457 r40477 41 41 for (j = 0; j < Nvec; j++) { 42 42 // if the format is not defined, just use the native byte-widths 43 tformat[2*j + 0] = (vec[j][0].type == OPIHI_FLT) ? 'D' : ' J';43 tformat[2*j + 0] = (vec[j][0].type == OPIHI_FLT) ? 'D' : 'K'; // this depends on opihi_int == int64_t for Int 44 44 tformat[2*j + 1] = 0; 45 45 } … … 60 60 for (j = 0; j < Nvec; j++) { 61 61 if (vec[j][0].type == OPIHI_FLT) { 62 gfits_set_bintable_column_reformat (theader, ftable, vec[j][0].name, "double", vec[j][0].elements.Flt, vec[j][0].Nelements, nativeOrder);62 gfits_set_bintable_column_reformat (theader, ftable, vec[j][0].name, "double", vec[j][0].elements.Flt, vec[j][0].Nelements, nativeOrder); 63 63 } else { 64 gfits_set_bintable_column_reformat (theader, ftable, vec[j][0].name, "int", vec[j][0].elements.Int, vec[j][0].Nelements, nativeOrder); 64 // gfits_set_bintable_column_reformat (theader, ftable, vec[j][0].name, "int", vec[j][0].elements.Int, vec[j][0].Nelements, nativeOrder); 65 gfits_set_bintable_column_reformat (theader, ftable, vec[j][0].name, "int64_t", vec[j][0].elements.Int, vec[j][0].Nelements, nativeOrder); 65 66 } 66 67 } … … 328 329 ASSIGN_DATA(short, short, Int); 329 330 ASSIGN_DATA(int, int, Int); 330 ASSIGN_DATA(int64_t, int64_t, Flt); // int64_t has a problem: Int is too small, Flt is wrong precision 331 ASSIGN_DATA(int64_t, int64_t, Int); // XXX this works if opihi_int is assigned to int64_t 332 //ASSIGN_DATA(int64_t, int64_t, Flt); // int64_t has a problem: Int is too small, Flt is wrong precision 331 333 ASSIGN_DATA(float, float, Flt); 332 334 ASSIGN_DATA(double, double, Flt); … … 353 355 ASSIGN_DATA_TRANSPOSE(short, short, Int); 354 356 ASSIGN_DATA_TRANSPOSE(int, int, Int); 355 ASSIGN_DATA_TRANSPOSE(int64_t, int64_t, Flt); 357 ASSIGN_DATA_TRANSPOSE(int64_t, int64_t, Int); 358 //ASSIGN_DATA_TRANSPOSE(int64_t, int64_t, Flt); // see above comment 356 359 ASSIGN_DATA_TRANSPOSE(float, float, Flt); 357 360 ASSIGN_DATA_TRANSPOSE(double, double, Flt); -
branches/czw_branch/20170908/Ohana/src/opihi/lib.shell/check_stack.c
r38062 r40477 48 48 Nz = stack[i].buffer[0].matrix.Naxis[2]; 49 49 } 50 if ((Nx != stack[i].buffer[0].matrix.Naxis[0]) &&51 (Ny != stack[i].buffer[0].matrix.Naxis[1]) &&50 if ((Nx != stack[i].buffer[0].matrix.Naxis[0]) || 51 (Ny != stack[i].buffer[0].matrix.Naxis[1]) | 52 52 (Nz != stack[i].buffer[0].matrix.Naxis[2])) { 53 53 push_error ("dimensions don't match"); -
branches/czw_branch/20170908/Ohana/src/opihi/lib.shell/convert_to_RPN.c
r39558 r40477 120 120 Nop_stack ++; 121 121 break; 122 case ST_UNARY:123 122 case ST_BINARY: 124 123 case ST_TRINARY: … … 139 138 Nop_stack ++; 140 139 break; 140 case ST_UNARY: 141 141 case ST_LEFT: 142 142 /* push operator on OP stack */ -
branches/czw_branch/20170908/Ohana/src/opihi/lib.shell/dvomath.c
r39457 r40477 29 29 unsigned int Ncstack; 30 30 cstack = isolate_elements (argc, argv, &Ncstack); 31 32 // for (i = 0; i < Ncstack; i++) { 33 // fprintf (stderr, "%d : %s\n", i, cstack[i]); 34 // } 31 35 32 36 /* generate RPN stack from cstack arguments */ … … 82 86 } else { 83 87 if (stack[0].type == ST_SCALAR_INT) { 84 sprintf (outname, "%d", stack[0].IntValue);88 sprintf (outname, OPIHI_INT_FMT, stack[0].IntValue); 85 89 } else { 86 90 sprintf (outname, "%.12g", stack[0].FltValue); -
branches/czw_branch/20170908/Ohana/src/opihi/lib.shell/evaluate_stack.c
r40207 r40477 89 89 } 90 90 if (tmp_stack.type == ST_SCALAR_INT) { 91 gprint (GP_ERR, "---> %d", tmp_stack.IntValue);91 gprint (GP_ERR, "---> "OPIHI_INT_FMT" ", tmp_stack.IntValue); 92 92 } 93 93 if (tmp_stack.type == ST_SCALAR_FLT) { … … 110 110 111 111 if (i < 3) { /* need two variables to operate on */ 112 snprintf (line, 512, "syntax error: trinary operator without three operands: %s\n ", stack[i].name);112 snprintf (line, 512, "syntax error: trinary operator without three operands: %s\n(Note that the : in a trinary operation must be protected by spaces", stack[i].name); 113 113 push_error (line); 114 114 clear_stack (&tmp_stack); … … 124 124 125 125 /* there are no valid unary string operators */ 126 snprintf (line, 512, "invalid operands for trinary operator %s (mismatch types?) ", stack[i].name);126 snprintf (line, 512, "invalid operands for trinary operator %s (mismatch types?)\n(Note that the : in a trinary operation must be protected by spaces)", stack[i].name); 127 127 push_error (line); 128 128 clear_stack (&tmp_stack); … … 131 131 got_three_op: 132 132 if (!status) { 133 snprintf (line, 512, "syntax error: invalid operand for trinary operation: %s or %s or %s\n ", stack[i-1].name, stack[i-2].name, stack[i-3].name);133 snprintf (line, 512, "syntax error: invalid operand for trinary operation: %s or %s or %s\n(Note that the : in a trinary operation must be protected by spaces)", stack[i-1].name, stack[i-2].name, stack[i-3].name); 134 134 push_error (line); 135 135 clear_stack (&tmp_stack); … … 186 186 got_two_op: 187 187 if (!status) { 188 snprintf (line, 512, "syntax error: invalid operand for binary operation: %s or %s\n", stack[i-1].name, stack[i-2].name); 188 // we are guaranteed to have stack[i-1] and stack[i-2] since i >= 2 (above) 189 char tmpvector[] = "Temporary Vector"; 190 char tmpmatrix[] = "Temporary Matrix"; 191 192 char *name1 = NULL; 193 if (stack[i-1].name) { 194 name1 = stack[i-1].name; 195 } else { 196 if (stack[i-1].type == ST_VECTOR_TMP) name1 = tmpvector; 197 if (stack[i-1].type == ST_MATRIX_TMP) name1 = tmpmatrix; 198 } 199 char *name2 = NULL; 200 if (stack[i-2].name) { 201 name2 = stack[i-2].name; 202 } else { 203 if (stack[i-2].type == ST_VECTOR_TMP) name2 = tmpvector; 204 if (stack[i-2].type == ST_MATRIX_TMP) name2 = tmpmatrix; 205 } 206 207 snprintf (line, 512, "syntax error: invalid operand for binary operation: %s or %s\n", name1, name2); 189 208 push_error (line); 209 190 210 int isTrinary = TRUE; 191 211 isTrinary = isTrinary && (i >= 2); … … 199 219 push_error (line); 200 220 } 221 201 222 clear_stack (&tmp_stack); 202 223 return (FALSE); -
branches/czw_branch/20170908/Ohana/src/opihi/lib.shell/parse.c
r33662 r40477 145 145 /* simple variable assignment */ 146 146 /* dvomath returns a new string, or NULL, with the result of the expression */ 147 /* if dvomath returns NULL, the expression was not a math operation: treat as a string */ 147 148 val = dvomath (1, &V1, &size, 0); 148 149 if (val == NULL) { 149 150 while (OHANA_WHITESPACE (*V1)) V1++; 150 151 val = strcreate (V1); 152 init_error (); 151 153 } 152 154 // save the result … … 245 247 vec[0].elements.Flt[Nx] = atof (val); 246 248 } else { 247 vec[0].elements.Int[Nx] = atol (val);249 vec[0].elements.Int[Nx] = atoll (val); 248 250 } 249 251 } -
branches/czw_branch/20170908/Ohana/src/opihi/lib.shell/stack_math.c
r40019 r40477 599 599 } 600 600 601 // the vector is applied to each column (currently only valid for 2D matrix)601 // the vector is applied to each ROW (currently only valid for 2D matrix), e.g.: M[20,10] * X[20] -> M'[20,10] where M'[2,1] = M[2,1] * X[2] 602 602 int MV_binary (StackVar *OUT, StackVar *V1, StackVar *V2, char *op) { 603 603 … … 607 607 Nx = V1[0].buffer[0].matrix.Naxis[0]; 608 608 Ny = V1[0].buffer[0].matrix.Naxis[1]; 609 if (Ny != V2[0].vector[0].Nelements) { 610 push_error ("dimension mismatch"); 609 if (Nx != V2[0].vector[0].Nelements) { 610 snprintf (line, 512, "error: matrix OP vector matrix dimensions do not match: (%d x %d) OP %d", Nx, Ny, V2[0].vector[0].Nelements); 611 push_error (line); 611 612 return (FALSE); 612 613 } … … 628 629 # define MV_FUNC(OP) { \ 629 630 if (V2->vector->type == OPIHI_FLT) { \ 630 opihi_flt *M2 = V2[0].vector[0].elements.Flt;\631 for (i = 0; i < Ny; i++, M2++) {\632 for (j = 0; j < Nx; j++, out++, M1++ ) {\631 for (i = 0; i < Ny; i++) { \ 632 opihi_flt *M2 = V2[0].vector[0].elements.Flt; \ 633 for (j = 0; j < Nx; j++, out++, M1++, M2++) { \ 633 634 *out = OP; \ 634 635 } \ … … 637 638 } \ 638 639 if (V2->vector->type != OPIHI_FLT) { \ 639 opihi_int *M2 = V2[0].vector[0].elements.Int;\640 for (i = 0; i < Ny; i++, M2++) {\641 for (j = 0; j < Nx; j++, out++, M1++ ) {\640 for (i = 0; i < Ny; i++) { \ 641 opihi_int *M2 = V2[0].vector[0].elements.Int; \ 642 for (j = 0; j < Nx; j++, out++, M1++, M2++) { \ 642 643 *out = OP; \ 643 644 } \ … … 695 696 } 696 697 697 // the vector is applied to each row (currently only valid for 2D matrix) 698 // the vector is applied to each COLUMN (currently only valid for 2D matrix) 699 // e.g.: X[10] * M[20,10] -> M'[20,10] where M'[2,1] = X[1] * M[2,1] 698 700 int VM_binary (StackVar *OUT, StackVar *V1, StackVar *V2, char *op) { 699 701 … … 703 705 Nx = V2[0].buffer[0].matrix.Naxis[0]; 704 706 Ny = V2[0].buffer[0].matrix.Naxis[1]; 705 if (Nx != V1[0].vector[0].Nelements) { 707 if (Ny != V1[0].vector[0].Nelements) { 708 snprintf (line, 512, "error: vector OP matrix dimensions do not match: %d OP (%d x %d)", V1[0].vector[0].Nelements, Nx, Ny); 709 push_error (line); 706 710 return (FALSE); 707 711 } … … 722 726 # define VM_FUNC(OP) { \ 723 727 if (V1->vector->type == OPIHI_FLT) { \ 724 for (i = 0; i < Ny; i++) {\725 opihi_flt *M1 = V1[0].vector[0].elements.Flt;\726 for (j = 0; j < Nx; j++, out++, M 1++, M2++) { \728 opihi_flt *M1 = V1[0].vector[0].elements.Flt; \ 729 for (i = 0; i < Ny; i++, M1++) { \ 730 for (j = 0; j < Nx; j++, out++, M2++) { \ 727 731 *out = OP; \ 728 732 } \ … … 731 735 } \ 732 736 if (V1->vector->type != OPIHI_FLT) { \ 733 for (i = 0; i < Ny; i++) {\734 opihi_int *M1 = V1[0].vector[0].elements.Int;\735 for (j = 0; j < Nx; j++, out++, M 1++, M2++) { \737 opihi_int *M1 = V1[0].vector[0].elements.Int; \ 738 for (i = 0; i < Ny; i++, M1++) { \ 739 for (j = 0; j < Nx; j++, out++, M2++) { \ 736 740 *out = OP; \ 737 741 } \ -
branches/czw_branch/20170908/Ohana/src/opihi/mana/findrowpeaks.c
r2938 r40477 23 23 24 24 for (i = 1; i < Nrow - 1; i++) { 25 if (!isfinite(row[i])) continue; // ignore NAN values 25 26 if (row[i] < threshold) continue; 26 27 if (row[i] < row[i-1]) continue; -
branches/czw_branch/20170908/Ohana/src/opihi/pantasks/CheckController.c
r39476 r40477 7 7 8 8 char *p, *q; 9 int i, Njobs, status, JobID; 9 int i, Njobs, status; 10 IDtype JobID; 10 11 Job *job; 11 12 IOBuffer buffer; -
branches/czw_branch/20170908/Ohana/src/opihi/pantasks/JobIDOps.c
r23557 r40477 1 1 # include "pantasks.h" 2 2 3 # define MAX_N_JOBS 100004 static char *JobIDList; 5 static int JobIDPtr;3 # define MAX_N_JOBS 0x80000000 4 5 static IDtype JobIDMax = 0; 6 6 7 7 void InitJobIDs () { 8 9 JobIDPtr = 0; 10 ALLOCATE (JobIDList, char, MAX_N_JOBS); 11 bzero (JobIDList, MAX_N_JOBS*sizeof(char)); 8 JobIDMax = 0; 12 9 } 13 10 14 void FreeJobIDs () { 15 free (JobIDList); 11 void FreeJobIDs () { } 12 13 /* return next unique ID, recycle every MAX_N_JOBS */ 14 IDtype NextJobID () { 15 16 JobIDMax ++; 17 if (JobIDMax >= MAX_N_JOBS) { 18 gprint (GP_ERR, "ERROR: too many jobs spawned: %d, aborting\n", JobIDMax); 19 abort(); 20 } 21 22 return (JobIDMax); 16 23 } 17 24 18 /* return next unique ID, recycle every MAX_N_JOBS */ 19 int NextJobID () { 20 21 int Ntry; 22 23 JobIDPtr ++; 24 if (JobIDPtr >= MAX_N_JOBS) JobIDPtr = 0; 25 26 Ntry = 0; 27 while (JobIDList[JobIDPtr]) { 28 Ntry ++; 29 JobIDPtr ++; 30 if (JobIDPtr >= MAX_N_JOBS) JobIDPtr = 0; 31 if (Ntry == MAX_N_JOBS) return (-1); 32 } 33 JobIDList[JobIDPtr] = TRUE; 34 return (JobIDPtr); 35 } 36 37 int FreeJobID (int JobID) { 38 39 if (JobID < 0) return (FALSE); 40 if (JobID >= MAX_N_JOBS) return (FALSE); 41 42 JobIDList[JobID] = FALSE; 43 return (TRUE); 44 } 25 /* I am going to rework the jobID so that it just grows. no need to ever free them 26 as an int, that allows 2^31 jobs (2e9 jobs) */ -
branches/czw_branch/20170908/Ohana/src/opihi/pantasks/JobOps.c
r38559 r40477 41 41 42 42 /* return job with given ID */ 43 Job *FindJob ( intJobID) {43 Job *FindJob (IDtype JobID) { 44 44 45 45 int i; … … 55 55 56 56 /* return job with given controller Job ID */ 57 Job *FindControllerJob ( intJobID) {57 Job *FindControllerJob (IDtype JobID) { 58 58 59 59 int i; … … 82 82 gprint (GP_LOG, " Jobs in Pantasks Queue\n"); 83 83 for (i = 0; i < Njobs; i++) { 84 gprint (GP_LOG, " %4d % 6d: %-25s %10s %20s\n", Njobs, jobs[i][0].JobID, jobs[i][0].task[0].name, JobStateToString(jobs[i][0].state), jobs[i][0].argv[0]);84 gprint (GP_LOG, " %4d %8d: %-25s %10s %20s\n", Njobs, jobs[i][0].JobID, jobs[i][0].task[0].name, JobStateToString(jobs[i][0].state), jobs[i][0].argv[0]); 85 85 } 86 86 … … 97 97 98 98 job[0].JobID = NextJobID (); 99 100 // this should not happen; abort? 99 101 if (job[0].JobID < 0) { 100 102 free (job); … … 165 167 if (job == NULL) return; 166 168 167 FreeJobID (job[0].JobID);168 169 169 for (i = 0; i < job[0].argc; i++) { 170 170 free (job[0].argv[i]); -
branches/czw_branch/20170908/Ohana/src/opihi/pantasks/delete.c
r23530 r40477 4 4 5 5 Job *job; 6 intJobID;6 IDtype JobID; 7 7 8 8 if (argc != 3) goto usage; -
branches/czw_branch/20170908/Ohana/src/opihi/pantasks/kill.c
r23530 r40477 4 4 5 5 Job *job; 6 intJobID;6 IDtype JobID; 7 7 8 8 if (argc < 2) { … … 10 10 return (FALSE); 11 11 } 12 JobID = ato i(argv[1]);12 JobID = atoll (argv[1]); 13 13 14 14 JobTaskLock(); -
branches/czw_branch/20170908/Ohana/src/opihi/pantasks/test/nice_remote.sh
r32632 r40477 10 10 periods -timeout 20 11 11 active true 12 npending 5 12 npending 50 13 13 14 14 stdout tmp.txt … … 44 44 periods -timeout 20 45 45 active true 46 npending 5 46 npending 50 47 47 48 48 stdout tmp.txt
Note:
See TracChangeset
for help on using the changeset viewer.
