IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 5, 2006, 5:44:26 PM (20 years ago)
Author:
eugene
Message:

big move: fits_ to gfits_; minor updates to relphot

Location:
trunk/Ohana/src/libdvo
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libdvo/doc/ChangeLog.txt

    r6693 r7080  
     1
     2- libdvo 1.3
     3  * converted to gfits APIs (forces libfits 1.6)
    14
    25- libdvo 1.2
  • trunk/Ohana/src/libdvo/include/dvo.h

    r7039 r7080  
    176176/*** prototypes ***/
    177177
    178 /* in fits_db.c */
    179 int   fits_db_init                PROTO((FITS_DB *db));
    180 int   fits_db_create              PROTO((FITS_DB *db));
    181 int   fits_db_lock                PROTO((FITS_DB *db, char *filename));
    182 int   fits_db_load                PROTO((FITS_DB *db));
    183 int   fits_db_load_segment        PROTO((FITS_DB *db, int start, int Nrows));
    184 int   fits_db_save                PROTO((FITS_DB *db));
    185 int   fits_db_update              PROTO((FITS_DB *db));
    186 int   fits_db_close               PROTO((FITS_DB *db));
    187 int   fits_db_free                PROTO((FITS_DB *db));
     178/* in gfits_db.c */
     179int   gfits_db_init                PROTO((FITS_DB *db));
     180int   gfits_db_create              PROTO((FITS_DB *db));
     181int   gfits_db_lock                PROTO((FITS_DB *db, char *filename));
     182int   gfits_db_load                PROTO((FITS_DB *db));
     183int   gfits_db_load_segment        PROTO((FITS_DB *db, int start, int Nrows));
     184int   gfits_db_save                PROTO((FITS_DB *db));
     185int   gfits_db_update              PROTO((FITS_DB *db));
     186int   gfits_db_close               PROTO((FITS_DB *db));
     187int   gfits_db_free                PROTO((FITS_DB *db));
    188188
    189189/* in coords.c, using libautocode/def/coords.d */
     
    352352SkyList   *SkyListByRadius         PROTO((SkyTable *table, int depth, double RA, double DEC, double radius));
    353353SkyList   *SkyListByPatch          PROTO((SkyTable *table, int depth, SkyRegion *patch));
     354SkyList   *SkyListByName           PROTO((SkyTable *table, char *name));
    354355SkyList   *SkyListByImage          PROTO((SkyTable *table, int depth, Image *image));
    355356SkyList   *SkyListByBounds         PROTO((SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax));
  • trunk/Ohana/src/libdvo/src/coordops.c

    r6678 r7080  
    312312 
    313313  status = FALSE;
    314   if (fits_scan (header, "CTYPE2", "%s", 1, coords[0].ctype)) {
    315     status  = fits_scan (header, "CRVAL1", "%lf", 1, &coords[0].crval1);
    316     status &= fits_scan (header, "CRPIX1", "%f", 1, &coords[0].crpix1);
    317     status &= fits_scan (header, "CRVAL2", "%lf", 1, &coords[0].crval2); 
    318     status &= fits_scan (header, "CRPIX2", "%f", 1, &coords[0].crpix2);
    319 
    320     if (fits_scan (header, "CDELT1", "%f", 1, &coords[0].cdelt1)) {
    321       status &= fits_scan (header, "CDELT2", "%f", 1, &coords[0].cdelt2);
    322       if (fits_scan (header, "CROTA2", "%lf", 1, &rotate)) {
     314  if (gfits_scan (header, "CTYPE2", "%s", 1, coords[0].ctype)) {
     315    status  = gfits_scan (header, "CRVAL1", "%lf", 1, &coords[0].crval1);
     316    status &= gfits_scan (header, "CRPIX1", "%f", 1, &coords[0].crpix1);
     317    status &= gfits_scan (header, "CRVAL2", "%lf", 1, &coords[0].crval2); 
     318    status &= gfits_scan (header, "CRPIX2", "%f", 1, &coords[0].crpix2);
     319
     320    if (gfits_scan (header, "CDELT1", "%f", 1, &coords[0].cdelt1)) {
     321      status &= gfits_scan (header, "CDELT2", "%f", 1, &coords[0].cdelt2);
     322      if (gfits_scan (header, "CROTA2", "%lf", 1, &rotate)) {
    323323        Lambda = coords[0].cdelt2 / coords[0].cdelt1;
    324324        coords[0].pc1_1 =  cos(rotate*RAD_DEG);
     
    327327        coords[0].pc2_2 =  cos(rotate*RAD_DEG);
    328328      }
    329       if (fits_scan (header, "PC001001", "%f", 1, &coords[0].pc1_1)) {
    330         status &= fits_scan (header, "PC001002", "%f", 1, &coords[0].pc1_2);
    331         status &= fits_scan (header, "PC002001", "%f", 1, &coords[0].pc2_1);
    332         status &= fits_scan (header, "PC002002", "%f", 1, &coords[0].pc2_2);
     329      if (gfits_scan (header, "PC001001", "%f", 1, &coords[0].pc1_1)) {
     330        status &= gfits_scan (header, "PC001002", "%f", 1, &coords[0].pc1_2);
     331        status &= gfits_scan (header, "PC002001", "%f", 1, &coords[0].pc2_1);
     332        status &= gfits_scan (header, "PC002002", "%f", 1, &coords[0].pc2_2);
    333333      }
    334334
     
    337337
    338338      if (Polynomial) {
    339         if (fits_scan (header, "NPLYTERM", "%d", 1, &itmp)) {
     339        if (gfits_scan (header, "NPLYTERM", "%d", 1, &itmp)) {
    340340          coords[0].Npolyterms = itmp;
    341341        } else {
     
    344344        switch (coords[0].Npolyterms) {
    345345          case 3:
    346             status &= fits_scan (header, "PCA1X3Y0", "%f", 1, &coords[0].polyterms[3][0]);
    347             status &= fits_scan (header, "PCA1X2Y1", "%f", 1, &coords[0].polyterms[4][0]);
    348             status &= fits_scan (header, "PCA1X1Y2", "%f", 1, &coords[0].polyterms[5][0]);
    349             status &= fits_scan (header, "PCA1X0Y3", "%f", 1, &coords[0].polyterms[6][0]);
    350             status &= fits_scan (header, "PCA2X3Y0", "%f", 1, &coords[0].polyterms[3][1]);
    351             status &= fits_scan (header, "PCA2X2Y1", "%f", 1, &coords[0].polyterms[4][1]);
    352             status &= fits_scan (header, "PCA2X1Y2", "%f", 1, &coords[0].polyterms[5][1]);
    353             status &= fits_scan (header, "PCA2X0Y3", "%f", 1, &coords[0].polyterms[6][1]);
     346            status &= gfits_scan (header, "PCA1X3Y0", "%f", 1, &coords[0].polyterms[3][0]);
     347            status &= gfits_scan (header, "PCA1X2Y1", "%f", 1, &coords[0].polyterms[4][0]);
     348            status &= gfits_scan (header, "PCA1X1Y2", "%f", 1, &coords[0].polyterms[5][0]);
     349            status &= gfits_scan (header, "PCA1X0Y3", "%f", 1, &coords[0].polyterms[6][0]);
     350            status &= gfits_scan (header, "PCA2X3Y0", "%f", 1, &coords[0].polyterms[3][1]);
     351            status &= gfits_scan (header, "PCA2X2Y1", "%f", 1, &coords[0].polyterms[4][1]);
     352            status &= gfits_scan (header, "PCA2X1Y2", "%f", 1, &coords[0].polyterms[5][1]);
     353            status &= gfits_scan (header, "PCA2X0Y3", "%f", 1, &coords[0].polyterms[6][1]);
    354354          case 2:
    355             status &= fits_scan (header, "PCA1X2Y0", "%f", 1, &coords[0].polyterms[0][0]);
    356             status &= fits_scan (header, "PCA1X1Y1", "%f", 1, &coords[0].polyterms[1][0]);
    357             status &= fits_scan (header, "PCA1X0Y2", "%f", 1, &coords[0].polyterms[2][0]);
    358             status &= fits_scan (header, "PCA2X2Y0", "%f", 1, &coords[0].polyterms[0][1]);
    359             status &= fits_scan (header, "PCA2X1Y1", "%f", 1, &coords[0].polyterms[1][1]);
    360             status &= fits_scan (header, "PCA2X0Y2", "%f", 1, &coords[0].polyterms[2][1]);
     355            status &= gfits_scan (header, "PCA1X2Y0", "%f", 1, &coords[0].polyterms[0][0]);
     356            status &= gfits_scan (header, "PCA1X1Y1", "%f", 1, &coords[0].polyterms[1][0]);
     357            status &= gfits_scan (header, "PCA1X0Y2", "%f", 1, &coords[0].polyterms[2][0]);
     358            status &= gfits_scan (header, "PCA2X2Y0", "%f", 1, &coords[0].polyterms[0][1]);
     359            status &= gfits_scan (header, "PCA2X1Y1", "%f", 1, &coords[0].polyterms[1][1]);
     360            status &= gfits_scan (header, "PCA2X0Y2", "%f", 1, &coords[0].polyterms[2][1]);
    361361          case 0:
    362362          case 1:
     
    365365      }
    366366    } else {
    367       if (fits_scan (header, "CD1_1", "%f", 1, &coords[0].pc1_1)) {
    368         status &= fits_scan (header, "CD1_2", "%f", 1, &coords[0].pc1_2);
    369         status &= fits_scan (header, "CD2_1", "%f", 1, &coords[0].pc2_1);
    370         status &= fits_scan (header, "CD2_2", "%f", 1, &coords[0].pc2_2);
     367      if (gfits_scan (header, "CD1_1", "%f", 1, &coords[0].pc1_1)) {
     368        status &= gfits_scan (header, "CD1_2", "%f", 1, &coords[0].pc1_2);
     369        status &= gfits_scan (header, "CD2_1", "%f", 1, &coords[0].pc2_1);
     370        status &= gfits_scan (header, "CD2_2", "%f", 1, &coords[0].pc2_2);
    371371        /* renormalize */
    372372        scale = hypot (coords[0].pc1_1, coords[0].pc1_2);
     
    382382  } else {
    383383    /* some of my thesis data uses this simple linear model - convert on read? */
    384     if (fits_scan (header, "RA_O", "%lf", 1, &coords[0].crval1)) {
    385       status  = fits_scan (header, "RA_X", "%f", 1, &coords[0].pc1_1);
    386       status &= fits_scan (header, "RA_Y", "%f", 1, &coords[0].pc1_2);
    387       status &= fits_scan (header, "DEC_O", "%lf", 1, &coords[0].crval2); 
    388       status &= fits_scan (header, "DEC_X", "%f", 1, &coords[0].pc2_1);
    389       status &= fits_scan (header, "DEC_Y", "%f", 1, &coords[0].pc2_2);
     384    if (gfits_scan (header, "RA_O", "%lf", 1, &coords[0].crval1)) {
     385      status  = gfits_scan (header, "RA_X", "%f", 1, &coords[0].pc1_1);
     386      status &= gfits_scan (header, "RA_Y", "%f", 1, &coords[0].pc1_2);
     387      status &= gfits_scan (header, "DEC_O", "%lf", 1, &coords[0].crval2); 
     388      status &= gfits_scan (header, "DEC_X", "%f", 1, &coords[0].pc2_1);
     389      status &= gfits_scan (header, "DEC_Y", "%f", 1, &coords[0].pc2_2);
    390390      coords[0].crpix1 = coords[0].crpix2 = 0.0;
    391391      coords[0].cdelt1 = coords[0].cdelt2 = 1.0;
     
    394394  }
    395395  if (status) {
    396     if (!fits_scan (header, "EQUINOX", "%lf", 1, &equinox)) {
    397       if (!fits_scan (header, "EPOCH", "%lf", 1, &equinox)) {
     396    if (!gfits_scan (header, "EQUINOX", "%lf", 1, &equinox)) {
     397      if (!gfits_scan (header, "EPOCH", "%lf", 1, &equinox)) {
    398398        equinox = 2000.0;
    399399      }
     
    422422  /* modifications to the ctype? */
    423423  OldAIPS = FALSE;
    424   fits_modify (header, "CTYPE2",   "%s",  1, coords[0].ctype);
     424  gfits_modify (header, "CTYPE2",   "%s",  1, coords[0].ctype);
    425425  if (!strcmp(coords[0].ctype, "MM")) {
    426     fits_modify (header, "CTYPE1",   "%s",  1, "LL");
     426    gfits_modify (header, "CTYPE1",   "%s",  1, "LL");
    427427    OldAIPS = TRUE;
    428428  } else {
     
    435435    if (!strcmp (csys, "NONE")) return (FALSE);
    436436    sprintf (ctype, "%s-%s", csys, &coords[0].ctype[5]);
    437     fits_modify (header, "CTYPE1",   "%s",  1, ctype);
     437    gfits_modify (header, "CTYPE1",   "%s",  1, ctype);
    438438  }   
    439439
    440   fits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1);
    441   fits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
    442   fits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
    443   fits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2); 
    444   fits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
    445   fits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
     440  gfits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1);
     441  gfits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
     442  gfits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
     443  gfits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2); 
     444  gfits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
     445  gfits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
    446446
    447447  if (OldAIPS) {
    448448    Lambda = coords[0].cdelt2 / coords[0].cdelt1;
    449449    rotate = DEG_RAD*atan2 (coords[0].pc2_1*Lambda, coords[0].pc1_1);
    450     fits_modify (header, "CROTA1", "%f", 1, rotate);
    451     fits_modify (header, "CROTA2", "%f", 1, rotate);
     450    gfits_modify (header, "CROTA1", "%f", 1, rotate);
     451    gfits_modify (header, "CROTA2", "%f", 1, rotate);
    452452    return (TRUE);
    453453  }
    454454
    455   fits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
    456   fits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
    457   fits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
    458   fits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
    459   fits_modify (header, "NPLYTERM", "%d",  1, coords[0].Npolyterms);
     455  gfits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
     456  gfits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
     457  gfits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
     458  gfits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
     459  gfits_modify (header, "NPLYTERM", "%d",  1, coords[0].Npolyterms);
    460460
    461461  /* RA Terms */
    462462  if (coords[0].Npolyterms > 1) {
    463     fits_modify (header, "PCA1X2Y0", "%le", 1, coords[0].polyterms[0][0]);   /* polyterms[0]); */
    464     fits_modify (header, "PCA1X1Y1", "%le", 1, coords[0].polyterms[1][0]);   /* polyterms[1]); */
    465     fits_modify (header, "PCA1X0Y2", "%le", 1, coords[0].polyterms[2][0]);   /* polyterms[2]); */
     463    gfits_modify (header, "PCA1X2Y0", "%le", 1, coords[0].polyterms[0][0]);   /* polyterms[0]); */
     464    gfits_modify (header, "PCA1X1Y1", "%le", 1, coords[0].polyterms[1][0]);   /* polyterms[1]); */
     465    gfits_modify (header, "PCA1X0Y2", "%le", 1, coords[0].polyterms[2][0]);   /* polyterms[2]); */
    466466  }
    467467  if (coords[0].Npolyterms > 2) {
    468     fits_modify (header, "PCA1X3Y0", "%le", 1, coords[0].polyterms[3][0]);   /* polyterms[3]); */
    469     fits_modify (header, "PCA1X2Y1", "%le", 1, coords[0].polyterms[4][0]);   /* polyterms[4]); */
    470     fits_modify (header, "PCA1X1Y2", "%le", 1, coords[0].polyterms[5][0]);   /* polyterms[5]); */
    471     fits_modify (header, "PCA1X0Y3", "%le", 1, coords[0].polyterms[6][0]);   /* polyterms[6]); */
     468    gfits_modify (header, "PCA1X3Y0", "%le", 1, coords[0].polyterms[3][0]);   /* polyterms[3]); */
     469    gfits_modify (header, "PCA1X2Y1", "%le", 1, coords[0].polyterms[4][0]);   /* polyterms[4]); */
     470    gfits_modify (header, "PCA1X1Y2", "%le", 1, coords[0].polyterms[5][0]);   /* polyterms[5]); */
     471    gfits_modify (header, "PCA1X0Y3", "%le", 1, coords[0].polyterms[6][0]);   /* polyterms[6]); */
    472472  }
    473473
    474474  /* Dec Terms */
    475475  if (coords[0].Npolyterms > 1) {
    476     fits_modify (header, "PCA2X2Y0", "%le", 1, coords[0].polyterms[0][1]);   /* polyterms[7]); */
    477     fits_modify (header, "PCA2X1Y1", "%le", 1, coords[0].polyterms[1][1]);   /* polyterms[8]); */
    478     fits_modify (header, "PCA2X0Y2", "%le", 1, coords[0].polyterms[2][1]);   /* polyterms[9]); */
     476    gfits_modify (header, "PCA2X2Y0", "%le", 1, coords[0].polyterms[0][1]);   /* polyterms[7]); */
     477    gfits_modify (header, "PCA2X1Y1", "%le", 1, coords[0].polyterms[1][1]);   /* polyterms[8]); */
     478    gfits_modify (header, "PCA2X0Y2", "%le", 1, coords[0].polyterms[2][1]);   /* polyterms[9]); */
    479479  }
    480480  if (coords[0].Npolyterms > 2) {
    481     fits_modify (header, "PCA2X3Y0", "%le", 1, coords[0].polyterms[3][1]);   /* polyterms[10]); */
    482     fits_modify (header, "PCA2X2Y1", "%le", 1, coords[0].polyterms[4][1]);   /* polyterms[11]); */
    483     fits_modify (header, "PCA2X1Y2", "%le", 1, coords[0].polyterms[5][1]);   /* polyterms[12]); */
    484     fits_modify (header, "PCA2X0Y3", "%le", 1, coords[0].polyterms[6][1]);   /* polyterms[13]); */
     481    gfits_modify (header, "PCA2X3Y0", "%le", 1, coords[0].polyterms[3][1]);   /* polyterms[10]); */
     482    gfits_modify (header, "PCA2X2Y1", "%le", 1, coords[0].polyterms[4][1]);   /* polyterms[11]); */
     483    gfits_modify (header, "PCA2X1Y2", "%le", 1, coords[0].polyterms[5][1]);   /* polyterms[12]); */
     484    gfits_modify (header, "PCA2X0Y3", "%le", 1, coords[0].polyterms[6][1]);   /* polyterms[13]); */
    485485  }
    486486  return (TRUE);
  • trunk/Ohana/src/libdvo/src/dvo_catalog.c

    r5320 r7080  
    4242  /** we will have to check catmode for MYSQL before reading from the file **/
    4343
    44   fits_fread_header (catalog[0].f, &catalog[0].header);
    45   if (!fits_scan (&catalog[0].header, "NAXIS", "%d", 1, &Naxis)) {
     44  gfits_fread_header (catalog[0].f, &catalog[0].header);
     45  if (!gfits_scan (&catalog[0].header, "NAXIS", "%d", 1, &Naxis)) {
    4646    if (VERBOSE) fprintf (stderr, "can't determine catalog db mode\n");
    4747    return (FALSE);
    4848  }
    49   split = fits_scan (&catalog[0].header, "MEASURE", "%s", 1, measure);
     49  split = gfits_scan (&catalog[0].header, "MEASURE", "%s", 1, measure);
    5050
    5151  /* currenly, the catmode information is carried per table.
  • trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c

    r5320 r7080  
    1717
    1818  /* matrix should be empty */
    19   if (!fits_fread_matrix (f, &matrix, &catalog[0].header)) {
     19  if (!gfits_fread_matrix (f, &matrix, &catalog[0].header)) {
    2020    if (VERBOSE) fprintf (stderr, "can't read primary matrix");
    2121    return (FALSE);
    2222  }
    2323  /* get the components from the header */
    24   if (!fits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
    25   if (!fits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
    26   if (!fits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
    27   if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
     24  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
     25  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
     26  if (!gfits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
     27  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
    2828
    2929  /**  Nsecfilt is unusual: it does not list the number of data items in the table
     
    3434
    3535  /* read Average table header */
    36   if (!fits_fread_header (f, &header)) {
     36  if (!gfits_fread_header (f, &header)) {
    3737    if (VERBOSE) fprintf (stderr, "can't read table average header");
    3838    return (FALSE);
     
    4040  /* read Average table data (or skip) */
    4141  if (catalog[0].catflags & LOAD_AVES) {
    42     if (!fits_fread_ftable_data (f, &ftable)) {
     42    if (!gfits_fread_ftable_data (f, &ftable)) {
    4343      if (VERBOSE) fprintf (stderr, "can't read table average data");
    4444      return (FALSE);
     
    4949    }
    5050  } else {
    51     Nbytes = fits_matrix_size (&header);
    52     fseek (f, Nbytes, SEEK_CUR);
    53   }
    54   fits_free_header (&header);
     51    Nbytes = gfits_matrix_size (&header);
     52    fseek (f, Nbytes, SEEK_CUR);
     53  }
     54  gfits_free_header (&header);
    5555  /** free the ftable or not? data is being used still..? **/
    5656
    5757  /* read Measure table header */
    58   if (!fits_fread_header (f, &header)) {
     58  if (!gfits_fread_header (f, &header)) {
    5959    if (VERBOSE) fprintf (stderr, "can't read table measure header");
    6060    return (FALSE);
     
    6262  /* read Measure table data */
    6363  if (catalog[0].catflags & LOAD_MEAS) {
    64     if (!fits_fread_ftable_data (f, &ftable)) {
     64    if (!gfits_fread_ftable_data (f, &ftable)) {
    6565      if (VERBOSE) fprintf (stderr, "can't read table measure data");
    6666      return (FALSE);
     
    7171    }
    7272  } else {
    73     Nbytes = fits_matrix_size (&header);
     73    Nbytes = gfits_matrix_size (&header);
    7474    fseek (f, Nbytes, SEEK_CUR);
    7575  }
    7676
    7777  /* read Missing table header */
    78   if (!fits_fread_header (f, &header)) {
     78  if (!gfits_fread_header (f, &header)) {
    7979    if (VERBOSE) fprintf (stderr, "can't read table missing header");
    8080    return (FALSE);
     
    8282  /* read Missing table data */
    8383  if (catalog[0].catflags & LOAD_MISS) {
    84     if (!fits_fread_ftable_data (f, &ftable)) {
     84    if (!gfits_fread_ftable_data (f, &ftable)) {
    8585      if (VERBOSE) fprintf (stderr, "can't read table missing data");
    8686      return (FALSE);
    8787    }
    8888    /* no conversions currently defined */
    89     catalog[0].missing = fits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
     89    catalog[0].missing = gfits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
    9090    if (Nmissing != catalog[0].Nmissing) {
    9191      fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers (%d vs %d)\n", Nmissing, catalog[0].Nmissing);
    9292    }
    9393  } else {
    94     Nbytes = fits_matrix_size (&header);
    95     fseek (f, Nbytes, SEEK_CUR);
    96   }
    97 
    98   // catalog[0].secfilt = fits_table_get_SecFilt (&ftable, &Nitems, NULL);
     94    Nbytes = gfits_matrix_size (&header);
     95    fseek (f, Nbytes, SEEK_CUR);
     96  }
     97
     98  // catalog[0].secfilt = gfits_table_get_SecFilt (&ftable, &Nitems, NULL);
    9999  // catalog[0].Nsecfilt = Nitems / catalog[0].Naverage;
    100100
    101101  /* read secfilt table header */
    102   if (!fits_fread_header (f, &header)) {
     102  if (!gfits_fread_header (f, &header)) {
    103103    if (VERBOSE) fprintf (stderr, "can't read table secfilt header");
    104104    return (FALSE);
     
    106106  /* read secfilt table data */
    107107  if (catalog[0].catflags & LOAD_SECF) {
    108     if (!fits_fread_ftable_data (f, &ftable)) {
     108    if (!gfits_fread_ftable_data (f, &ftable)) {
    109109      if (VERBOSE) fprintf (stderr, "can't read table secfilt data");
    110110      return (FALSE);
     
    117117  } else {
    118118    /* no real need to skip the data array here... */
    119     Nbytes = fits_matrix_size (&header);
     119    Nbytes = gfits_matrix_size (&header);
    120120    fseek (f, Nbytes, SEEK_CUR);
    121121  }
     
    139139
    140140  /* make sure header is consistent with data */
    141   fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
    142   fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
    143   fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
    144   fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
    145   fits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
     141  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
     142  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
     143  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
     144  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
     145  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    146146
    147147  f = catalog[0].f;
     
    152152
    153153  /* write table PHU header */
    154   if (!fits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
     154  if (!gfits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
    155155    fprintf (stderr, "can't write primary header");
    156156    return (FALSE);
     
    158158
    159159  /* this is probably a NOP, do I have to keep it in? */
    160   fits_create_matrix (&catalog[0].header, &matrix);
    161   if (!fits_fwrite_matrix  (catalog[0].f, &matrix)) {
     160  gfits_create_matrix (&catalog[0].header, &matrix);
     161  if (!gfits_fwrite_matrix  (catalog[0].f, &matrix)) {
    162162    fprintf (stderr, "can't write primary matrix");
    163163    return (FALSE);
    164164  }
    165   fits_free_matrix (&matrix);
     165  gfits_free_matrix (&matrix);
    166166
    167167  /* write out Average table (convert to FITS table format) */
    168168  AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat);
    169   if (!fits_fwrite_Theader (catalog[0].f, &header)) {
    170     fprintf (stderr, "can't write table header");
    171     return (FALSE);
    172   }
    173   if (!fits_fwrite_table (catalog[0].f, &ftable)) {
    174     fprintf (stderr, "can't write table data");
    175     return (FALSE);
    176   }
    177   fits_free_table (&ftable);
    178   fits_free_header (&header);
     169  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     170    fprintf (stderr, "can't write table header");
     171    return (FALSE);
     172  }
     173  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
     174    fprintf (stderr, "can't write table data");
     175    return (FALSE);
     176  }
     177  gfits_free_table (&ftable);
     178  gfits_free_header (&header);
    179179
    180180  /* write out Measure table (convert to FITS table format) */
    181181  MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat);
    182   if (!fits_fwrite_Theader (catalog[0].f, &header)) {
    183     fprintf (stderr, "can't write table header");
    184     return (FALSE);
    185   }
    186   if (!fits_fwrite_table (catalog[0].f, &ftable)) {
    187     fprintf (stderr, "can't write table data");
    188     return (FALSE);
    189   }
    190   fits_free_table (&ftable);
    191   fits_free_header (&header);
     182  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     183    fprintf (stderr, "can't write table header");
     184    return (FALSE);
     185  }
     186  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
     187    fprintf (stderr, "can't write table data");
     188    return (FALSE);
     189  }
     190  gfits_free_table (&ftable);
     191  gfits_free_header (&header);
    192192
    193193  /* write out Missing table (convert to FITS table format) */
    194   fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
    195   if (!fits_fwrite_Theader (catalog[0].f, &header)) {
    196     fprintf (stderr, "can't write table header");
    197     return (FALSE);
    198   }
    199   if (!fits_fwrite_table (catalog[0].f, &ftable)) {
    200     fprintf (stderr, "can't write table data");
    201     return (FALSE);
    202   }
    203   fits_free_table (&ftable);
    204   fits_free_header (&header);
     194  gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
     195  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     196    fprintf (stderr, "can't write table header");
     197    return (FALSE);
     198  }
     199  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
     200    fprintf (stderr, "can't write table data");
     201    return (FALSE);
     202  }
     203  gfits_free_table (&ftable);
     204  gfits_free_header (&header);
    205205
    206206  /* write out SecFilt table (convert to FITS table format) */
    207207  Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
    208208  SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat);
    209   if (!fits_fwrite_Theader (catalog[0].f, &header)) {
    210     fprintf (stderr, "can't write table header");
    211     return (FALSE);
    212   }
    213   if (!fits_fwrite_table (catalog[0].f, &ftable)) {
    214     fprintf (stderr, "can't write table data");
    215     return (FALSE);
    216   }
    217   fits_free_table (&ftable);
    218   fits_free_header (&header);
     209  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     210    fprintf (stderr, "can't write table header");
     211    return (FALSE);
     212  }
     213  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
     214    fprintf (stderr, "can't write table data");
     215    return (FALSE);
     216  }
     217  gfits_free_table (&ftable);
     218  gfits_free_header (&header);
    219219
    220220  return (TRUE);
  • trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c

    r6683 r7080  
    2020  /* get the components from the header */
    2121  catalog[0].Naverage = catalog[0].Nmeasure = catalog[0].Nmissing = catalog[0].Nsecfilt = 0;
    22   if (!fits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &catalog[0].Naverage)) return (FALSE);
    23   if (!fits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &catalog[0].Nmeasure)) return (FALSE);
    24   if (!fits_scan (&catalog[0].header, "NMISS",    "%d", 1, &catalog[0].Nmissing)) return (FALSE);
    25   if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0;
     22  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &catalog[0].Naverage)) return (FALSE);
     23  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &catalog[0].Nmeasure)) return (FALSE);
     24  if (!gfits_scan (&catalog[0].header, "NMISS",    "%d", 1, &catalog[0].Nmissing)) return (FALSE);
     25  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0;
    2626
    2727  /* determine catalog format */
    2828  catalog[0].catformat = DVO_FORMAT_UNDEF;
    29   if (fits_scan (&catalog[0].header, "FORMAT",  "%s", 1, format)) {
     29  if (gfits_scan (&catalog[0].header, "FORMAT",  "%s", 1, format)) {
    3030    if (!strcmp (format, "INTERNAL")) catalog[0].catformat = DVO_FORMAT_INTERNAL;
    3131    if (!strcmp (format, "LONEOS")) catalog[0].catformat = DVO_FORMAT_LONEOS;
     
    3535    if (catalog[0].catformat != DVO_FORMAT_UNDEF) goto got_format;
    3636  }
    37   if (fits_scan (&catalog[0].header, "NEWMEAS",  "%t", 1, &NewMeasure)) {
     37  if (gfits_scan (&catalog[0].header, "NEWMEAS",  "%t", 1, &NewMeasure)) {
    3838    catalog[0].catformat = DVO_FORMAT_ELIXIR;
    3939    goto got_format;
    4040  }
    41   if (fits_scan (&catalog[0].header, "TELESCOP",  "%s", 1, telescope)) {
     41  if (gfits_scan (&catalog[0].header, "TELESCOP",  "%s", 1, telescope)) {
    4242    if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) {
    4343      catalog[0].catformat = DVO_FORMAT_LONEOS;
     
    145145      return (FALSE);
    146146    }
    147     fits_convert_Missing (catalog[0].missing, MissingSize, Nitems);
     147    gfits_convert_Missing (catalog[0].missing, MissingSize, Nitems);
    148148  } else {
    149149    /* skip over missings */
     
    194194
    195195  /* make sure header is consistent with data */
    196   fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
    197   fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
    198   fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
    199   fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
     196  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
     197  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
     198  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
     199  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
    200200
    201201  /* specify the appropriate data format */
    202   if (catalog[0].catformat == DVO_FORMAT_INTERNAL)  fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL");
    203   if (catalog[0].catformat == DVO_FORMAT_LONEOS)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS");
    204   if (catalog[0].catformat == DVO_FORMAT_ELIXIR)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR");
    205   if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");
    206   if (catalog[0].catformat == DVO_FORMAT_PMTEST)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");
     202  if (catalog[0].catformat == DVO_FORMAT_INTERNAL)  gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL");
     203  if (catalog[0].catformat == DVO_FORMAT_LONEOS)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS");
     204  if (catalog[0].catformat == DVO_FORMAT_ELIXIR)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR");
     205  if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");
     206  if (catalog[0].catformat == DVO_FORMAT_PMTEST)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");
    207207
    208208  /* rewind file pointers and truncate file */
     
    211211  ftruncate (fileno (catalog[0].f), 0);
    212212
    213   /* write header data (use fits_write_header?) */
     213  /* write header data (use gfits_write_header?) */
    214214  nitems = fwrite (catalog[0].header.buffer, 1, catalog[0].header.size, f);
    215215  if (nitems != catalog[0].header.size) {
     
    224224  /* write missing data */
    225225  Nitems = catalog[0].Nmissing;
    226   fits_convert_Missing (catalog[0].missing, sizeof(Missing), Nitems);
     226  gfits_convert_Missing (catalog[0].missing, sizeof(Missing), Nitems);
    227227  nitems = fwrite (catalog[0].missing, sizeof(Missing), Nitems, f);
    228228  if (nitems != Nitems) {
     
    260260        return (NULL);
    261261      }
    262       fits_convert_Average (average, sizeof(Average), Naverage);
     262      gfits_convert_Average (average, sizeof(Average), Naverage);
    263263      break;
    264264    case DVO_FORMAT_ELIXIR:
     
    269269        return (NULL);
    270270      }
    271       fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
     271      gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
    272272      average = AverageElixirToInternal (tmpAverageElixir, Naverage);
    273273      free (tmpAverageElixir);
     
    280280        return (NULL);
    281281      }
    282       fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
     282      gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
    283283      average = AverageLoneosToInternal (tmpAverageLoneos, Naverage);
    284284      free (tmpAverageLoneos);
     
    291291        return (NULL);
    292292      }
    293       fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
     293      gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
    294294      average = AveragePanstarrsToInternal (tmpAveragePanstarrs, Naverage);
    295295      free (tmpAveragePanstarrs);
     
    302302        return (NULL);
    303303      }
    304       fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
     304      gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
    305305      average = AveragePMtestToInternal (tmpAveragePMtest, Naverage);
    306306      free (tmpAveragePMtest);
     
    325325  switch (format) {
    326326    case DVO_FORMAT_INTERNAL:
    327       fits_convert_Average (average, sizeof(Average), Naverage);
     327      gfits_convert_Average (average, sizeof(Average), Naverage);
    328328      nitems = fwrite (average, sizeof(Average), Naverage, f);
    329329      if (nitems != Naverage) {
     
    334334    case DVO_FORMAT_ELIXIR:
    335335      tmpAverageElixir = AverageInternalToElixir (average, Naverage);
    336       fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
     336      gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
    337337      nitems = fwrite (tmpAverageElixir, sizeof(AverageElixir), Naverage, f);
    338338      free (tmpAverageElixir);
     
    344344    case DVO_FORMAT_LONEOS:
    345345      tmpAverageLoneos = AverageInternalToLoneos (average, Naverage);
    346       fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
     346      gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
    347347      nitems = fwrite (tmpAverageLoneos, sizeof(AverageLoneos), Naverage, f);
    348348      free (tmpAverageLoneos);
     
    354354    case DVO_FORMAT_PANSTARRS:
    355355      tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage);
    356       fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
     356      gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
    357357      nitems = fwrite (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage, f);
    358358      free (tmpAveragePanstarrs);
     
    364364    case DVO_FORMAT_PMTEST:
    365365      tmpAveragePMtest = AverageInternalToPMtest (average, Naverage);
    366       fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
     366      gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
    367367      nitems = fwrite (tmpAveragePMtest, sizeof(AveragePMtest), Naverage, f);
    368368      free (tmpAveragePMtest);
     
    397397        return (NULL);
    398398      }
    399       fits_convert_Measure (measure, sizeof(Measure), Nmeasure);
     399      gfits_convert_Measure (measure, sizeof(Measure), Nmeasure);
    400400      break;
    401401    case DVO_FORMAT_ELIXIR:
     
    406406        return (NULL);
    407407      }
    408       fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
     408      gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
    409409      measure = MeasureElixirToInternal (tmpMeasureElixir, Nmeasure);
    410410      free (tmpMeasureElixir);
     
    417417        return (NULL);
    418418      }
    419       fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
     419      gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
    420420      measure = MeasureLoneosToInternal (tmpMeasureLoneos, Nmeasure);
    421421      free (tmpMeasureLoneos);
     
    429429        return (NULL);
    430430      }
    431       fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
     431      gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
    432432      measure = MeasurePanstarrsToInternal (tmpMeasurePanstarrs, Nmeasure);
    433433      free (tmpMeasurePanstarrs);
     
    451451  switch (format) {
    452452    case DVO_FORMAT_INTERNAL:
    453       fits_convert_Measure (measure, sizeof(Measure), Nmeasure);
     453      gfits_convert_Measure (measure, sizeof(Measure), Nmeasure);
    454454      nitems = fwrite (measure, sizeof(Measure), Nmeasure, f);
    455455      if (nitems != Nmeasure) {
     
    460460    case DVO_FORMAT_ELIXIR:
    461461      tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure);
    462       fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
     462      gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
    463463      nitems = fwrite (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure, f);
    464464      free (tmpMeasureElixir);
     
    470470    case DVO_FORMAT_LONEOS:
    471471      tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure);
    472       fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
     472      gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
    473473      nitems = fwrite (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure, f);
    474474      free (tmpMeasureLoneos);
     
    481481    case DVO_FORMAT_PMTEST:
    482482      tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure);
    483       fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
     483      gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
    484484      nitems = fwrite (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f);
    485485      free (tmpMeasurePanstarrs);
     
    514514        return (NULL);
    515515      }
    516       fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
     516      gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
    517517      break;
    518518    case DVO_FORMAT_ELIXIR:
     
    523523        return (NULL);
    524524      }
    525       fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
     525      gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
    526526      secfilt = SecFiltElixirToInternal (tmpSecFiltElixir, Nsecfilt);
    527527      free (tmpSecFiltElixir);
     
    534534        return (NULL);
    535535      }
    536       fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
     536      gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
    537537      secfilt = SecFiltLoneosToInternal (tmpSecFiltLoneos, Nsecfilt);
    538538      free (tmpSecFiltLoneos);
     
    546546        return (NULL);
    547547      }
    548       fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
     548      gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
    549549      secfilt = SecFiltPanstarrsToInternal (tmpSecFiltPanstarrs, Nsecfilt);
    550550      free (tmpSecFiltPanstarrs);
     
    568568  switch (format) {
    569569    case DVO_FORMAT_INTERNAL:
    570       fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
     570      gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
    571571      nitems = fwrite (secfilt, sizeof(SecFilt), Nsecfilt, f);
    572572      if (nitems != Nsecfilt) {
     
    577577    case DVO_FORMAT_ELIXIR:
    578578      tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt);
    579       fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
     579      gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
    580580      nitems = fwrite (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt, f);
    581581      free (tmpSecFiltElixir);
     
    587587    case DVO_FORMAT_LONEOS:
    588588      tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt);
    589       fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
     589      gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
    590590      nitems = fwrite (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt, f);
    591591      free (tmpSecFiltLoneos);
     
    598598    case DVO_FORMAT_PMTEST:
    599599      tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
    600       fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
     600      gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
    601601      nitems = fwrite (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f);
    602602      free (tmpSecFiltPanstarrs);
  • trunk/Ohana/src/libdvo/src/dvo_catalog_split.c

    r5320 r7080  
    1717
    1818  /* get the components from the header - these duplicate information in the split files (NAXIS2) */
    19   if (!fits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
    20   if (!fits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
    21   if (!fits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
    22   if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
     19  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%d", 1, &Naverage)) return (FALSE);
     20  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%d", 1, &Nmeasure)) return (FALSE);
     21  if (!gfits_scan (&catalog[0].header, "NMISS",    "%d", 1, &Nmissing)) return (FALSE);
     22  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
    2323
    2424  /**  Nsecfilt is unusual: it does not list the number of data items in the table
     
    4040    fseek (catalog[0].f, catalog[0].header.size, SEEK_SET);
    4141    /* matrix should be empty */
    42     if (!fits_fread_matrix (catalog[0].f, &matrix, &catalog[0].header)) {
     42    if (!gfits_fread_matrix (catalog[0].f, &matrix, &catalog[0].header)) {
    4343      if (VERBOSE) fprintf (stderr, "can't read primary matrix");
    4444      return (FALSE);
    4545    }
    4646    /* read Average table header */
    47     if (!fits_fread_header (catalog[0].f, &header)) {
     47    if (!gfits_fread_header (catalog[0].f, &header)) {
    4848      if (VERBOSE) fprintf (stderr, "can't read table average header");
    4949      return (FALSE);
    5050    }
    5151    /* read Average table data */
    52     if (!fits_fread_ftable_data (catalog[0].f, &ftable)) {
     52    if (!gfits_fread_ftable_data (catalog[0].f, &ftable)) {
    5353      if (VERBOSE) fprintf (stderr, "can't read table average data");
    5454      return (FALSE);
     
    5858      fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers (%d vs %d)\n", Naverage, catalog[0].Naverage);
    5959    }
    60     fits_free_header (&header);
     60    gfits_free_header (&header);
    6161  }
    6262
     
    7070
    7171    /* get split filename from main header (paths relative to cpt file) */
    72     if (!fits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
     72    if (!gfits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
    7373    ALLOCATE (measure[0].filename, char, strlen(path) + strlen(string) + 2);
    7474    sprintf (measure[0].filename, "%s/%s", path, string);
     
    8181
    8282    /* read PHU */
    83     if (!fits_load_header (measure[0].f, &measure[0].header)) {
     83    if (!gfits_load_header (measure[0].f, &measure[0].header)) {
    8484      if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", measure[0].filename);
    8585      return (FALSE);
    8686    }
    8787    /* matrix should be empty */
    88     if (!fits_fread_matrix (measure[0].f, &matrix, &measure[0].header)) {
     88    if (!gfits_fread_matrix (measure[0].f, &matrix, &measure[0].header)) {
    8989      if (VERBOSE) fprintf (stderr, "can't read primary matrix");
    9090      return (FALSE);
    9191    }
    9292    /* read Measure table header */
    93     if (!fits_fread_header (measure[0].f, &header)) {
     93    if (!gfits_fread_header (measure[0].f, &header)) {
    9494      if (VERBOSE) fprintf (stderr, "can't read measure PHU header");
    9595      return (FALSE);
    9696    }
    9797    /* read Measure table data */
    98     if (!fits_fread_ftable_data (measure[0].f, &ftable)) {
     98    if (!gfits_fread_ftable_data (measure[0].f, &ftable)) {
    9999      if (VERBOSE) fprintf (stderr, "can't read table measure data");
    100100      return (FALSE);
     
    106106    }
    107107    catalog[0].Nmeas_off = 0;
    108     fits_free_header (&header);
    109     fits_free_matrix (&matrix);
     108    gfits_free_header (&header);
     109    gfits_free_matrix (&matrix);
    110110  }
    111111
     
    115115
    116116    /* get split filename from main header (paths relative to cpt file) */
    117     if (!fits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
     117    if (!gfits_scan (&catalog[0].header, "MEASURE",  "%s", 1, string)) return (FALSE);
    118118    ALLOCATE (measure[0].filename, char, strlen(path) + strlen(string) + 2);
    119119    sprintf (measure[0].filename, "%s/%s", path, string);
     
    126126
    127127    /* read PHU */
    128     if (!fits_load_header (measure[0].f, &measure[0].header)) {
     128    if (!gfits_load_header (measure[0].f, &measure[0].header)) {
    129129      if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", measure[0].filename);
    130130      return (FALSE);
     
    147147
    148148    /* get split filename from main header (paths relative to cpt file) */
    149     if (!fits_scan (&catalog[0].header, "MISSING",  "%s", 1, string)) return (FALSE);
     149    if (!gfits_scan (&catalog[0].header, "MISSING",  "%s", 1, string)) return (FALSE);
    150150    ALLOCATE (missing[0].filename, char, strlen(path) + strlen(string) + 2);
    151151    sprintf (missing[0].filename, "%s/%s", path, string);
     
    158158
    159159    /* read PHU */
    160     if (!fits_load_header (missing[0].f, &missing[0].header)) {
     160    if (!gfits_load_header (missing[0].f, &missing[0].header)) {
    161161      if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", missing[0].filename);
    162162      return (FALSE);
    163163    }
    164164    /* matrix should be empty */
    165     if (!fits_fread_matrix (missing[0].f, &matrix, &missing[0].header)) {
     165    if (!gfits_fread_matrix (missing[0].f, &matrix, &missing[0].header)) {
    166166      if (VERBOSE) fprintf (stderr, "can't read primary matrix");
    167167      return (FALSE);
    168168    }
    169169    /* read Missing table header */
    170     if (!fits_fread_header (missing[0].f, &header)) {
     170    if (!gfits_fread_header (missing[0].f, &header)) {
    171171      if (VERBOSE) fprintf (stderr, "can't read table missing header");
    172172      return (FALSE);
    173173    }
    174174    /* read Missing table data */
    175     if (!fits_fread_ftable_data (missing[0].f, &ftable)) {
     175    if (!gfits_fread_ftable_data (missing[0].f, &ftable)) {
    176176      if (VERBOSE) fprintf (stderr, "can't read table missing data");
    177177      return (FALSE);
    178178    }
    179179    /* no conversions currently defined */
    180     catalog[0].missing = fits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
     180    catalog[0].missing = gfits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);
    181181    if (Nmissing != catalog[0].Nmissing) {
    182182      fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers (%d vs %d)\n", Nmissing, catalog[0].Nmissing);
    183183    }
    184     fits_free_header (&header);
    185     fits_free_matrix (&matrix);
     184    gfits_free_header (&header);
     185    gfits_free_matrix (&matrix);
    186186  }
    187187  catalog[0].missing_catalog = missing;
     
    194194 
    195195    /* get split filename from main header (paths relative to cpt file) */
    196     if (!fits_scan (&catalog[0].header, "SECFILT",  "%s", 1, string)) return (FALSE);
     196    if (!gfits_scan (&catalog[0].header, "SECFILT",  "%s", 1, string)) return (FALSE);
    197197    ALLOCATE (secfilt[0].filename, char, strlen(path) + strlen(string) + 2);
    198198    sprintf (secfilt[0].filename, "%s/%s", path, string);
     
    205205
    206206    /* read PHU */
    207     if (!fits_load_header (secfilt[0].f, &secfilt[0].header)) {
     207    if (!gfits_load_header (secfilt[0].f, &secfilt[0].header)) {
    208208      if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", secfilt[0].filename);
    209209      return (FALSE);
    210210    }
    211211    /* matrix should be empty */
    212     if (!fits_fread_matrix (secfilt[0].f, &matrix, &secfilt[0].header)) {
     212    if (!gfits_fread_matrix (secfilt[0].f, &matrix, &secfilt[0].header)) {
    213213      if (VERBOSE) fprintf (stderr, "can't read primary matrix");
    214214      return (FALSE);
    215215    }
    216216    /* read secfilt table header */
    217     if (!fits_fread_header (secfilt[0].f, &header)) {
     217    if (!gfits_fread_header (secfilt[0].f, &header)) {
    218218      if (VERBOSE) fprintf (stderr, "can't read table secfilt header");
    219219      return (FALSE);
    220220    }
    221221    /* read secfilt table data */
    222     if (!fits_fread_ftable_data (secfilt[0].f, &ftable)) {
     222    if (!gfits_fread_ftable_data (secfilt[0].f, &ftable)) {
    223223      if (VERBOSE) fprintf (stderr, "can't read table secfilt data");
    224224      return (FALSE);
     
    229229      fprintf (stderr, "Warning: mismatch between Nsecfilt items in PHU and Table headers (%d vs %d)\n", Nexpect, Nitems);
    230230    }
    231     fits_free_header (&header);
    232     fits_free_matrix (&matrix);
     231    gfits_free_header (&header);
     232    gfits_free_matrix (&matrix);
    233233  }
    234234  catalog[0].secfilt_catalog = secfilt;
     
    260260
    261261  /* make sure header is consistent with data */
    262   fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
    263   fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
    264   fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
    265   fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
    266   fits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
     262  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
     263  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure);
     264  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
     265  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
     266  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    267267
    268268  /* rewind file pointers and truncate (file is still open) */
     
    271271  /* write table PHU header - always write this out */
    272272  /* XXX EAM : check if disk file size has changed */
    273   if (!fits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
     273  if (!gfits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
    274274    fprintf (stderr, "can't write primary header");
    275275    return (FALSE);
     
    284284
    285285    /* this is probably a NOP, do I have to keep it in? */
    286     fits_create_matrix (&catalog[0].header, &matrix);
    287     if (!fits_fwrite_matrix  (catalog[0].f, &matrix)) {
     286    gfits_create_matrix (&catalog[0].header, &matrix);
     287    if (!gfits_fwrite_matrix  (catalog[0].f, &matrix)) {
    288288      fprintf (stderr, "can't write primary matrix");
    289289      return (FALSE);
    290290    }
    291     fits_free_matrix (&matrix);
     291    gfits_free_matrix (&matrix);
    292292
    293293    /* write out Average table (convert to FITS table format) */
    294294    AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat);
    295     if (!fits_fwrite_Theader (catalog[0].f, &header)) {
    296       fprintf (stderr, "can't write table header");
    297       return (FALSE);
    298     }
    299     if (!fits_fwrite_table (catalog[0].f, &ftable)) {
    300       fprintf (stderr, "can't write table data");
    301       return (FALSE);
    302     }
    303     fits_free_table (&ftable);
    304     fits_free_header (&header);
     295    if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     296      fprintf (stderr, "can't write table header");
     297      return (FALSE);
     298    }
     299    if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
     300      fprintf (stderr, "can't write table data");
     301      return (FALSE);
     302    }
     303    gfits_free_table (&ftable);
     304    gfits_free_header (&header);
    305305  }
    306306
     
    322322
    323323    /* write table PHU header */
    324     if (!fits_fwrite_header  (measure[0].f, &measure[0].header)) {
     324    if (!gfits_fwrite_header  (measure[0].f, &measure[0].header)) {
    325325      fprintf (stderr, "can't write primary header");
    326326      return (FALSE);
     
    328328
    329329    /* this is probably a NOP, do I have to keep it in? */
    330     fits_create_matrix (&measure[0].header, &matrix);
    331     if (!fits_fwrite_matrix  (measure[0].f, &matrix)) {
     330    gfits_create_matrix (&measure[0].header, &matrix);
     331    if (!gfits_fwrite_matrix  (measure[0].f, &matrix)) {
    332332      fprintf (stderr, "can't write primary matrix");
    333333      return (FALSE);
    334334    }
    335     fits_free_matrix (&matrix);
     335    gfits_free_matrix (&matrix);
    336336
    337337    /* write out Measure table (convert to FITS table format) */
    338338    MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat);
    339     if (!fits_fwrite_Theader (measure[0].f, &header)) {
    340       fprintf (stderr, "can't write table header");
    341       return (FALSE);
    342     }
    343     if (!fits_fwrite_table (measure[0].f, &ftable)) {
    344       fprintf (stderr, "can't write table data");
    345       return (FALSE);
    346     }
    347     fits_free_table (&ftable);
    348     fits_free_header (&header);
     339    if (!gfits_fwrite_Theader (measure[0].f, &header)) {
     340      fprintf (stderr, "can't write table header");
     341      return (FALSE);
     342    }
     343    if (!gfits_fwrite_table (measure[0].f, &ftable)) {
     344      fprintf (stderr, "can't write table data");
     345      return (FALSE);
     346    }
     347    gfits_free_table (&ftable);
     348    gfits_free_header (&header);
    349349  }
    350350
     
    360360
    361361    /* write table PHU header */
    362     if (!fits_fwrite_header  (missing[0].f, &missing[0].header)) {
     362    if (!gfits_fwrite_header  (missing[0].f, &missing[0].header)) {
    363363      fprintf (stderr, "can't write primary header");
    364364      return (FALSE);
     
    366366
    367367    /* this is probably a NOP, do I have to keep it in? */
    368     fits_create_matrix (&missing[0].header, &matrix);
    369     if (!fits_fwrite_matrix  (missing[0].f, &matrix)) {
     368    gfits_create_matrix (&missing[0].header, &matrix);
     369    if (!gfits_fwrite_matrix  (missing[0].f, &matrix)) {
    370370      fprintf (stderr, "can't write primary matrix");
    371371      return (FALSE);
    372372    }
    373     fits_free_matrix (&matrix);
     373    gfits_free_matrix (&matrix);
    374374
    375375    /* write out Missing table (convert to FITS table format) */
    376     fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
    377     if (!fits_fwrite_Theader (missing[0].f, &header)) {
    378       fprintf (stderr, "can't write table header");
    379       return (FALSE);
    380     }
    381     if (!fits_fwrite_table (missing[0].f, &ftable)) {
    382       fprintf (stderr, "can't write table data");
    383       return (FALSE);
    384     }
    385     fits_free_table (&ftable);
    386     fits_free_header (&header);
     376    gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
     377    if (!gfits_fwrite_Theader (missing[0].f, &header)) {
     378      fprintf (stderr, "can't write table header");
     379      return (FALSE);
     380    }
     381    if (!gfits_fwrite_table (missing[0].f, &ftable)) {
     382      fprintf (stderr, "can't write table data");
     383      return (FALSE);
     384    }
     385    gfits_free_table (&ftable);
     386    gfits_free_header (&header);
    387387  }
    388388
     
    398398
    399399    /* write table PHU header */
    400     if (!fits_fwrite_header  (secfilt[0].f, &secfilt[0].header)) {
     400    if (!gfits_fwrite_header  (secfilt[0].f, &secfilt[0].header)) {
    401401      fprintf (stderr, "can't write primary header");
    402402      return (FALSE);
     
    404404
    405405    /* this is probably a NOP, do I have to keep it in? */
    406     fits_create_matrix (&secfilt[0].header, &matrix);
    407     if (!fits_fwrite_matrix  (secfilt[0].f, &matrix)) {
     406    gfits_create_matrix (&secfilt[0].header, &matrix);
     407    if (!gfits_fwrite_matrix  (secfilt[0].f, &matrix)) {
    408408      fprintf (stderr, "can't write primary matrix");
    409409      return (FALSE);
    410410    }
    411     fits_free_matrix (&matrix);
     411    gfits_free_matrix (&matrix);
    412412
    413413    /* write out SecFilt table (convert to FITS table format) */
    414414    Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
    415415    SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat);
    416     if (!fits_fwrite_Theader (secfilt[0].f, &header)) {
    417       fprintf (stderr, "can't write table header");
    418       return (FALSE);
    419     }
    420     if (!fits_fwrite_table (secfilt[0].f, &ftable)) {
    421       fprintf (stderr, "can't write table data");
    422       return (FALSE);
    423     }
    424     fits_free_table (&ftable);
    425     fits_free_header (&header);
     416    if (!gfits_fwrite_Theader (secfilt[0].f, &header)) {
     417      fprintf (stderr, "can't write table header");
     418      return (FALSE);
     419    }
     420    if (!gfits_fwrite_table (secfilt[0].f, &ftable)) {
     421      fprintf (stderr, "can't write table data");
     422      return (FALSE);
     423    }
     424    gfits_free_table (&ftable);
     425    gfits_free_header (&header);
    426426  }
    427427
     
    453453
    454454  /* make sure header is consistent with data */
    455   fits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
    456   fits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure + catalog[0].Nmeas_off);
    457   fits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
    458   fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
    459   fits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
     455  gfits_modify (&catalog[0].header, "NSTARS",   "%d", 1, catalog[0].Naverage);
     456  gfits_modify (&catalog[0].header, "NMEAS",    "%d", 1, catalog[0].Nmeasure + catalog[0].Nmeas_off);
     457  gfits_modify (&catalog[0].header, "NMISS",    "%d", 1, catalog[0].Nmissing);
     458  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);
     459  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    460460
    461461  /* rewind file pointers and truncate (file is still open) */
     
    464464  /* write table PHU header - always write this out */
    465465  /* XXX EAM : check if disk file size has changed */
    466   if (!fits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
     466  if (!gfits_fwrite_header  (catalog[0].f, &catalog[0].header)) {
    467467    fprintf (stderr, "can't write primary header");
    468468    return (FALSE);
     
    474474
    475475    /* skip past matrix (already at end of header) */
    476     Nskip = fits_matrix_size (&catalog[0].header);
     476    Nskip = gfits_matrix_size (&catalog[0].header);
    477477    fseek (catalog[0].f, Nskip, SEEK_CUR);
    478478
     
    483483    AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat);
    484484    /* convert only output rows to vtable */
    485     fits_table_to_vtable (&ftable, &vtable, catalog[0].Nave_disk, Nout);
    486 
    487     if (!fits_fwrite_Theader (catalog[0].f, &header)) {
    488       fprintf (stderr, "can't write table header");
    489       return (FALSE);
    490     }
    491     if (!fits_fwrite_vtable (catalog[0].f, &vtable)) {
    492       fprintf (stderr, "can't write table data");
    493       return (FALSE);
    494     }
    495     fits_free_vtable (&vtable);
    496     fits_free_table (&ftable);
    497     fits_free_header (&header);
     485    gfits_table_to_vtable (&ftable, &vtable, catalog[0].Nave_disk, Nout);
     486
     487    if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     488      fprintf (stderr, "can't write table header");
     489      return (FALSE);
     490    }
     491    if (!gfits_fwrite_vtable (catalog[0].f, &vtable)) {
     492      fprintf (stderr, "can't write table data");
     493      return (FALSE);
     494    }
     495    gfits_free_vtable (&vtable);
     496    gfits_free_table (&ftable);
     497    gfits_free_header (&header);
    498498  }
    499499
     
    505505
    506506    /* skip past PHU header and matrix */
    507     Nskip = measure[0].header.size + fits_matrix_size (&measure[0].header);
     507    Nskip = measure[0].header.size + gfits_matrix_size (&measure[0].header);
    508508    fseek (measure[0].f, Nskip, SEEK_SET);
    509509
     
    516516    MeasureToFtable (&ftable, &catalog[0].measure[Nstart], Nout, catalog[0].catformat);
    517517
    518     fits_scan (&header, "NAXIS1", "%d", 1, &Nx);
    519     fits_scan (&header, "NAXIS2", "%d", 1, &Ny);
     518    gfits_scan (&header, "NAXIS1", "%d", 1, &Nx);
     519    gfits_scan (&header, "NAXIS2", "%d", 1, &Ny);
    520520
    521521    /* convert all output rows to vtable */
     
    529529
    530530    /* modify vtable to represent full disk table */
    531     fits_modify (&header, "NAXIS2", "%d", 1, Nlines);
     531    gfits_modify (&header, "NAXIS2", "%d", 1, Nlines);
    532532    header.Naxis[1] = Nlines;
    533533
    534     vtable.size = fits_matrix_size (&header);
     534    vtable.size = gfits_matrix_size (&header);
    535535    vtable.Nrow = Nout;
    536536    vtable.pad = vtable.size - Nx*Ny;
    537537
    538     if (!fits_fwrite_Theader (measure[0].f, &header)) {
    539       fprintf (stderr, "can't write table header");
    540       return (FALSE);
    541     }
    542     if (!fits_fwrite_vtable (measure[0].f, &vtable)) {
    543       fprintf (stderr, "can't write table data");
    544       return (FALSE);
    545     }
    546     fits_free_vtable (&vtable);
    547     fits_free_table (&ftable);
    548     fits_free_header (&header);
     538    if (!gfits_fwrite_Theader (measure[0].f, &header)) {
     539      fprintf (stderr, "can't write table header");
     540      return (FALSE);
     541    }
     542    if (!gfits_fwrite_vtable (measure[0].f, &vtable)) {
     543      fprintf (stderr, "can't write table data");
     544      return (FALSE);
     545    }
     546    gfits_free_vtable (&vtable);
     547    gfits_free_table (&ftable);
     548    gfits_free_header (&header);
    549549  }
    550550
     
    562562
    563563    /* write table PHU header */
    564     if (!fits_fwrite_header  (missing[0].f, &missing[0].header)) {
     564    if (!gfits_fwrite_header  (missing[0].f, &missing[0].header)) {
    565565      fprintf (stderr, "can't write primary header");
    566566      return (FALSE);
     
    568568
    569569    /* this is probably a NOP, do I have to keep it in? */
    570     fits_create_matrix (&missing[0].header, &matrix);
    571     if (!fits_fwrite_matrix  (missing[0].f, &matrix)) {
     570    gfits_create_matrix (&missing[0].header, &matrix);
     571    if (!gfits_fwrite_matrix  (missing[0].f, &matrix)) {
    572572      fprintf (stderr, "can't write primary matrix");
    573573      return (FALSE);
    574574    }
    575     fits_free_matrix (&matrix);
     575    gfits_free_matrix (&matrix);
    576576
    577577    /* write out Missing table (convert to FITS table format) */
    578     fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
    579     if (!fits_fwrite_Theader (missing[0].f, &header)) {
    580       fprintf (stderr, "can't write table header");
    581       return (FALSE);
    582     }
    583     if (!fits_fwrite_table (missing[0].f, &ftable)) {
    584       fprintf (stderr, "can't write table data");
    585       return (FALSE);
    586     }
    587     fits_free_table (&ftable);
    588     fits_free_header (&header);
     578    gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
     579    if (!gfits_fwrite_Theader (missing[0].f, &header)) {
     580      fprintf (stderr, "can't write table header");
     581      return (FALSE);
     582    }
     583    if (!gfits_fwrite_table (missing[0].f, &ftable)) {
     584      fprintf (stderr, "can't write table data");
     585      return (FALSE);
     586    }
     587    gfits_free_table (&ftable);
     588    gfits_free_header (&header);
    589589  }
    590590
     
    596596
    597597    /* skip past PHU header and matrix */
    598     Nskip = secfilt[0].header.size + fits_matrix_size (&secfilt[0].header);
     598    Nskip = secfilt[0].header.size + gfits_matrix_size (&secfilt[0].header);
    599599    fseek (secfilt[0].f, Nskip, SEEK_SET);
    600600
     
    607607    SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat);
    608608    /* convert only output rows to vtable */
    609     fits_table_to_vtable (&ftable, &vtable, Ndisk, Nout);
    610 
    611     if (!fits_fwrite_Theader (secfilt[0].f, &header)) {
    612       fprintf (stderr, "can't write table header");
    613       return (FALSE);
    614     }
    615     if (!fits_fwrite_vtable (secfilt[0].f, &vtable)) {
    616       fprintf (stderr, "can't write table data");
    617       return (FALSE);
    618     }
    619     fits_free_vtable (&vtable);
    620     fits_free_table (&ftable);
    621     fits_free_header (&header);
     609    gfits_table_to_vtable (&ftable, &vtable, Ndisk, Nout);
     610
     611    if (!gfits_fwrite_Theader (secfilt[0].f, &header)) {
     612      fprintf (stderr, "can't write table header");
     613      return (FALSE);
     614    }
     615    if (!gfits_fwrite_vtable (secfilt[0].f, &vtable)) {
     616      fprintf (stderr, "can't write table data");
     617      return (FALSE);
     618    }
     619    gfits_free_vtable (&vtable);
     620    gfits_free_table (&ftable);
     621    gfits_free_header (&header);
    622622  }
    623623
  • trunk/Ohana/src/libdvo/src/dvo_convert.c

    r6683 r7080  
    1919
    2020  /* convert to the internal format */
    21   if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     21  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
    2222    fprintf (stderr, "EXTNAME missing for average table\n");
    2323    return (FALSE);
    2424  }
    2525  if (!strcmp (extname, "DVO_AVERAGE")) {
    26     average = fits_table_get_Average (ftable, Naverage, NULL);
     26    average = gfits_table_get_Average (ftable, Naverage, NULL);
    2727    *format = DVO_FORMAT_INTERNAL;
    2828    return (average);
     
    3030  if (!strcmp (extname, "DVO_AVERAGE_ELIXIR")) {
    3131    AverageElixir *tmpAverage;
    32     tmpAverage = fits_table_get_AverageElixir (ftable, Naverage, NULL);
     32    tmpAverage = gfits_table_get_AverageElixir (ftable, Naverage, NULL);
    3333    average = AverageElixirToInternal (tmpAverage, *Naverage);
    3434    free (tmpAverage);
     
    3838  if (!strcmp (extname, "DVO_AVERAGE_LONEOS")) {
    3939    AverageLoneos *tmpAverage;
    40     tmpAverage = fits_table_get_AverageLoneos (ftable, Naverage, NULL);
     40    tmpAverage = gfits_table_get_AverageLoneos (ftable, Naverage, NULL);
    4141    average = AverageLoneosToInternal (tmpAverage, *Naverage);
    4242    free (tmpAverage);
     
    4646  if (!strcmp (extname, "DVO_AVERAGE_PANSTARRS")) {
    4747    AveragePanstarrs *tmpAverage;
    48     tmpAverage = fits_table_get_AveragePanstarrs (ftable, Naverage, NULL);
     48    tmpAverage = gfits_table_get_AveragePanstarrs (ftable, Naverage, NULL);
    4949    average = AveragePanstarrsToInternal (tmpAverage, *Naverage);
    5050    free (tmpAverage);
     
    5454  if (!strcmp (extname, "DVO_AVERAGE_PMTEST")) {
    5555    AveragePMtest *tmpAverage;
    56     tmpAverage = fits_table_get_AveragePMtest (ftable, Naverage, NULL);
     56    tmpAverage = gfits_table_get_AveragePMtest (ftable, Naverage, NULL);
    5757    average = AveragePMtestToInternal (tmpAverage, *Naverage);
    5858    free (tmpAverage);
     
    7777  switch (format) {
    7878    case DVO_FORMAT_INTERNAL:
    79       fits_table_set_Average (ftable, average, Naverage);
     79      gfits_table_set_Average (ftable, average, Naverage);
    8080      break;
    8181    case DVO_FORMAT_ELIXIR:
    8282      tmpAverageElixir = AverageInternalToElixir (average, Naverage);
    83       fits_table_set_AverageElixir (ftable, tmpAverageElixir, Naverage);
     83      gfits_table_set_AverageElixir (ftable, tmpAverageElixir, Naverage);
    8484      free (tmpAverageElixir);
    8585      break;
    8686    case DVO_FORMAT_LONEOS:
    8787      tmpAverageLoneos  = AverageInternalToLoneos (average, Naverage);
    88       fits_table_set_AverageLoneos (ftable, tmpAverageLoneos , Naverage);
     88      gfits_table_set_AverageLoneos (ftable, tmpAverageLoneos , Naverage);
    8989      free (tmpAverageLoneos );
    9090      break;
    9191    case DVO_FORMAT_PANSTARRS:
    9292      tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage);
    93       fits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage);
     93      gfits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage);
    9494      free (tmpAveragePanstarrs);
    9595      break;
    9696    case DVO_FORMAT_PMTEST:
    9797      tmpAveragePMtest = AverageInternalToPMtest (average, Naverage);
    98       fits_table_set_AveragePMtest (ftable, tmpAveragePMtest, Naverage);
     98      gfits_table_set_AveragePMtest (ftable, tmpAveragePMtest, Naverage);
    9999      free (tmpAveragePMtest);
    100100      break;
     
    114114
    115115  /* convert to the internal format */
    116   if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     116  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
    117117    fprintf (stderr, "EXTNAME missing for measure table\n");
    118118    return (FALSE);
    119119  }
    120120  if (!strcmp (extname, "DVO_MEASURE")) {
    121     measure = fits_table_get_Measure (ftable, Nmeasure, NULL);
     121    measure = gfits_table_get_Measure (ftable, Nmeasure, NULL);
    122122    *format = DVO_FORMAT_INTERNAL;
    123123    return (measure);
     
    125125  if (!strcmp (extname, "DVO_MEASURE_ELIXIR")) {
    126126    MeasureElixir *tmpMeasure;
    127     tmpMeasure = fits_table_get_MeasureElixir (ftable, Nmeasure, NULL);
     127    tmpMeasure = gfits_table_get_MeasureElixir (ftable, Nmeasure, NULL);
    128128    measure = MeasureElixirToInternal (tmpMeasure, *Nmeasure);
    129129    free (tmpMeasure);
     
    133133  if (!strcmp (extname, "DVO_MEASURE_LONEOS")) {
    134134    MeasureLoneos *tmpMeasure;
    135     tmpMeasure = fits_table_get_MeasureLoneos (ftable, Nmeasure, NULL);
     135    tmpMeasure = gfits_table_get_MeasureLoneos (ftable, Nmeasure, NULL);
    136136    measure = MeasureLoneosToInternal (tmpMeasure, *Nmeasure);
    137137    free (tmpMeasure);
     
    141141  if (!strcmp (extname, "DVO_MEASURE_PANSTARRS") || !strcmp (extname, "DVO_MEASURE_PMTEST")) {
    142142    MeasurePanstarrs *tmpMeasure;
    143     tmpMeasure = fits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL);
     143    tmpMeasure = gfits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL);
    144144    measure = MeasurePanstarrsToInternal (tmpMeasure, *Nmeasure);
    145145    free (tmpMeasure);
     
    163163  switch (format) {
    164164    case DVO_FORMAT_INTERNAL:
    165       fits_table_set_Measure (ftable, measure, Nmeasure);
     165      gfits_table_set_Measure (ftable, measure, Nmeasure);
    166166      break;
    167167    case DVO_FORMAT_ELIXIR:
    168168      tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure);
    169       fits_table_set_MeasureElixir (ftable, tmpMeasureElixir, Nmeasure);
     169      gfits_table_set_MeasureElixir (ftable, tmpMeasureElixir, Nmeasure);
    170170      free (tmpMeasureElixir);
    171171      break;
    172172    case DVO_FORMAT_LONEOS:
    173173      tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure);
    174       fits_table_set_MeasureLoneos (ftable, tmpMeasureLoneos, Nmeasure);
     174      gfits_table_set_MeasureLoneos (ftable, tmpMeasureLoneos, Nmeasure);
    175175      free (tmpMeasureLoneos);
    176176      break;
     
    178178    case DVO_FORMAT_PMTEST:
    179179      tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure);
    180       fits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure);
     180      gfits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure);
    181181      free (tmpMeasurePanstarrs);
    182182      break;
     
    196196
    197197  /* convert to the internal format */
    198   if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     198  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
    199199    fprintf (stderr, "EXTNAME missing for secfilt table\n");
    200200    return (FALSE);
    201201  }
    202202  if (!strcmp (extname, "DVO_SECFILT")) {
    203     secfilt = fits_table_get_SecFilt (ftable, Nsecfilt, NULL);
     203    secfilt = gfits_table_get_SecFilt (ftable, Nsecfilt, NULL);
    204204    *format = DVO_FORMAT_INTERNAL;
    205205    return (secfilt);
     
    207207  if (!strcmp (extname, "DVO_SECFILT_ELIXIR")) {
    208208    SecFiltElixir *tmpSecFilt;
    209     tmpSecFilt = fits_table_get_SecFiltElixir (ftable, Nsecfilt, NULL);
     209    tmpSecFilt = gfits_table_get_SecFiltElixir (ftable, Nsecfilt, NULL);
    210210    secfilt = SecFiltElixirToInternal (tmpSecFilt, *Nsecfilt);
    211211    free (tmpSecFilt);
     
    215215  if (!strcmp (extname, "DVO_SECFILT_LONEOS")) {
    216216    SecFiltLoneos *tmpSecFilt;
    217     tmpSecFilt = fits_table_get_SecFiltLoneos (ftable, Nsecfilt, NULL);
     217    tmpSecFilt = gfits_table_get_SecFiltLoneos (ftable, Nsecfilt, NULL);
    218218    secfilt = SecFiltLoneosToInternal (tmpSecFilt, *Nsecfilt);
    219219    free (tmpSecFilt);
     
    223223  if (!strcmp (extname, "DVO_SECFILT_PANSTARRS") || !strcmp (extname, "DVO_SECFILT_PMTEST")) {
    224224    SecFiltPanstarrs *tmpSecFilt;
    225     tmpSecFilt = fits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL);
     225    tmpSecFilt = gfits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL);
    226226    secfilt = SecFiltPanstarrsToInternal (tmpSecFilt, *Nsecfilt);
    227227    free (tmpSecFilt);
     
    245245  switch (format) {
    246246    case DVO_FORMAT_INTERNAL:
    247       fits_table_set_SecFilt (ftable, secfilt, Nsecfilt);
     247      gfits_table_set_SecFilt (ftable, secfilt, Nsecfilt);
    248248      break;
    249249    case DVO_FORMAT_ELIXIR:
    250250      tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt);
    251       fits_table_set_SecFiltElixir (ftable, tmpSecFiltElixir, Nsecfilt);
     251      gfits_table_set_SecFiltElixir (ftable, tmpSecFiltElixir, Nsecfilt);
    252252      free (tmpSecFiltElixir);
    253253      break;
    254254    case DVO_FORMAT_LONEOS:
    255255      tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt);
    256       fits_table_set_SecFiltLoneos (ftable, tmpSecFiltLoneos, Nsecfilt);
     256      gfits_table_set_SecFiltLoneos (ftable, tmpSecFiltLoneos, Nsecfilt);
    257257      free (tmpSecFiltLoneos);
    258258      break;
     
    260260    case DVO_FORMAT_PMTEST:
    261261      tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
    262       fits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt);
     262      gfits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt);
    263263      free (tmpSecFiltPanstarrs);
    264264      break;
     
    280280  if (*format == DVO_FORMAT_ELIXIR) {
    281281    ImageElixir *tmpimage;
    282     tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL);
     282    tmpimage = gfits_table_get_ImageElixir (ftable, &Nimage, NULL);
    283283    ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage);
    284284    free (tmpimage);
     
    287287
    288288  /* convert to the internal format */
    289   if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     289  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
    290290    fprintf (stderr, "EXTNAME missing for image table\n");
    291291    return (FALSE);
     
    293293  if (!strcmp (extname, "DVO_IMAGE")) {
    294294    Image *image;
    295     image = fits_table_get_Image (ftable, &Nimage, NULL);
     295    image = gfits_table_get_Image (ftable, &Nimage, NULL);
    296296    *format = DVO_FORMAT_INTERNAL;
    297297    return (TRUE);
     
    300300    ImageElixir *tmpimage;
    301301    *format = DVO_FORMAT_ELIXIR;
    302     tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL);
     302    tmpimage = gfits_table_get_ImageElixir (ftable, &Nimage, NULL);
    303303    ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage);
    304304    free (tmpimage);
     
    308308    ImageLoneos *tmpimage;
    309309    *format = DVO_FORMAT_LONEOS;
    310     tmpimage = fits_table_get_ImageLoneos (ftable, &Nimage, NULL);
     310    tmpimage = gfits_table_get_ImageLoneos (ftable, &Nimage, NULL);
    311311    ftable[0].buffer = (char *) ImageLoneosToInternal (tmpimage, Nimage);
    312312    free (tmpimage);
     
    316316    ImagePanstarrs *tmpimage;
    317317    *format = DVO_FORMAT_PANSTARRS;
    318     tmpimage = fits_table_get_ImagePanstarrs (ftable, &Nimage, NULL);
     318    tmpimage = gfits_table_get_ImagePanstarrs (ftable, &Nimage, NULL);
    319319    ftable[0].buffer = (char *) ImagePanstarrsToInternal (tmpimage, Nimage);
    320320    free (tmpimage);
     
    325325
    326326set_header:
    327   fits_free_header (theader);
    328   fits_table_mkheader_Image (theader);
    329   fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
     327  gfits_free_header (theader);
     328  gfits_table_mkheader_Image (theader);
     329  gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
    330330  theader[0].Naxis[1] = Nimage;
    331   ftable[0].size = fits_matrix_size (theader);
     331  ftable[0].size = gfits_matrix_size (theader);
    332332  return (TRUE);
    333333}
     
    345345  switch (format) {
    346346    case DVO_FORMAT_INTERNAL:
    347       fits_convert_Image ((Image *) ftable[0].buffer, sizeof(Image), Nimage);
     347      gfits_convert_Image ((Image *) ftable[0].buffer, sizeof(Image), Nimage);
    348348      break;
    349349    case DVO_FORMAT_ELIXIR:
    350350      tmpImageElixir = ImageInternalToElixir ((Image *) ftable[0].buffer, Nimage);
    351351      free (ftable[0].buffer);
    352       fits_table_set_ImageElixir (ftable, tmpImageElixir, Nimage);
     352      gfits_table_set_ImageElixir (ftable, tmpImageElixir, Nimage);
    353353      free (tmpImageElixir);
    354354      break;
     
    356356      tmpImageLoneos = ImageInternalToLoneos ((Image *) ftable[0].buffer, Nimage);
    357357      free (ftable[0].buffer);
    358       fits_table_set_ImageLoneos (ftable, tmpImageLoneos, Nimage);
     358      gfits_table_set_ImageLoneos (ftable, tmpImageLoneos, Nimage);
    359359      free (tmpImageLoneos);
    360360      break;
     
    363363      tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) ftable[0].buffer, Nimage);
    364364      free (ftable[0].buffer);
    365       fits_table_set_ImagePanstarrs (ftable, tmpImagePanstarrs, Nimage);
     365      gfits_table_set_ImagePanstarrs (ftable, tmpImagePanstarrs, Nimage);
    366366      free (tmpImagePanstarrs);
    367367      break;
     
    386386    case DVO_FORMAT_INTERNAL:
    387387      for (i = 0; i < Nrow; i++) {
    388         fits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1);
     388        gfits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1);
    389389      }
    390390      return (TRUE);
     
    393393      for (i = 0; i < Nrow; i++) {
    394394        tmpImageElixir = ImageInternalToElixir ((Image *) vtable[0].buffer[i], 1);
    395         fits_convert_ImageElixir (tmpImageElixir, sizeof(ImageElixir), 1);
     395        gfits_convert_ImageElixir (tmpImageElixir, sizeof(ImageElixir), 1);
    396396        free (vtable[0].buffer[i]);
    397397        vtable[0].buffer[i] = (char *) tmpImageElixir;
     
    399399
    400400      /* convert header from old format to new format */
    401       fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
    402 
    403       fits_free_header (theader);
    404       fits_table_mkheader_ImageElixir (theader);
    405 
    406       fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
     401      gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
     402
     403      gfits_free_header (theader);
     404      gfits_table_mkheader_ImageElixir (theader);
     405
     406      gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
    407407      theader[0].Naxis[1] = Nimage;
    408       vtable[0].size = fits_matrix_size (theader);
     408      vtable[0].size = gfits_matrix_size (theader);
    409409      return (TRUE);
    410410    case DVO_FORMAT_LONEOS:
     
    412412      for (i = 0; i < Nrow; i++) {
    413413        tmpImageLoneos = ImageInternalToLoneos ((Image *) vtable[0].buffer[i], 1);
    414         fits_convert_ImageLoneos (tmpImageLoneos, sizeof(ImageLoneos), 1);
     414        gfits_convert_ImageLoneos (tmpImageLoneos, sizeof(ImageLoneos), 1);
    415415        free (vtable[0].buffer[i]);
    416416        vtable[0].buffer[i] = (char *) tmpImageLoneos;
     
    418418
    419419      /* convert header from old format to new format */
    420       fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
    421 
    422       fits_free_header (theader);
    423       fits_table_mkheader_ImageLoneos (theader);
    424 
    425       fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
     420      gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
     421
     422      gfits_free_header (theader);
     423      gfits_table_mkheader_ImageLoneos (theader);
     424
     425      gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
    426426      theader[0].Naxis[1] = Nimage;
    427       vtable[0].size = fits_matrix_size (theader);
     427      vtable[0].size = gfits_matrix_size (theader);
    428428      return (TRUE);
    429429    case DVO_FORMAT_PANSTARRS:
     
    431431      for (i = 0; i < Nrow; i++) {
    432432        tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) vtable[0].buffer[i], 1);
    433         fits_convert_ImagePanstarrs (tmpImagePanstarrs, sizeof(ImagePanstarrs), 1);
     433        gfits_convert_ImagePanstarrs (tmpImagePanstarrs, sizeof(ImagePanstarrs), 1);
    434434        free (vtable[0].buffer[i]);
    435435        vtable[0].buffer[i] = (char *) tmpImagePanstarrs;
     
    437437
    438438      /* convert header from old format to new format */
    439       fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
    440       fits_free_header (theader);
    441       fits_table_mkheader_ImagePanstarrs (theader);
    442       fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
     439      gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
     440      gfits_free_header (theader);
     441      gfits_table_mkheader_ImagePanstarrs (theader);
     442      gfits_modify (theader, "NAXIS2", "%d", 1, Nimage);
    443443      theader[0].Naxis[1] = Nimage;
    444       vtable[0].size = fits_matrix_size (theader);
     444      vtable[0].size = gfits_matrix_size (theader);
    445445      return (TRUE);
    446446    default:
  • trunk/Ohana/src/libdvo/src/dvo_image.c

    r6674 r7080  
    99  db[0].lockstate = lockstate;
    1010  db[0].timeout   = timeout;
    11   fits_db_init (db);
     11  gfits_db_init (db);
    1212
    13   if (!fits_db_lock (db, filename)) {
     13  if (!gfits_db_lock (db, filename)) {
    1414    fprintf (stderr, "ERROR: can't lock image catalog\n");
    1515    return (FALSE);
     
    2222  mode_t mode;
    2323
    24   fits_db_close (db);
     24  gfits_db_close (db);
    2525
    2626  /* force permissions to 666 */
     
    6363    case DVO_MODE_MEF:
    6464      if (VERBOSE) fprintf (stderr, "reading images (mode DVO_MODE_MEF)\n");
    65       status = fits_db_load (db);
     65      status = gfits_db_load (db);
    6666      break;
    6767    case DVO_MODE_RAW:
     
    9191    case DVO_MODE_MEF:
    9292    case DVO_MODE_SPLIT:
    93       status = fits_db_save (db);
     93      status = gfits_db_save (db);
    9494      break;
    9595    case DVO_MODE_RAW:
     
    109109  /* adjust header */
    110110  Nimages = 0;
    111   fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
     111  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
    112112  Nimages += Nnew;
    113   fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
     113  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
    114114
    115   fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
    116   fits_vadd_rows (&db[0].vtable, (char *) new, Nnew, sizeof(Image));
     115  gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
     116  gfits_vadd_rows (&db[0].vtable, (char *) new, Nnew, sizeof(Image));
    117117
    118118  /* check that primary header and table header agree */
     
    137137    case DVO_MODE_MEF:
    138138    case DVO_MODE_SPLIT:
    139       status = fits_db_update (db);
     139      status = gfits_db_update (db);
    140140      break;
    141141    case DVO_MODE_RAW:
  • trunk/Ohana/src/libdvo/src/dvo_image_raw.c

    r6684 r7080  
    1212
    1313  /* read fits header from file - return FALSE on error */
    14   if (!fits_fread_header (db[0].f, &db[0].header)) {
     14  if (!gfits_fread_header (db[0].f, &db[0].header)) {
    1515    fprintf (stderr, "can't read primary header\n");
    1616    return (FALSE);
     
    1919  /* determine image table format */
    2020  db[0].format = DVO_FORMAT_UNDEF;
    21   if (fits_scan (&db[0].header, "FORMAT",  "%s", 1, format)) {
     21  if (gfits_scan (&db[0].header, "FORMAT",  "%s", 1, format)) {
    2222    if (!strcmp (format, "INTERNAL")) db[0].format = DVO_FORMAT_INTERNAL;
    2323    if (!strcmp (format, "LONEOS")) db[0].format = DVO_FORMAT_LONEOS;
     
    2727    if (db[0].format != DVO_FORMAT_UNDEF) goto got_format;
    2828  }
    29   if (fits_scan (&db[0].header, "TELESCOP",  "%s", 1, telescope)) {
     29  if (gfits_scan (&db[0].header, "TELESCOP",  "%s", 1, telescope)) {
    3030    if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) {
    3131      db[0].format = DVO_FORMAT_LONEOS;
     
    4343  /* find number of images */
    4444  Nimage = 0;
    45   fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);
     45  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);
    4646  if (stat (db[0].filename, &filestatus) == -1) {
    4747    if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n");
     
    6868  /* create a dummy ftable, theader set for this data */
    6969  /* (original table has NAXIS = 2, change to 0) */
    70   /* fits_modify (&db[0].header, "NAXIS", "%d", 1, 0); */
    71   fits_create_matrix (&db[0].header, &db[0].matrix);
     70  /* gfits_modify (&db[0].header, "NAXIS", "%d", 1, 0); */
     71  gfits_create_matrix (&db[0].header, &db[0].matrix);
    7272  db[0].ftable.header = &db[0].theader;
    7373
    74   if (db[0].format == DVO_FORMAT_INTERNAL)  fits_table_mkheader_Image (&db[0].theader);
    75   if (db[0].format == DVO_FORMAT_LONEOS)    fits_table_mkheader_ImageLoneos (&db[0].theader);
    76   if (db[0].format == DVO_FORMAT_ELIXIR)    fits_table_mkheader_ImageElixir (&db[0].theader);
    77   if (db[0].format == DVO_FORMAT_PANSTARRS) fits_table_mkheader_ImagePanstarrs (&db[0].theader);
     74  if (db[0].format == DVO_FORMAT_INTERNAL)  gfits_table_mkheader_Image (&db[0].theader);
     75  if (db[0].format == DVO_FORMAT_LONEOS)    gfits_table_mkheader_ImageLoneos (&db[0].theader);
     76  if (db[0].format == DVO_FORMAT_ELIXIR)    gfits_table_mkheader_ImageElixir (&db[0].theader);
     77  if (db[0].format == DVO_FORMAT_PANSTARRS) gfits_table_mkheader_ImagePanstarrs (&db[0].theader);
    7878   
    7979  /* read data from file */
     
    8686  }
    8787
    88   fits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);
     88  gfits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);
    8989  db[0].theader.Naxis[1] = Nimage;
    90   db[0].ftable.size = fits_matrix_size (&db[0].theader);
     90  db[0].ftable.size = gfits_matrix_size (&db[0].theader);
    9191  db[0].swapped = FALSE;  /* table does not have internal byte-order */
    9292  return (TRUE);
     
    112112  }
    113113
    114   /** this code is identical to fits_fwrite_vtable, except without padding */
     114  /** this code is identical to gfits_fwrite_vtable, except without padding */
    115115  Nrow = db[0].vtable.Nrow;
    116116  row = db[0].vtable.row;
    117   fits_scan (db[0].vtable.header, "NAXIS1", "%d", 1, &Nx);
    118   fits_scan (db[0].vtable.header, "NAXIS2", "%d", 1, &Ny);
     117  gfits_scan (db[0].vtable.header, "NAXIS1", "%d", 1, &Nx);
     118  gfits_scan (db[0].vtable.header, "NAXIS2", "%d", 1, &Ny);
    119119
    120120  /* file pointer is at beginning of desired table data */
     
    147147  }
    148148
    149   fits_scan (db[0].ftable.header, "NAXIS1", "%d", 1, &Nx);
    150   fits_scan (db[0].ftable.header, "NAXIS2", "%d", 1, &Ny);
     149  gfits_scan (db[0].ftable.header, "NAXIS1", "%d", 1, &Nx);
     150  gfits_scan (db[0].ftable.header, "NAXIS2", "%d", 1, &Ny);
    151151  size = Nx * Ny;
    152152  Nbytes = fwrite (db[0].ftable.buffer, sizeof(char), size, db[0].f);
  • trunk/Ohana/src/libdvo/src/fits_db.c

    r6234 r7080  
    22
    33/* init the db structure */
    4 int fits_db_init (FITS_DB *db) {
     4int gfits_db_init (FITS_DB *db) {
    55
    66  db[0].f             = NULL;
     
    1919
    2020/* create an empty db */
    21 int fits_db_create (FITS_DB *db) {
    22   fits_init_header (&db[0].header);   
     21int gfits_db_create (FITS_DB *db) {
     22  gfits_init_header (&db[0].header);   
    2323  db[0].header.extend = TRUE;
    24   fits_create_header (&db[0].header);
    25   fits_create_matrix (&db[0].header, &db[0].matrix);
    26   fits_print (&db[0].header, "NEXTEND", "%d", 1, 1);
     24  gfits_create_header (&db[0].header);
     25  gfits_create_matrix (&db[0].header, &db[0].matrix);
     26  gfits_print (&db[0].header, "NEXTEND", "%d", 1, 1);
    2727  db[0].ftable.header = &db[0].theader;
    2828  return (TRUE);
    2929}
    3030
    31 int fits_db_lock (FITS_DB *db, char *filename) {
     31int gfits_db_lock (FITS_DB *db, char *filename) {
    3232 
    3333  /* database name must be set first */
     
    5959
    6060/* load the complete db table into memory - load first extension, do not validate EXTNAME */
    61 int fits_db_load (FITS_DB *db) {
     61int gfits_db_load (FITS_DB *db) {
    6262
    6363  /* database name must be set first */
     
    6868
    6969  /* init & load in FITS table data - return FALSE on error */
    70   if (!fits_fread_header (db[0].f, &db[0].header)) {
     70  if (!gfits_fread_header (db[0].f, &db[0].header)) {
    7171    fprintf (stderr, "can't read primary header\n");
    7272    return (FALSE);
    7373  }
    74   if (!fits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
     74  if (!gfits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
    7575    fprintf (stderr, "can't read primary matrix");
    7676    return (FALSE);
    7777  }
    78   if (!fits_fread_header (db[0].f, &db[0].theader)) {
     78  if (!gfits_fread_header (db[0].f, &db[0].theader)) {
    7979    fprintf (stderr, "can't read table header");
    8080    return (FALSE);
    8181  }
    82   if (!fits_fread_ftable_data (db[0].f, &db[0].ftable)) {
     82  if (!gfits_fread_ftable_data (db[0].f, &db[0].ftable)) {
    8383    fprintf (stderr, "can't read table data");
    8484    return (FALSE);
     
    8989
    9090/* load the data from Nrows from table starting at start; load header, etc if needed */
    91 int fits_db_load_segment (FITS_DB *db, int start, int Nrows) {
     91int gfits_db_load_segment (FITS_DB *db, int start, int Nrows) {
    9292
    9393  int Nskip;
     
    110110  /* load or skip header */
    111111  if (db[0].header.buffer == NULL) {
    112     if (!fits_fread_header (db[0].f, &db[0].header)) {
     112    if (!gfits_fread_header (db[0].f, &db[0].header)) {
    113113      fprintf (stderr, "can't read primary header\n");
    114114      return (FALSE);
     
    121121  /* load or skip matrix */
    122122  if (db[0].matrix.buffer == NULL) {
    123     if (!fits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
     123    if (!gfits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {
    124124      fprintf (stderr, "can't read primary matrix");
    125125      return (FALSE);
    126126    }
    127127  } else {
    128     Nskip = fits_matrix_size (&db[0].header);
     128    Nskip = gfits_matrix_size (&db[0].header);
    129129    Fseek (db[0].f, Nskip, SEEK_CUR);
    130130  }
     
    132132  /* load or skip table header */
    133133  if (db[0].theader.buffer == NULL) {
    134     if (!fits_fread_header (db[0].f, &db[0].theader)) {
     134    if (!gfits_fread_header (db[0].f, &db[0].theader)) {
    135135      fprintf (stderr, "can't read table header");
    136136      return (FALSE);
     
    142142
    143143  /* read table segment into vtable */
    144   if (!fits_fread_vtable_range (db[0].f, &db[0].vtable, start, Nrows)) {
     144  if (!gfits_fread_vtable_range (db[0].f, &db[0].vtable, start, Nrows)) {
    145145    fprintf (stderr, "can't read table data");
    146146    return (FALSE);
     
    150150
    151151/* write complete db file */
    152 int fits_db_save (FITS_DB *db) {
     152int gfits_db_save (FITS_DB *db) {
    153153
    154154  /* write all data to file */
     
    156156  Fseek (db[0].f, 0, SEEK_SET);
    157157
    158   if (!fits_fwrite_header  (db[0].f, &db[0].header)) {
     158  if (!gfits_fwrite_header  (db[0].f, &db[0].header)) {
    159159    fprintf (stderr, "can't write primary header");
    160160    return (FALSE);
    161161  }
    162   if (!fits_fwrite_matrix  (db[0].f, &db[0].matrix)) {
     162  if (!gfits_fwrite_matrix  (db[0].f, &db[0].matrix)) {
    163163    fprintf (stderr, "can't write primary matrix");
    164164    return (FALSE);
    165165  }
    166   if (!fits_fwrite_Theader (db[0].f, &db[0].theader)) {
     166  if (!gfits_fwrite_Theader (db[0].f, &db[0].theader)) {
    167167    fprintf (stderr, "can't write table header");
    168168    return (FALSE);
    169169  }
    170   if (!fits_fwrite_table   (db[0].f, &db[0].ftable)) {
     170  if (!gfits_fwrite_table   (db[0].f, &db[0].ftable)) {
    171171    fprintf (stderr, "can't write table data");
    172172    return (FALSE);
     
    176176
    177177/* write vtable to db file (also appends rows to the end of the table) */
    178 int fits_db_update (FITS_DB *db) {
     178int gfits_db_update (FITS_DB *db) {
    179179
    180180  /* this section is not valid if we have changed the size of header, matrix, theader */
     
    185185
    186186  /* do we revert to the old version if this fails? */
    187   if (!fits_fwrite_header   (db[0].f, &db[0].header))  {
     187  if (!gfits_fwrite_header   (db[0].f, &db[0].header))  {
    188188    fprintf (stderr, "can't update primary header");
    189189    return (FALSE);
    190190  }
    191   if (!fits_fwrite_matrix   (db[0].f, &db[0].matrix))  {
     191  if (!gfits_fwrite_matrix   (db[0].f, &db[0].matrix))  {
    192192    fprintf (stderr, "can't update primary matrix");
    193193    return (FALSE);
    194194  }
    195   if (!fits_fwrite_Theader  (db[0].f, &db[0].theader)) {
     195  if (!gfits_fwrite_Theader  (db[0].f, &db[0].theader)) {
    196196    fprintf (stderr, "can't update table header");
    197197    return (FALSE);
    198198  }
    199   if (!fits_fwrite_vtable   (db[0].f, &db[0].vtable))  {
     199  if (!gfits_fwrite_vtable   (db[0].f, &db[0].vtable))  {
    200200    fprintf (stderr, "can't update table data");
    201201    return (FALSE);
     
    205205
    206206/* free memory associated with db handle */
    207 int fits_db_free (FITS_DB *db) {
    208   fits_free_header (&db[0].header);
    209   fits_free_matrix (&db[0].matrix);
    210   fits_free_header (&db[0].theader);
    211   fits_free_table  (&db[0].ftable);
    212   fits_free_vtable (&db[0].vtable);
     207int gfits_db_free (FITS_DB *db) {
     208  gfits_free_header (&db[0].header);
     209  gfits_free_matrix (&db[0].matrix);
     210  gfits_free_header (&db[0].theader);
     211  gfits_free_table  (&db[0].ftable);
     212  gfits_free_vtable (&db[0].vtable);
    213213  if (db[0].filename != NULL) {
    214214    free (db[0].filename);
     
    219219
    220220/* close the db files (close open file & unlock) */
    221 int fits_db_close (FITS_DB *db) {
     221int gfits_db_close (FITS_DB *db) {
    222222  if (db[0].f == NULL) return (TRUE);
    223223  fclearlockfile (db[0].filename, db[0].f, db[0].lockstate, &db[0].dbstate);
  • trunk/Ohana/src/libdvo/src/skyregion_gsc.c

    r5945 r7080  
    3333  /* load in table data */
    3434  ftable.header = &theader;
    35   if (!fits_fread_ftable (f, &ftable, "REGIONS")) {
     35  if (!gfits_fread_ftable (f, &ftable, "REGIONS")) {
    3636    if (VERBOSE) fprintf (stderr, "can't read GSC Region table\n");
    3737    fclose (f);
     
    3939  }
    4040
    41   fits_scan (ftable.header, "NAXIS1", "%d", 1, &Nx);
    42   fits_scan (ftable.header, "NAXIS2", "%d", 1, &Ny);
    43  
    44   fits_free_header (&theader);
     41  gfits_scan (ftable.header, "NAXIS1", "%d", 1, &Nx);
     42  gfits_scan (ftable.header, "NAXIS2", "%d", 1, &Ny);
     43 
     44  gfits_free_header (&theader);
    4545
    4646  /* build supporting level 0 and 1 regions */
  • trunk/Ohana/src/libdvo/src/skyregion_io.c

    r6674 r7080  
    1919  /* load in table data */
    2020  ftable.header = &theader;
    21   if (!fits_fread_header (f, &header)) {
     21  if (!gfits_fread_header (f, &header)) {
    2222    if (VERBOSE) fprintf (stderr, "can't read Sky Region header\n");
    2323    fclose (f);
    2424    return (NULL);
    2525  }
    26   if (!fits_fread_matrix (f, &matrix, &header)) {
     26  if (!gfits_fread_matrix (f, &matrix, &header)) {
    2727    if (VERBOSE) fprintf (stderr, "can't read Sky Region matrix\n");
    28     fits_free_header (&header);
     28    gfits_free_header (&header);
    2929    fclose (f);
    3030    return (NULL);
    3131  }
    32   if (!fits_fread_ftable (f, &ftable, "SKY_REGION")) {
     32  if (!gfits_fread_ftable (f, &ftable, "SKY_REGION")) {
    3333    if (VERBOSE) fprintf (stderr, "can't read Sky Region table\n");
    34     fits_free_header (&header);
    35     fits_free_matrix (&matrix);
     34    gfits_free_header (&header);
     35    gfits_free_matrix (&matrix);
    3636    fclose (f);
    3737    return (NULL);
     
    3939
    4040  ALLOCATE (skytable, SkyTable, 1);
    41   skytable[0].regions = fits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL);
     41  skytable[0].regions = gfits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL);
    4242  ALLOCATE (skytable[0].filename, char *, skytable[0].Nregions);
    4343  for (i = 0; i < skytable[0].Nregions; i++) {
     
    4545  }
    4646 
    47   fits_free_header (&header);
    48   fits_free_matrix (&matrix);
    49   fits_free_header (&theader);
     47  gfits_free_header (&header);
     48  gfits_free_matrix (&matrix);
     49  gfits_free_header (&theader);
    5050
    5151  return (skytable);
     
    6262  /* make phu header (no matrix needed) */
    6363  ftable.header = &theader;
    64   fits_init_header (&header);
     64  gfits_init_header (&header);
    6565  header.extend = TRUE;
    66   fits_create_header (&header);
    67   fits_create_matrix (&header, &matrix);
     66  gfits_create_header (&header);
     67  gfits_create_matrix (&header, &matrix);
    6868
    69   fits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions);
     69  gfits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions);
    7070
    7171  f = fopen (filename, "w");
     
    7575  }
    7676 
    77   fits_fwrite_header  (f, &header);
    78   fits_fwrite_matrix  (f, &matrix);
    79   fits_fwrite_Theader (f, &theader);
    80   fits_fwrite_table  (f, &ftable);
     77  gfits_fwrite_header  (f, &header);
     78  gfits_fwrite_matrix  (f, &matrix);
     79  gfits_fwrite_Theader (f, &theader);
     80  gfits_fwrite_table  (f, &ftable);
    8181  fclose (f);
    8282
     
    120120  if (!SkyTableSave (sky, filename)) return NULL;
    121121
    122   fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);
     122  gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);
    123123  return (sky);
    124124
     
    136136  if (!SkyTableSave (sky, filename)) return NULL;
    137137
    138   fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);
     138  gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);
    139139  return (sky);
    140140}
  • trunk/Ohana/src/libdvo/src/skyregion_ops.c

    r6643 r7080  
    4848  list[0].filename[0] = table[0].filename[No];
    4949  list[0].Nregions = 1;
     50  return (list);
     51}
     52
     53/* find regions at all levels which match name */
     54/* XXX : need to add support for selected level / populated level */
     55SkyList *SkyListByName (SkyTable *table, char *name) {
     56
     57  int i, Nchar, N, NREGIONS;
     58  SkyList *list;
     59  SkyRegion *region;
     60 
     61  N = 0;
     62  NREGIONS = 10;
     63  ALLOCATE (list, SkyList, 1);
     64  ALLOCATE (list[0].regions, SkyRegion *, NREGIONS);
     65  ALLOCATE (list[0].filename, char *, NREGIONS);
     66  list[0].Nregions = N;
     67
     68  region = table[0].regions;
     69
     70  Nchar = strlen (name);
     71
     72  for (i = 0; i < table[0].Nregions; i++) {
     73    if (strncasecmp (region[i].name, name, Nchar)) continue;
     74
     75    list[0].regions[N] = &region[i];
     76    list[0].filename[N] = table[0].filename[i];
     77    N++;
     78    if (N >= NREGIONS) {
     79        NREGIONS += 10;
     80        REALLOCATE (list[0].regions, SkyRegion *, NREGIONS);
     81        REALLOCATE (list[0].filename, char *, NREGIONS);
     82    }
     83  }
     84  list[0].Nregions = N;
    5085  return (list);
    5186}
Note: See TracChangeset for help on using the changeset viewer.