IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 11, 2015, 2:14:39 PM (12 years ago)
Author:
eugene
Message:

merge changes from eam branch ipp-20140904

Location:
trunk/Ohana
Files:
19 edited
7 copied

Legend:

Unmodified
Added
Removed
  • trunk/Ohana

  • trunk/Ohana/src/opihi/cmd.data/Makefile

    r37049 r37807  
    3939$(SRC)/densify.$(ARCH).o        \
    4040$(SRC)/device.$(ARCH).o \
     41$(SRC)/dft2d.$(ARCH).o  \
    4142$(SRC)/dimendown.$(ARCH).o      \
    4243$(SRC)/dimenup.$(ARCH).o        \
     
    160161$(SRC)/vstats.$(ARCH).o            \
    161162$(SRC)/xsection.$(ARCH).o          \
     163$(SRC)/vsh.$(ARCH).o       \
     164$(SRC)/vshfit.$(ARCH).o    \
     165$(SRC)/shterms.$(ARCH).o           \
     166$(SRC)/shfit.$(ARCH).o     \
     167$(SRC)/shdot.$(ARCH).o     \
     168$(SRC)/shapply.$(ARCH).o           \
    162169$(SRC)/wd.$(ARCH).o                \
    163170$(SRC)/write_vectors.$(ARCH).o     \
  • trunk/Ohana/src/opihi/cmd.data/center.c

    r29540 r37807  
    1616  if (!GetImage (NULL, &kapa, name)) return (FALSE);
    1717  FREE (name);
     18
     19  int channel = 0;
     20  if ((N = get_argument (argc, argv, "-ch"))) {
     21    channel = GetKapaChannelFromString (argv[N]);
     22    if (!channel) return FALSE;
     23    KiiSetChannel (kapa, channel - 1);
     24  }
    1825
    1926  // XXX need an option to center the image based on the current plot limits
  • trunk/Ohana/src/opihi/cmd.data/dimenup.c

    r20936 r37807  
    2323    return (FALSE);
    2424  }
    25 
    26   gfits_free_matrix (&buf[0].matrix);
    27   gfits_free_header (&buf[0].header);
    28   CreateBuffer (buf, Nx, Ny, -32, 0.0, 1.0);
     25  ResetBuffer (buf, Nx, Ny, -32, 0.0, 1.0);
    2926
    3027  out = (float *) buf[0].matrix.buffer;
  • trunk/Ohana/src/opihi/cmd.data/erase.c

    r13479 r37807  
    1515  if (!GetImage (NULL, &kapa, name)) return (FALSE);
    1616  FREE (name);
     17
     18  int channel = 0;
     19  if ((N = get_argument (argc, argv, "-ch"))) {
     20    channel = GetKapaChannelFromString (argv[N]);
     21    if (!channel) return FALSE;
     22    KiiSetChannel (kapa, channel - 1);
     23  }
    1724
    1825  if (argc < 2) {
  • trunk/Ohana/src/opihi/cmd.data/fit2d.c

    r31160 r37807  
    138138    y = yvec[0].elements.Flt;
    139139    z = zvec[0].elements.Flt;
     140    if (Weight) dz = dzvec[0].elements.Flt;
     141
    140142    for (i = 0; i < xvec[0].Nelements; i++, x++, y++, z++) {
    141143      if (mask[i]) continue;
  • trunk/Ohana/src/opihi/cmd.data/init.c

    r37049 r37807  
    11# include "data.h"
     2// XXX adding a comment
    23
    34int accum            PROTO((int, char **));
     
    3132int densify          PROTO((int, char **));
    3233int device           PROTO((int, char **));
     34int dft2d            PROTO((int, char **));
    3335int dimendown        PROTO((int, char **));
    3436int dimenup          PROTO((int, char **));
     
    147149int vpop             PROTO((int, char **));
    148150int vsmooth          PROTO((int, char **));
     151int vsh              PROTO((int, char **));
     152int vshfit           PROTO((int, char **));
     153int shterms          PROTO((int, char **));
     154int shfit            PROTO((int, char **));
     155int shdot            PROTO((int, char **));
     156int shapply          PROTO((int, char **));
    149157int wd               PROTO((int, char **));
    150158int write_vectors    PROTO((int, char **));
     
    189197  {1, "densify",      densify,          "create an image histogram from a set of vectors"},
    190198  {1, "device",       device,           "set / get current graphics device"},
     199  {1, "dft2d",        dft2d,            "2D discrete fourier transform"},
    191200  {1, "dimendown",    dimendown,        "convert image to vector"},
    192201  {1, "dimenup",      dimenup,          "convert vector to image"},
     
    314323  {1, "vstats",       vstats,           "statistics on a vector"},
    315324  {1, "vzload",       vzload,           "load vectors as overlay on image display (scaled points)"},
     325  {1, "vsh",          vsh,              "Vector Spherical Harmonics"},
     326  {1, "vshfit",       vshfit,           "Vector Spherical Harmonics fits"},
     327  {1, "shterms",      shterms,          "Spherical Harmonics terms"},
     328  {1, "shfit",        shfit,            "Spherical Harmonics fits"},
     329  {1, "shdot",        shdot,            "Spherical Harmonics dot product"},
     330  {1, "shapply",      shapply,          "Spherical Harmonics fit application"},
    316331  {1, "wd",           wd,               "write an image to a file"},
    317332  {1, "write",        write_vectors,    "write vectors to datafile"},
  • trunk/Ohana/src/opihi/cmd.data/load.c

    r34088 r37807  
    2323  if (!GetImageData (&data, &kapa, name)) return (FALSE);
    2424  FREE (name);
     25
     26  int channel = 0;
     27  if ((N = get_argument (argc, argv, "-ch"))) {
     28    channel = GetKapaChannelFromString (argv[N]);
     29    if (!channel) return FALSE;
     30    KiiSetChannel (kapa, channel - 1);
     31  }
    2532
    2633  ISCEL = FALSE;
  • trunk/Ohana/src/opihi/cmd.data/point.c

    r15620 r37807  
    2121  if (!GetImageData (&data, &kapa, name)) return (FALSE);
    2222  FREE (name);
     23
     24  int channel = 0;
     25  if ((N = get_argument (argc, argv, "-ch"))) {
     26    channel = GetKapaChannelFromString (argv[N]);
     27    if (!channel) return FALSE;
     28    KiiSetChannel (kapa, channel - 1);
     29  }
    2330
    2431  celestial = FALSE;
  • trunk/Ohana/src/opihi/cmd.data/read_vectors.c

    r37049 r37807  
    55
    66void read_vectors_cleanup ();
     7int read_table_sizes (Header *header);
    78
    89int datafile (int argc, char **argv) {
     
    331332
    332333  off_t Nbytes;
    333   int i, j, N, Nextend, Ny, Binary, vecType, padIfShort;
    334   char type[16], ID[80], *CCDKeyword;
     334  int i, j, N, Ny, Binary, vecType;
     335  char type[16], ID[80];
    335336  FTable table;
    336337  Header header;
    337338  Vector **vec;
    338   int FITS_TRANSPOSE;
    339339
    340340  table.buffer = NULL;
    341341  header.buffer = NULL;
    342342
    343   FITS_TRANSPOSE = FALSE;
     343  int FITS_TRANSPOSE = FALSE;
    344344  if ((N = get_argument (argc, argv, "-transpose"))) {
    345345    remove_argument (N, &argc, argv);
     
    347347  }
    348348
    349   CCDKeyword = NULL;
     349  char *CCDKeyword = NULL;
    350350  if ((N = get_argument (argc, argv, "-keyword"))) {
    351351    remove_argument (N, &argc, argv);
     
    354354  }
    355355
    356   padIfShort = FALSE;
     356  int padIfShort = FALSE;
    357357  if ((N = get_argument (argc, argv, "-pad-if-short"))) {
    358358    remove_argument (N, &argc, argv);
     
    360360  }
    361361
    362   Nextend = -1;
     362  int getSizes = FALSE;
     363  if ((N = get_argument (argc, argv, "-sizes"))) {
     364    remove_argument (N, &argc, argv);
     365    getSizes = TRUE;
     366  }
     367
     368  int Nextend = -1;
    363369  if ((N = get_argument (argc, argv, "-extnum"))) {
    364370    remove_argument (N, &argc, argv);
    365371    Nextend = atoi (extname);
     372  }
     373
     374  int start = 0;
     375  int Nrows = -1; // -1 : read entire table
     376  if ((N = get_argument (argc, argv, "-range"))) {
     377    remove_argument (N, &argc, argv);
     378    start = atoi (argv[N]);
     379    remove_argument (N, &argc, argv);
     380    Nrows = atoi (argv[N]);
     381    remove_argument (N, &argc, argv);
     382  }
     383
     384  // if CharAsVectors, char fields will be saved as vectors NAME:0 -- NAME:n for n characters
     385  // else char fields will be saved as $NAME:0 - $NAME:m for m rows
     386  // if (Ny > 10000), force CharAsVectors
     387  int CharAsVectors = FALSE;
     388  if ((N = get_argument (argc, argv, "-char-vectors"))) {
     389    remove_argument (N, &argc, argv);
     390    CharAsVectors = TRUE;
    366391  }
    367392
     
    397422    }
    398423    if (!gfits_load_header (f, &header)) ESCAPE ("error reading header for extension %d\n", Nextend);
    399     if (!gfits_fread_ftable_data (f, &table, padIfShort)) ESCAPE ("error reading table for extension %d\n", Nextend);
    400 
     424
     425    if (getSizes) {
     426      read_table_sizes (&header);
     427      if (CCDKeyword != NULL) free (CCDKeyword);
     428      gfits_free_header (&header);
     429      return TRUE;
     430    }
     431
     432    if (Nrows == -1) {
     433      Nrows = header.Naxis[1] - start;
     434    }
     435    if (start < 0) ESCAPE ("invalid range: start < 0\n");
     436    if (start >= header.Naxis[1]) ESCAPE ("invalid range: start >= Ny (%d)\n", header.Naxis[1]);
     437    if (Nrows < 0) ESCAPE ("invalid range: Nrows < 0\n");
     438    if (start + Nrows > header.Naxis[1]) ESCAPE ("invalid range: start + Nrows > Ny (%d)\n", header.Naxis[1]);
     439
     440    // Ny = 100, start = 0, Nrows = -1 -> Nrows => 100
     441    // Ny = 100, start = 10, Nrows = 90
     442
     443    if (!gfits_fread_ftable_range (f, padIfShort, &table, start, Nrows)) ESCAPE ("error reading table for extension %d\n", Nextend);
    401444  } else {
    402445    if (CCDKeyword == NULL) {
     
    428471        continue;
    429472      }
    430       if (!gfits_fread_ftable_data (f, &table, padIfShort)) ESCAPE ("error reading table for extension\n");
     473
     474      if (Nrows == -1) {
     475        Nrows = header.Naxis[1] - start;
     476      }
     477      if (start < 0) ESCAPE ("invalid range: start < 0\n");
     478      if (start >= header.Naxis[1]) ESCAPE ("invalid range: start >= Ny (%d)\n", header.Naxis[1]);
     479      if (Nrows < 0) ESCAPE ("invalid range: Nrows < 0\n");
     480      if (start + Nrows > header.Naxis[1]) ESCAPE ("invalid range: start + Nrows > Ny (%d)\n", header.Naxis[1]);
     481
     482      if (!gfits_fread_ftable_range (f, padIfShort, &table, start, Nrows)) ESCAPE ("error reading table for extension %d\n", Nextend);
     483
     484      // if (!gfits_fread_ftable_data (f, &table, padIfShort)) ESCAPE ("error reading table for extension\n");
     485
    431486      break;
    432487    }
     
    465520    if (!FITS_TRANSPOSE) {
    466521      // read string column into a list rather than a vector
    467       if (!strcmp (type, "char")) {
     522      if (!strcmp (type, "char") && !CharAsVectors && (Ny < 3000)) {
    468523        char *fieldName = argv[i];
    469524        char *Ptr = data;
     
    537592  if (vec) free (vec);
    538593}
     594
     595// read -fits foo -sizes -- Nx, Ny, Nfields -> $table:Nx, $table:Ny, $table:$Nfields
     596// read -fits foo -fields
     597
     598int read_table_sizes (Header *header) {
     599 
     600  int Nfields;
     601
     602  gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
     603
     604  set_int_variable ("table:Nx", header->Naxis[0]);
     605  set_int_variable ("table:Nx", header->Naxis[0]);
     606  set_int_variable ("table:Nfields", Nfields);
     607
     608  return TRUE;
     609}
     610
  • trunk/Ohana/src/opihi/cmd.data/relocate.c

    r27435 r37807  
    1717  FREE (name);
    1818
     19  int channel = 0;
     20  if ((N = get_argument (argc, argv, "-ch"))) {
     21    channel = GetKapaChannelFromString (argv[N]);
     22    if (!channel) return FALSE;
     23    KiiSetChannel (kapa, channel - 1);
     24  }
     25
    1926  if (argc != 3) {
    2027    gprint (GP_ERR, "USAGE: relocate x y [-n]\n");
  • trunk/Ohana/src/opihi/cmd.data/resize.c

    r29938 r37807  
    1717  if (!GetImage (NULL, &kapa, name)) return (FALSE);
    1818  FREE (name);
     19
     20  int channel = 0;
     21  if ((N = get_argument (argc, argv, "-ch"))) {
     22    channel = GetKapaChannelFromString (argv[N]);
     23    if (!channel) return FALSE;
     24    KiiSetChannel (kapa, channel - 1);
     25  }
    1926
    2027  if ((N = get_argument (argc, argv, "-by-image"))) {
  • trunk/Ohana/src/opihi/cmd.data/save.c

    r13479 r37807  
    1616  FREE (name);
    1717
     18  int channel = 0;
     19  if ((N = get_argument (argc, argv, "-ch"))) {
     20    channel = GetKapaChannelFromString (argv[N]);
     21    if (!channel) return FALSE;
     22    KiiSetChannel (kapa, channel - 1);
     23  }
     24
    1825  celestial = FALSE;
    1926  if ((N = get_argument (argc, argv, "-c"))) {
  • trunk/Ohana/src/opihi/cmd.data/tv.c

    r35757 r37807  
    1818  if (!GetImage (&data, &kapa, name)) return (FALSE);
    1919  FREE (name);
     20
     21  int channel = 0;
     22  if ((N = get_argument (argc, argv, "-ch"))) {
     23    remove_argument (N, &argc, argv);
     24    channel = GetKapaChannelFromString (argv[N]);
     25    remove_argument (N, &argc, argv);
     26    if (!channel) return FALSE;
     27    KiiSetChannel (kapa, channel - 1);
     28  }
    2029
    2130  /* shell exits on pipe close, FIX */
  • trunk/Ohana/src/opihi/cmd.data/tvchannel.c

    r16038 r37807  
    2222  }
    2323
    24   Nchannel = atoi (argv[1]);
     24  Nchannel = GetKapaChannelFromString (argv[1]);
     25  if (!Nchannel) return FALSE;
     26
     27  KiiSetChannel (kapa, Nchannel - 1);
     28  return (TRUE);
     29}
     30
     31int GetKapaChannelFromString (char *string) {
     32
     33  int Nchannel = atoi (string);
    2534  if (Nchannel == 0) {
    2635    // try the string values R/Red, G/Green, B/Blue
    27     if (!strcasecmp (argv[1], "R") || !strcasecmp (argv[1], "RED")) {
     36    if (!strcasecmp (string, "R") || !strcasecmp (string, "RED")) {
    2837      Nchannel = 1;
    2938    }
    30     if (!strcasecmp (argv[1], "G") || !strcasecmp (argv[1], "GREEN")) {
     39    if (!strcasecmp (string, "G") || !strcasecmp (string, "GREEN")) {
    3140      Nchannel = 2;
    3241    }
    33     if (!strcasecmp (argv[1], "B") || !strcasecmp (argv[1], "BLUE")) {
     42    if (!strcasecmp (string, "B") || !strcasecmp (string, "BLUE")) {
    3443      Nchannel = 3;
    3544    }
    3645  }
    37   if ((Nchannel < 1) || (Nchannel > 3)) {
    38     gprint (GP_ERR, "invalid channel : use 1 - 3 or (R)ed, (G)reen, (B)lue\n");
    39     return (FALSE);
     46  if ((Nchannel < 1) || (Nchannel > 10)) {
     47    gprint (GP_ERR, "invalid channel : use 1 - 10 or (R)ed, (G)reen, (B)lue\n");
     48    gprint (GP_ERR, "   (R)ed, (G)reen, (B)lue == (1,2,3)\n");
     49    return (0);
    4050  }
    41    
    42   KiiSetChannel (kapa, Nchannel - 1);
    43   return (TRUE);
     51  return Nchannel;
    4452}
  • trunk/Ohana/src/opihi/cmd.data/tvcontour.c

    r13479 r37807  
    7171  if (!GetImage (NULL, &kapa, name)) return (FALSE);
    7272  FREE (name);
     73
     74  int channel = 0;
     75  if ((N = get_argument (argc, argv, "-ch"))) {
     76    channel = GetKapaChannelFromString (argv[N]);
     77    if (!channel) return FALSE;
     78    KiiSetChannel (kapa, channel - 1);
     79  }
    7380
    7481  if ((argc != 4) && (argc != 5)) {
  • trunk/Ohana/src/opihi/cmd.data/tvgrid.c

    r13479 r37807  
    2424  if (!GetImage (NULL, &kapa, name)) return (FALSE);
    2525  FREE (name);
     26
     27  int channel = 0;
     28  if ((N = get_argument (argc, argv, "-ch"))) {
     29    channel = GetKapaChannelFromString (argv[N]);
     30    if (!channel) return FALSE;
     31    KiiSetChannel (kapa, channel - 1);
     32  }
    2633
    2734  if (argc != 3) {
  • trunk/Ohana/src/opihi/cmd.data/vload.c

    r20936 r37807  
    1818  if (!GetImage (NULL, &kapa, name)) return (FALSE);
    1919  FREE (name);
     20
     21  int channel = 0;
     22  if ((N = get_argument (argc, argv, "-ch"))) {
     23    channel = GetKapaChannelFromString (argv[N]);
     24    if (!channel) return FALSE;
     25    KiiSetChannel (kapa, channel - 1);
     26  }
    2027
    2128  type = KII_OVERLAY_BOX;
  • trunk/Ohana/src/opihi/cmd.data/vzload.c

    r20936 r37807  
    1818  if (!GetImage (NULL, &kapa, name)) return (FALSE);
    1919  FREE (name);
     20
     21  int channel = 0;
     22  if ((N = get_argument (argc, argv, "-ch"))) {
     23    channel = GetKapaChannelFromString (argv[N]);
     24    if (!channel) return FALSE;
     25    KiiSetChannel (kapa, channel - 1);
     26  }
    2027
    2128  MAX_OUTPUT_SIZE = 10.0;
Note: See TracChangeset for help on using the changeset viewer.