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.data/ungridify.c

    r7917 r20936  
    11# include "data.h"
    22
     3// XXX adapt this to accept an optional region to limit the areas, otherwise use the whole image
    34int ungridify (int argc, char **argv) {
    45
     
    67  int Nx, Ny, NX, NY;
    78  int Xmin, Xmax, Ymin, Ymax;
    8   float *v, *x, *y, *z;
    99  Buffer *bf;
     10  float *v;
    1011  Vector *vx, *vy, *vz;
     12  opihi_flt *x, *y, *z;
    1113
    1214  if (argc != 9) {
    1315    gprint (GP_ERR, "USAGE: ungridify buffer Xmin Xmax Ymin Ymax x y z\n");
     16    gprint (GP_ERR, "  convert a portion of an image to a collection a triplet of vectors\n");
    1417    return (FALSE);
    1518  }
     
    2932  if ((vy = SelectVector (argv[7], ANYVECTOR, TRUE)) == NULL) return (FALSE);
    3033  if ((vz = SelectVector (argv[8], ANYVECTOR, TRUE)) == NULL) return (FALSE);
    31   REALLOCATE (vx[0].elements, float, Nx*Ny);
    32   REALLOCATE (vy[0].elements, float, Nx*Ny);
    33   REALLOCATE (vz[0].elements, float, Nx*Ny);
    3434
    35   x = vx[0].elements;
    36   y = vy[0].elements;
    37   z = vz[0].elements;
     35  ResetVector (vx, OPIHI_FLT, Nx*Ny);
     36  ResetVector (vy, OPIHI_FLT, Nx*Ny);
     37  ResetVector (vz, OPIHI_FLT, Nx*Ny);
     38
     39  x = vx[0].elements.Flt;
     40  y = vy[0].elements.Flt;
     41  z = vz[0].elements.Flt;
    3842  n = 0;
    3943  v = (float *)bf[0].matrix.buffer;
    4044  for (j = Ymin; j < Ymax; j++) {
    4145    for (i = Xmin; i < Xmax; i++, x++, y++, z++, n++) {
    42       vx[0].elements[n] = i;
    43       vy[0].elements[n] = j;
     46      vx[0].elements.Flt[n] = i;
     47      vy[0].elements.Flt[n] = j;
    4448      if (i < 0) continue;
    4549      if (i >= NX) continue;
    4650      if (j < 0) continue;
    4751      if (j >= NY) continue;
    48       vz[0].elements[n] = v[i+j*NX];
     52      vz[0].elements.Flt[n] = v[i+j*NX];
    4953    }
    5054  }
    5155  if (n != Nx*Ny) {
    5256    gprint (GP_ERR, "error in ungrid: %d vs %d (%d x %d)\n", n, Nx*Ny, Nx, Ny);
     57    gprint (GP_ERR, "(this is probably a programming error in ungridify)\n");
    5358  }
    5459  vx[0].Nelements = vy[0].Nelements = vz[0].Nelements = n;
Note: See TracChangeset for help on using the changeset viewer.