IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 29, 2015, 6:52:41 AM (11 years ago)
Author:
eugene
Message:

merge changes from ipp-20150112

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/Ohana

    • Property svn:mergeinfo deleted
  • trunk/Ohana/src/opihi/cmd.data/zplot.c

    r34613 r38062  
    44 
    55  char *outname = NULL;
    6   int i, kapa, valid, size;
     6  int i, N, kapa, valid, size;
    77  opihi_flt *out;
    88  double min, range;
    99  Graphdata graphmode;
    10   Vector *xvec, *yvec, *zvec, Zvec;
     10  Vector *xvec, *yvec, *zvec, *dxmvec, *dxpvec, *dymvec, *dypvec, Zvec;
    1111
    1212  if (!style_args (&graphmode, &argc, argv, &kapa)) return (FALSE);
     13
     14  /* decide on error bars */
     15  dxmvec = dxpvec = dymvec = dypvec = NULL;
     16  if ((N = get_argument (argc, argv, "-dx"))) {
     17    remove_argument (N, &argc, argv);
     18    if ((dxmvec = SelectVector (argv[N], OLDVECTOR, TRUE)) == NULL) return (FALSE);   
     19    remove_argument (N, &argc, argv);
     20  }
     21  if ((N = get_argument (argc, argv, "+dx"))) {
     22    remove_argument (N, &argc, argv);
     23    if ((dxpvec = SelectVector (argv[N], OLDVECTOR, TRUE)) == NULL) return (FALSE);   
     24    remove_argument (N, &argc, argv);
     25  }
     26  if ((N = get_argument (argc, argv, "-dy"))) {
     27    remove_argument (N, &argc, argv);
     28    if ((dymvec = SelectVector (argv[N], OLDVECTOR, TRUE)) == NULL) return (FALSE);   
     29    remove_argument (N, &argc, argv);
     30  }
     31  if ((N = get_argument (argc, argv, "+dy"))) {
     32    remove_argument (N, &argc, argv);
     33    if ((dypvec = SelectVector (argv[N], OLDVECTOR, TRUE)) == NULL) return (FALSE);   
     34    remove_argument (N, &argc, argv);
     35  }
    1336
    1437  valid  = (argc == 6);
     
    4063  }
    4164
     65  /* set errorbar mode (these are NOT sticky) */
     66  graphmode.etype = 0;
     67  if ((dymvec != NULL) && (dypvec == NULL)) dypvec = dymvec;
     68  if ((dypvec != NULL) && (dymvec == NULL)) dymvec = dypvec;
     69  if ((dypvec != NULL) || (dymvec != NULL)) graphmode.etype |= 0x01;
     70  if ((dxmvec != NULL) && (dxpvec == NULL)) dxpvec = dxmvec;
     71  if ((dxpvec != NULL) && (dxmvec == NULL)) dxmvec = dxpvec;
     72  if ((dxpvec != NULL) || (dxmvec != NULL)) graphmode.etype |= 0x02;
     73 
    4274  /* find vectors */
    4375  if ((xvec = SelectVector (argv[1], OLDVECTOR, TRUE)) == NULL) return (FALSE);
     
    5688    return (FALSE);
    5789  }
     90  if (dypvec && (dypvec->Nelements != xvec->Nelements)) goto mismatch;
     91  if (dymvec && (dymvec->Nelements != xvec->Nelements)) goto mismatch;
     92  if (dxpvec && (dxpvec->Nelements != xvec->Nelements)) goto mismatch;
     93  if (dxmvec && (dxmvec->Nelements != xvec->Nelements)) goto mismatch;
     94
    5895  SetVector (&Zvec, OPIHI_FLT, zvec[0].Nelements);
    5996  out = Zvec.elements.Flt;
    6097 
     98  // note actual size is 3.3x plot -sz sizes. (DrawObjects.c:399)
    6199  if (zvec[0].type == OPIHI_FLT) {
    62100    opihi_flt *in = zvec[0].elements.Flt;
     
    81119  graphmode.style = 2; /* plot points */
    82120  graphmode.size = -1; /* point size determined by Zvec */
    83   graphmode.etype = 0; /* no errorbars */
    84121  PlotVectorTriplet (kapa, xvec, yvec, &Zvec, mask, &graphmode);
     122  if (graphmode.etype & 0x01) {
     123    PlotVectorSingle (kapa, dymvec, mask, "dym");
     124    PlotVectorSingle (kapa, dypvec, mask, "dyp");
     125  }
     126  if (graphmode.etype & 0x02) {
     127    PlotVectorSingle (kapa, dxmvec, mask, "dxm");
     128    PlotVectorSingle (kapa, dxpvec, mask, "dxp");
     129  }
    85130
    86131  free (Zvec.elements.Ptr);
    87132  if (mask) free (mask);
    88   DeleteNamedVector (outname);
     133
     134  if (outname) {
     135    DeleteNamedVector (outname);
     136    free (outname);
     137  }
    89138
    90139  return (TRUE);
    91140
     141mismatch:
     142  gprint (GP_ERR, "error and data vector lengths are mismatched\n");
     143  if (outname) {
     144    DeleteNamedVector (outname);
     145    free (outname);
     146  }
     147  return (FALSE);
    92148}
    93149
Note: See TracChangeset for help on using the changeset viewer.