IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3490


Ignore:
Timestamp:
Mar 23, 2005, 6:17:36 PM (21 years ago)
Author:
eugene
Message:

added fits_vtable_from_ftable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libfits/table/F_table_format.c

    r3400 r3490  
    8080}
    8181
    82 /***********************/
     82/** extract a table subset to a vtable ***/
    8383int fits_table_to_vtable (FTable *ftable, VTable *vtable, int start, int Nkeep) {
    8484
     
    110110
    111111  return (TRUE);
     112}
     113
     114/** convert specified rows to vtable */
     115int fits_vtable_from_ftable (FTable *ftable, VTable *vtable, int *row, int Nrow) {
     116
     117  int i, N, Nx, Ny;
     118
     119  fits_scan (ftable[0].header, "NAXIS1", "%d", 1, &Nx);
     120  fits_scan (ftable[0].header, "NAXIS2", "%d", 1, &Ny);
     121
     122  /* make empty vtable from table */
     123  vtable[0].header = ftable[0].header;  /* make this a copy? */
     124  vtable[0].size   = ftable[0].size;
     125  vtable[0].pad    = vtable[0].size - Nx*Ny;
     126  vtable[0].Nrow   = Ny;
     127
     128  /* insert selected rows in vtable (mask rows marked with -1) */
     129  ALLOCATE (vtable[0].row, int, Nrow);
     130  ALLOCATE (vtable[0].buffer, char *, Nrow);
     131  for (N = i = 0; i < Nrow; i++) {
     132    if (row[i] == -1) continue;
     133    vtable[0].row[N] = row[i];
     134    ALLOCATE (vtable[0].buffer[N], char, Nx);
     135    memcpy (vtable[0].buffer[N], &ftable[0].buffer[Nx*row[i]], Nx);
     136    N++;
     137  }
     138  vtable[0].Nrow = N;
     139  return (vtable);
    112140}
    113141
Note: See TracChangeset for help on using the changeset viewer.