IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 7, 2008, 3:31:01 PM (18 years ago)
Author:
eugene
Message:

big update from eam_branch_20081124 with updates to Opihi math

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/cmd.astro/czplot.c

    r19823 r20936  
    33int czplot (int argc, char **argv) {
    44 
    5   int i, kapa, Npts;
     5  int i, kapa;
    66  double min, range, Rmin, Rmax;
    7   float *in, *out, *r, *d, *x, *y;
     7  opihi_flt *out, *r, *d, *x, *y;
    88  Vector Xvec, Yvec, Zvec, *xvec, *yvec, *zvec;
    99  Graphdata graphmode;
     
    2626  if ((zvec = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return (FALSE);
    2727
     28  REQUIRE_VECTOR_FLT (xvec, FALSE);
     29  REQUIRE_VECTOR_FLT (yvec, FALSE);
     30  REQUIRE_VECTOR_FLT (zvec, FALSE);
     31
    2832  if (xvec[0].Nelements != yvec[0].Nelements) {
    2933    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[2]);
     
    3438    return (FALSE);
    3539  }
    36   Xvec.Nelements = xvec[0].Nelements;
    37   Yvec.Nelements = xvec[0].Nelements;
    38   Zvec.Nelements = zvec[0].Nelements;
    39   ALLOCATE (Xvec.elements, float, Xvec.Nelements);
    40   ALLOCATE (Yvec.elements, float, Yvec.Nelements);
    41   ALLOCATE (Zvec.elements, float, Zvec.Nelements);
     40  SetVector (&Xvec, OPIHI_FLT, xvec[0].Nelements);
     41  SetVector (&Yvec, OPIHI_FLT, xvec[0].Nelements);
     42  SetVector (&Zvec, OPIHI_FLT, xvec[0].Nelements);
    4243 
    43   r   = xvec[0].elements;
    44   d   = yvec[0].elements;
    45   in  = zvec[0].elements;
    46   x   = Xvec.elements;
    47   y   = Yvec.elements;
    48   out = Zvec.elements;
    49   for (i = 0; i < Zvec.Nelements; i++, in++, out++, r++, d++, x++, y++) {
    50     *out = MIN (1.0, MAX (0.01, (*in - min) / range));
     44  r   = xvec[0].elements.Flt;
     45  d   = yvec[0].elements.Flt;
     46  x   = Xvec.elements.Flt;
     47  y   = Yvec.elements.Flt;
     48  for (i = 0; i < Zvec.Nelements; i++, r++, d++, x++, y++) {
    5149    *r = ohana_normalize_angle (*r);
    52     fRD_to_XY (x, y, *r, *d, &graphmode.coords);
     50    RD_to_XY (x, y, *r, *d, &graphmode.coords);
     51  }
     52
     53  out = Zvec.elements.Flt;
     54  if (zvec->type == OPIHI_FLT) {
     55    opihi_flt *in  = zvec[0].elements.Flt;
     56    for (i = 0; i < Zvec.Nelements; i++, in++, out++) {
     57      *out = MIN (1.0, MAX (0.01, (*in - min) / range));
     58    }
     59  } else {
     60    opihi_int *in  = zvec[0].elements.Int;
     61    for (i = 0; i < Zvec.Nelements; i++, in++, out++) {
     62      *out = MIN (1.0, MAX (0.01, (*in - min) / range));
     63    }
    5364  }
    5465
     
    5667  graphmode.size = -1; /* point size determined by Zvec */
    5768  graphmode.etype = 0;
    58   Npts = Xvec.Nelements;
    59   PlotVectorTriplet (kapa, Npts, Xvec.elements, Yvec.elements, Zvec.elements, &graphmode);
     69  PlotVectorTriplet (kapa, &Xvec, &Yvec, &Zvec, &graphmode);
    6070
    61   free (Xvec.elements);
    62   free (Yvec.elements);
    63   free (Zvec.elements);
     71  free (Xvec.elements.Flt);
     72  free (Yvec.elements.Flt);
     73  free (Zvec.elements.Flt);
    6474
    6575  return (TRUE);
Note: See TracChangeset for help on using the changeset viewer.