IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38351


Ignore:
Timestamp:
Jun 2, 2015, 12:35:49 PM (11 years ago)
Author:
eugene
Message:

macro-ize repeated code blocks in table i/o; add compress/uncompress options to all dvo tables; rename some internal structures to enable macro-ization

Location:
branches/eam_branches/ohana.20150429/src/libdvo
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h

    r38348 r38351  
    3939/* catalog values to be loaded */
    4040typedef enum {
    41   LOAD_NONE     = 0x0000,
    42   LOAD_AVES     = 0x0001,
    43   LOAD_MEAS     = 0x0002,
    44   LOAD_MISS     = 0x0004,
    45   LOAD_SECF     = 0x0008,
    46   SKIP_AVES     = 0x0010,
    47   SKIP_MEAS     = 0x0020,
    48   SKIP_MISS     = 0x0040,
    49   SKIP_SECF     = 0x0080,
    50   LOAD_LENSING  = 0x0100,
    51   LOAD_LENSOBJ  = 0x0200,
    52   SKIP_LENSING  = 0x0400,
    53   SKIP_LENSOBJ  = 0x0800,
    54   LOAD_STARPAR  = 0x1000,
    55   SKIP_STARPAR  = 0x2000,
    56   LOAD_GALSHAPE = 0x4000,
    57   SKIP_GALSHAPE = 0x8000,
     41  DVO_LOAD_NONE     = 0x0000,
     42  DVO_LOAD_AVERAGE  = 0x0001,
     43  DVO_LOAD_MEASURE  = 0x0002,
     44  DVO_LOAD_MISSING  = 0x0004,
     45  DVO_LOAD_SECFILT  = 0x0008,
     46  DVO_SKIP_AVERAGE  = 0x0010,
     47  DVO_SKIP_MEASURE  = 0x0020,
     48  DVO_SKIP_MISSING  = 0x0040,
     49  DVO_SKIP_SECFILT  = 0x0080,
     50  DVO_LOAD_LENSING  = 0x0100,
     51  DVO_LOAD_LENSOBJ  = 0x0200,
     52  DVO_SKIP_LENSING  = 0x0400,
     53  DVO_SKIP_LENSOBJ  = 0x0800,
     54  DVO_LOAD_STARPAR  = 0x1000,
     55  DVO_SKIP_STARPAR  = 0x2000,
     56  DVO_LOAD_GALSHAPE = 0x4000,
     57  DVO_SKIP_GALSHAPE = 0x8000,
    5858} DVOCatFlags;
    5959
     
    758758
    759759  int Nsecfilt;  /* number of secfilt entries for each average entry */
    760   off_t Naverage,   Nmeasure,   Nmissing,   Nlensing,      Nlensobj,      Nstarpar,      Ngalshape,      Nsecf_mem;  /* current number of each component in memory */
    761   off_t Naves_disk, Nmeas_disk, Nmiss_disk, Nlensing_disk, Nlensobj_disk, Nstarpar_disk, Ngalshape_disk, Nsecf_disk; /* current number of each component on disk */
    762   off_t Naves_off,  Nmeas_off,  Nmiss_off,  Nlensing_off,  Nlensobj_off,  Nstarpar_off,  Ngalshape_off,  Nsecf_off;  /* index of first loaded data value */
     760  off_t Naverage,      Nmeasure,      Nmissing,      Nlensing,      Nlensobj,      Nstarpar,      Ngalshape,      Nsecfilt_mem;  /* current number of each component in memory */
     761  off_t Naverage_disk, Nmeasure_disk, Nmissing_disk, Nlensing_disk, Nlensobj_disk, Nstarpar_disk, Ngalshape_disk, Nsecfilt_disk; /* current number of each component on disk */
     762  off_t Naverage_off,  Nmeasure_off,  Nmissing_off,  Nlensing_off,  Nlensobj_off,  Nstarpar_off,  Ngalshape_off,  Nsecfilt_off;  /* index of first loaded data value */
    763763
    764764  // note that we use these for the full-sky relphot analysis
     
    974974DVOCatFormat FtableGetFormat (FTable *ftable);
    975975
    976 Measure *FtableToMeasure   (FTable *ftable, Average *average, off_t *Nmeasure, DVOCatFormat *format, char nativeOrder);
    977976Average *FtableToAverage   (FTable *ftable, off_t *Naverage,  DVOCatFormat *format, SecFilt **primary, char nativeOrder);
    978 SecFilt *FtableToSecFilt   (FTable *ftable, off_t *Nsecfilt,  DVOCatFormat *format, char nativeOrder);
    979 Lensing *FtableToLensing   (FTable *ftable, off_t *Nlensing,  DVOCatFormat *format, char nativeOrder);
    980 Lensobj *FtableToLensobj   (FTable *ftable, off_t *Nlensobj,  DVOCatFormat *format, char nativeOrder);
    981 StarPar *FtableToStarPar   (FTable *ftable, off_t *Nstarpar,  DVOCatFormat *format, char nativeOrder);
    982 GalShape *FtableToGalShape (FTable *ftable, off_t *Ngalshape, DVOCatFormat *format, char nativeOrder);
     977
     978Measure *FtableToMeasure   (FTable *ftable, Average *average, off_t *Nmeasure,  DVOCatFormat *format, char nativeOrder);
     979Missing *FtableToMissing   (FTable *ftable, Average *average, off_t *Nmissing,  DVOCatFormat *format, char nativeBytes);
     980SecFilt *FtableToSecFilt   (FTable *ftable, Average *average, off_t *Nsecfilt,  DVOCatFormat *format, char nativeOrder);
     981Lensing *FtableToLensing   (FTable *ftable, Average *average, off_t *Nlensing,  DVOCatFormat *format, char nativeOrder);
     982Lensobj *FtableToLensobj   (FTable *ftable, Average *average, off_t *Nlensobj,  DVOCatFormat *format, char nativeOrder);
     983StarPar *FtableToStarPar   (FTable *ftable, Average *average, off_t *Nstarpar,  DVOCatFormat *format, char nativeOrder);
     984GalShape *FtableToGalShape (FTable *ftable, Average *average, off_t *Ngalshape, DVOCatFormat *format, char nativeOrder);
    983985
    984986int      FtableToImage   (FTable *ftable, Header *theader, DVOCatFormat *format);
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog.c

    r38346 r38351  
    527527    catalog[0].catformat   = DVO_FORMAT_UNDEF;
    528528    catalog[0].catcompress = DVO_COMPRESS_NONE;
    529     catalog[0].catflags    = LOAD_NONE;
     529    catalog[0].catflags    = DVO_LOAD_NONE;
    530530    catalog[0].Nsecfilt    = 0;
    531531  }
     
    554554  catalog[0].Nmeasure = 0;
    555555  catalog[0].Nmissing = 0;
    556   catalog[0].Nsecf_mem = 0;
     556  catalog[0].Nsecfilt_mem = 0;
    557557
    558558  catalog[0].Nlensing = 0;
     
    561561  catalog[0].Nstarpar = 0;
    562562
    563   catalog[0].Naves_disk = 0;
    564   catalog[0].Nmeas_disk = 0;
    565   catalog[0].Nmiss_disk = 0;
    566   catalog[0].Nsecf_disk = 0;
     563  catalog[0].Naverage_disk = 0;
     564  catalog[0].Nmeasure_disk = 0;
     565  catalog[0].Nmissing_disk = 0;
     566  catalog[0].Nsecfilt_disk = 0;
    567567
    568568  catalog[0].Nlensing_disk = 0;
     
    571571  catalog[0].Nstarpar_disk = 0;
    572572
    573   catalog[0].Naves_off  = 0;
    574   catalog[0].Nmeas_off  = 0;
    575   catalog[0].Nmiss_off  = 0;
    576   catalog[0].Nsecf_off  = 0;
     573  catalog[0].Naverage_off  = 0;
     574  catalog[0].Nmeasure_off  = 0;
     575  catalog[0].Nmissing_off  = 0;
     576  catalog[0].Nsecfilt_off  = 0;
    577577
    578578  catalog[0].Nlensing_off  = 0;
     
    900900    catalog[0].secfilt = outsec;
    901901    catalog[0].Nsecfilt = Nsecfilt;
    902     catalog[0].Nsecf_mem = Nsecfilt * catalog[0].Naverage;
     902    catalog[0].Nsecfilt_mem = Nsecfilt * catalog[0].Naverage;
    903903  }
    904904  return (TRUE);
     
    965965  if (catalog[0].secfilt) {
    966966    free (catalog[0].secfilt);
    967     catalog[0].Nsecf_mem = 0;
     967    catalog[0].Nsecfilt_mem = 0;
    968968    catalog[0].secfilt = NULL;
    969969  }
     
    989989
    990990/*
    991   mode   : items to read (LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF)
     991  mode   : items to read (DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_MISSING | DVO_LOAD_SECFILT)
    992992  format : what table structure on disk (INTERNAL, LONEOS, etc, )
    993993  style  : raw, mef, split, mysql
     
    10221022
    10231023  // skip empty cpt files
    1024   if (primary && !catalog->Naves_disk) {
     1024  if (primary && !catalog->Naverage_disk) {
    10251025    return TRUE;
    10261026  }
     
    11111111int dvo_catalog_unlink_backup (Catalog *catalog, int primary) {
    11121112
    1113   if (primary && !catalog->Naves_disk) {
     1113  if (primary && !catalog->Naverage_disk) {
    11141114    // skip empty files (empty when read, but output may not be empty)
    11151115    return TRUE;
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_mef.c

    r38348 r38351  
    2626  }
    2727
    28   // NSTARS, average, Naves_disk
     28  // NSTARS, average, Naverage_disk
    2929
    3030# define GET_TABLE_SIZES(HFIELD, CFIELD, DFIELD, REQUIRED)              \
     
    4141 
    4242  /* get the components and sizes from the header */
    43   GET_TABLE_SIZES ("NSTARS",    average,  Naves_disk,     TRUE);
    44   GET_TABLE_SIZES ("NMEAS",     measure,  Nmeas_disk,     TRUE);
    45   GET_TABLE_SIZES ("NMISS",     missing,  Nmiss_disk,     FALSE);
     43  GET_TABLE_SIZES ("NSTARS",    average,  Naverage_disk,     TRUE);
     44  GET_TABLE_SIZES ("NMEAS",     measure,  Nmeasure_disk,     TRUE);
     45  GET_TABLE_SIZES ("NMISS",     missing,  Nmissing_disk,     FALSE);
    4646  GET_TABLE_SIZES ("NLENSING",  lensing,  Nlensing_disk,  FALSE);
    4747  GET_TABLE_SIZES ("NLENSOBJ",  lensobj,  Nlensobj_disk,  FALSE);
     
    5454  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
    5555  catalog[0].Nsecfilt = Nsecfilt;
    56   catalog[0].Nsecf_disk = Naverage * Nsecfilt;
     56  catalog[0].Nsecfilt_disk = Naverage * Nsecfilt;
    5757  catalog[0].secfilt = NULL;
    5858
     
    7171
    7272  /* read Average table data (or skip) */
    73   if (catalog[0].catflags & LOAD_AVES) {
     73  if (catalog[0].catflags & DVO_LOAD_AVERAGE) {
    7474    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    7575      if (VERBOSE) fprintf (stderr, "can't read table average data");
     
    7878    /* old versions of DVO stored one of the average magnitudes in Average. we save this if needed */
    7979    catalog[0].average = FtableToAverage (&ftable, &Naverage, &catalog[0].catformat, &primary, FALSE);
    80     if (Naverage != catalog[0].Naves_disk) {
    81       fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Naverage,  catalog[0].Naves_disk);
    82     }
    83     catalog[0].Naverage = catalog[0].Naves_disk;
    84     catalog[0].Naves_off = 0;
     80    if (Naverage != catalog[0].Naverage_disk) {
     81      fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Naverage,  catalog[0].Naverage_disk);
     82    }
     83    catalog[0].Naverage = catalog[0].Naverage_disk;
     84    catalog[0].Naverage_off = 0;
    8585  } else {
    8686    catalog[0].catformat = FtableGetFormat (&ftable);
     
    8989    ALLOCATE (catalog[0].average, Average, 1);
    9090    catalog[0].Naverage = 0;
    91     catalog[0].Naves_off = catalog[0].Naves_disk;
     91    catalog[0].Naverage_off = catalog[0].Naverage_disk;
    9292  }
    9393  gfits_free_header (&header);
     
    100100  }
    101101  /* read Measure table data */
    102   if (catalog[0].catflags & LOAD_MEAS) {
     102  if (catalog[0].catflags & DVO_LOAD_MEASURE) {
    103103    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    104104      if (VERBOSE) fprintf (stderr, "can't read table measure data");
     
    106106    }
    107107    catalog[0].measure = FtableToMeasure (&ftable, catalog[0].average, &catalog[0].Nmeasure, &catalog[0].catformat, FALSE);
    108     if (Nmeasure != catalog[0].Nmeas_disk) {
    109       fprintf (stderr, "Warning: mismatch between Nmeasure in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nmeasure,  catalog[0].Nmeas_disk);
    110     }
    111     catalog[0].Nmeasure = catalog[0].Nmeas_disk;
    112     catalog[0].Nmeas_off = 0;
     108    if (Nmeasure != catalog[0].Nmeasure_disk) {
     109      fprintf (stderr, "Warning: mismatch between Nmeasure in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nmeasure,  catalog[0].Nmeasure_disk);
     110    }
     111    catalog[0].Nmeasure = catalog[0].Nmeasure_disk;
     112    catalog[0].Nmeasure_off = 0;
    113113  } else {
    114114    Nbytes = gfits_data_size (&header);
     
    116116    ALLOCATE (catalog[0].measure, Measure, 1);
    117117    catalog[0].Nmeasure = 0;
    118     catalog[0].Nmeas_off = catalog[0].Nmeas_disk;
     118    catalog[0].Nmeasure_off = catalog[0].Nmeasure_disk;
    119119  }
    120120
     
    125125  }
    126126  /* read Missing table data */
    127   if (catalog[0].catflags & LOAD_MISS) {
     127  if (catalog[0].catflags & DVO_LOAD_MISSING) {
    128128    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    129129      if (VERBOSE) fprintf (stderr, "can't read table missing data");
     
    136136      exit (2);
    137137    }
    138     if (Nmissing != catalog[0].Nmiss_disk) {
    139       fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nmissing,  catalog[0].Nmiss_disk);
    140     }
    141     catalog[0].Nmissing = catalog[0].Nmiss_disk;
    142     catalog[0].Nmiss_off = 0;
     138    if (Nmissing != catalog[0].Nmissing_disk) {
     139      fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nmissing,  catalog[0].Nmissing_disk);
     140    }
     141    catalog[0].Nmissing = catalog[0].Nmissing_disk;
     142    catalog[0].Nmissing_off = 0;
    143143  } else {
    144144    Nbytes = gfits_data_size (&header);
     
    146146    ALLOCATE (catalog[0].missing, Missing, 1);
    147147    catalog[0].Nmissing = 0;
    148     catalog[0].Nmiss_off = catalog[0].Nmiss_disk;
     148    catalog[0].Nmissing_off = catalog[0].Nmissing_disk;
    149149  }
    150150
     
    155155  }
    156156  /* read secfilt table data */
    157   if (catalog[0].catflags & LOAD_SECF) {
     157  if (catalog[0].catflags & DVO_LOAD_SECFILT) {
    158158    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    159159      if (VERBOSE) fprintf (stderr, "can't read table secfilt data");
     
    163163    /* how many entries do we expect from the secfilt table? */
    164164    Nexpect = catalog[0].Nsecfilt * catalog[0].Naverage;
    165     catalog[0].secfilt = FtableToSecFilt (&ftable, &Nitems, &catalog[0].catformat, FALSE);
     165    catalog[0].secfilt = FtableToSecFilt (&ftable, catalog[0].average, &Nitems, &catalog[0].catformat, FALSE);
    166166    if (Nexpect != Nitems) {
    167167      fprintf (stderr, "Warning: mismatch between Nsecfilt items in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nexpect,  Nitems);
     
    176176      Ntmpfilt = catalog[0].Nsecfilt;
    177177      Nsecfilt = catalog[0].Nsecfilt + 1;
    178       Ntotal = Nsecfilt * catalog[0].Naves_disk;
     178      Ntotal = Nsecfilt * catalog[0].Naverage_disk;
    179179      ALLOCATE (catalog[0].secfilt, SecFilt, Ntotal);
    180       for (i = 0; i < catalog[0].Naves_disk; i++) {
     180      for (i = 0; i < catalog[0].Naverage_disk; i++) {
    181181        catalog[0].secfilt[i*Nsecfilt + 0] = primary[i];
    182182        for (j = 0; j < Ntmpfilt; j++) {
     
    185185      }         
    186186      catalog[0].Nsecfilt = Nsecfilt;
    187       catalog[0].Nsecf_disk = Ntotal;
     187      catalog[0].Nsecfilt_disk = Ntotal;
    188188      free (tmpfilt);
    189189      free (primary);
    190190    }
    191     catalog[0].Nsecf_mem = catalog[0].Nsecf_disk;
    192     catalog[0].Nsecf_off = 0;
     191    catalog[0].Nsecfilt_mem = catalog[0].Nsecfilt_disk;
     192    catalog[0].Nsecfilt_off = 0;
    193193  } else {
    194194    /* no real need to skip the data array here... */
     
    198198      free (primary);
    199199      catalog[0].Nsecfilt ++;
    200       catalog[0].Nsecf_disk =  catalog[0].Nsecfilt * catalog[0].Naves_disk;
     200      catalog[0].Nsecfilt_disk =  catalog[0].Nsecfilt * catalog[0].Naverage_disk;
    201201    }
    202202    ALLOCATE (catalog[0].secfilt, SecFilt, 1);
    203     catalog[0].Nsecf_mem = 0;
    204     catalog[0].Nsecf_off = catalog[0].Nsecf_disk;
     203    catalog[0].Nsecfilt_mem = 0;
     204    catalog[0].Nsecfilt_off = catalog[0].Nsecfilt_disk;
    205205  }
    206206
     
    211211  }
    212212  /* read Lensing table data */
    213   if (catalog[0].catflags & LOAD_LENSING) {
     213  if (catalog[0].catflags & DVO_LOAD_LENSING) {
    214214    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    215215      if (VERBOSE) fprintf (stderr, "can't read table lensing data");
    216216      return (FALSE);
    217217    }
    218     catalog[0].lensing = FtableToLensing (&ftable, &catalog[0].Nlensing, &catalog[0].catformat, FALSE);
     218    catalog[0].lensing = FtableToLensing (&ftable, catalog[0].average, &catalog[0].Nlensing, &catalog[0].catformat, FALSE);
    219219    if (Nlensing != catalog[0].Nlensing_disk) {
    220220      fprintf (stderr, "Warning: mismatch between Nlensing in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nlensing,  catalog[0].Nlensing_disk);
     
    236236  }
    237237  /* read Lensobj table data */
    238   if (catalog[0].catflags & LOAD_LENSOBJ) {
     238  if (catalog[0].catflags & DVO_LOAD_LENSOBJ) {
    239239    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    240240      if (VERBOSE) fprintf (stderr, "can't read table lensobj data");
    241241      return (FALSE);
    242242    }
    243     catalog[0].lensobj = FtableToLensobj (&ftable, &catalog[0].Nlensobj, &catalog[0].catformat, FALSE);
     243    catalog[0].lensobj = FtableToLensobj (&ftable, catalog[0].average, &catalog[0].Nlensobj, &catalog[0].catformat, FALSE);
    244244    if (Nlensobj != catalog[0].Nlensobj_disk) {
    245245      fprintf (stderr, "Warning: mismatch between Nlensobj in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nlensobj,  catalog[0].Nlensobj_disk);
     
    261261  }
    262262  /* read StarPar table data */
    263   if (catalog[0].catflags & LOAD_STARPAR) {
     263  if (catalog[0].catflags & DVO_LOAD_STARPAR) {
    264264    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    265265      if (VERBOSE) fprintf (stderr, "can't read table starpar data");
    266266      return (FALSE);
    267267    }
    268     catalog[0].starpar = FtableToStarPar (&ftable, &catalog[0].Nstarpar, &catalog[0].catformat, FALSE);
     268    catalog[0].starpar = FtableToStarPar (&ftable, catalog[0].average, &catalog[0].Nstarpar, &catalog[0].catformat, FALSE);
    269269    if (Nstarpar != catalog[0].Nstarpar_disk) {
    270270      fprintf (stderr, "Warning: mismatch between Nstarpar in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nstarpar,  catalog[0].Nstarpar_disk);
     
    286286  }
    287287  /* read GalShape table data */
    288   if (catalog[0].catflags & LOAD_GALSHAPE) {
     288  if (catalog[0].catflags & DVO_LOAD_GALSHAPE) {
    289289    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
    290290      if (VERBOSE) fprintf (stderr, "can't read table galshape data");
    291291      return (FALSE);
    292292    }
    293     catalog[0].galshape = FtableToGalShape (&ftable, &catalog[0].Ngalshape, &catalog[0].catformat, FALSE);
     293    catalog[0].galshape = FtableToGalShape (&ftable, catalog[0].average, &catalog[0].Ngalshape, &catalog[0].catformat, FALSE);
    294294    if (Ngalshape != catalog[0].Ngalshape_disk) {
    295295      fprintf (stderr, "Warning: mismatch between Ngalshape in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Ngalshape,  catalog[0].Ngalshape_disk);
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_raw.c

    r37807 r38351  
    136136  /* read and convert the averages (use a macro to clean this up?) */
    137137  /* old versions of DVO stored one of the average magnitudes in Average. we save this if needed */
    138   if (catalog[0].catflags & LOAD_AVES) {
     138  if (catalog[0].catflags & DVO_LOAD_AVERAGE) {
    139139    catalog[0].average = ReadRawAverage (catalog[0].f, catalog[0].Naverage, catalog[0].catformat, &primary);
    140140  } else {
     
    145145 
    146146  /* read and convert the measures (use a macro to clean this up?) */
    147   if (catalog[0].catflags & LOAD_MEAS) {
     147  if (catalog[0].catflags & DVO_LOAD_MEASURE) {
    148148    catalog[0].measure = ReadRawMeasure (catalog[0].f, catalog[0].average, catalog[0].Nmeasure, catalog[0].catformat);
    149149  } else {
     
    154154
    155155  /* read and convert missing */
    156   if (catalog[0].catflags & LOAD_MISS) {
     156  if (catalog[0].catflags & DVO_LOAD_MISSING) {
    157157    ALLOCATE (catalog[0].missing, Missing, MAX (catalog[0].Nmissing, 1));
    158158    Nitems = catalog[0].Nmissing;
     
    170170 
    171171  /* read and convert secfilt */
    172   if (catalog[0].catflags & LOAD_SECF) {
     172  if (catalog[0].catflags & DVO_LOAD_SECFILT) {
    173173    Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
    174174    catalog[0].secfilt = ReadRawSecFilt (catalog[0].f, Nitems, catalog[0].catformat);
     
    191191      }         
    192192      catalog[0].Nsecfilt = Nsecfilt;
    193       catalog[0].Nsecf_mem = Ntotal;
     193      catalog[0].Nsecfilt_mem = Ntotal;
    194194      free (primary);
    195195    }
     
    210210
    211211  /* check data integrity */
    212   if (catalog[0].catflags & LOAD_AVES) {
     212  if (catalog[0].catflags & DVO_LOAD_AVERAGE) {
    213213    for (i = Nmeas = Nmiss = 0; i < catalog[0].Naverage; i++) {
    214214      Nmeas += catalog[0].average[i].Nmeasure;
     
    226226
    227227  /* save the current number so we can do partial updates */
    228   catalog[0].Naves_disk = catalog[0].Naverage;
    229   catalog[0].Nmeas_disk = catalog[0].Nmeasure;
    230   catalog[0].Nmiss_disk = catalog[0].Nmissing;
     228  catalog[0].Naverage_disk = catalog[0].Naverage;
     229  catalog[0].Nmeasure_disk = catalog[0].Nmeasure;
     230  catalog[0].Nmissing_disk = catalog[0].Nmissing;
    231231
    232232  return (TRUE);
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c

    r38348 r38351  
    2727
    2828  // XXX this translation only works if we have loaded / created a matched average/secfilt set
    29   assert (catalog[0].Nsecf_mem == catalog[0].Nsecfilt*catalog[0].Naverage);
     29  assert (catalog[0].Nsecfilt_mem == catalog[0].Nsecfilt*catalog[0].Naverage);
    3030
    3131  Nallfilt = catalog[0].Nsecfilt;
     
    4242  }             
    4343  catalog[0].Nsecfilt --;
    44   catalog[0].Nsecf_mem = catalog[0].Naverage*catalog[0].Nsecfilt;
     44  catalog[0].Nsecfilt_mem = catalog[0].Naverage*catalog[0].Nsecfilt;
    4545
    4646  *myPrimary = primary;
     
    5858  Ntmpfilt = catalog[0].Nsecfilt;
    5959
    60   // we do NOT modify Nsecf_disk; this operation only modifies in in-memory values
     60  // we do NOT modify Nsecfilt_disk; this operation only modifies in in-memory values
    6161
    6262  catalog[0].Nsecfilt ++;
     
    6464  Ntotal = Nsecfilt * Naves;
    6565
    66   catalog[0].Nsecf_mem = Ntotal;
     66  catalog[0].Nsecfilt_mem = Ntotal;
    6767
    6868  ALLOCATE (catalog[0].secfilt, SecFilt, Ntotal);
     
    8484  // ohana_memcheck_func (TRUE);
    8585 
    86 
    87   if (0) {
    88     // XXX a TEST : is the data corrupted or the file?
    89     char name[1024];
    90     snprintf (name, 1024, "%s.phu.v2", catalog->filename);
    91     FILE *f = fopen (name, "w");
    92     fwrite (catalog->header.buffer, sizeof(char), catalog->header.datasize, f);
    93     // fprintf (stderr, "save %d bytes in %s (%zx)\n", (int) catalog->header.datasize, name, (size_t) catalog->header.buffer);
    94     // fprintf (stderr, "first bytes are %c%c%c%c%c%c%c%c\n",
    95     //       catalog->header.buffer[0], catalog->header.buffer[1], catalog->header.buffer[2], catalog->header.buffer[3],
    96     //       catalog->header.buffer[4], catalog->header.buffer[5], catalog->header.buffer[6], catalog->header.buffer[7]);
    97     fclose (f);
    98   }
    99   if (0) {
    100     // XXX a TEST : is the data corrupted or the file?
    101     char name[1024];
    102     snprintf (name, 1024, "%s.phu", catalog->filename);
    103     FILE *f = fopen (name, "w");
    104     fwrite (catalog->header.buffer, sizeof(char), catalog->header.datasize, f);
    105     // fprintf (stderr, "save %d bytes in %s (%zx)\n", (int) catalog->header.datasize, name, (size_t) catalog->header.buffer);
    106     // fprintf (stderr, "first bytes are %c%c%c%c%c%c%c%c\n",
    107     //       catalog->header.buffer[0], catalog->header.buffer[1], catalog->header.buffer[2], catalog->header.buffer[3],
    108     //       catalog->header.buffer[4], catalog->header.buffer[5], catalog->header.buffer[6], catalog->header.buffer[7]);
    109     fclose (f);
    110   }
    111 # if (0)
    112   {
    113     // XXX a TEST : is the data corrupted or the file?
    114     char name[1024];
    115     snprintf (name, 1024, "%s.phu.v2", catalog->filename);
    116     FILE *f = fopen (name, "w");
    117     fwrite (catalog->header.buffer, sizeof(char), catalog->header.datasize, f);
    118     fprintf (stderr, "save %d bytes in %s (%zx)\n", (int) catalog->header.datasize, name, (size_t) catalog->header.buffer);
    119     fprintf (stderr, "first bytes are %c%c%c%c%c%c%c%c\n",
    120              catalog->header.buffer[0], catalog->header.buffer[1], catalog->header.buffer[2], catalog->header.buffer[3],
    121              catalog->header.buffer[4], catalog->header.buffer[5], catalog->header.buffer[6], catalog->header.buffer[7]);
    122     fclose (f);
    123   }
    124   {
    125     // XXX a TEST : is the data corrupted or the file?
    126     char name[1024];
    127     snprintf (name, 1024, "%s.phu.v3", catalog->filename);
    128     FILE *f = fopen (name, "w");
    129     fwrite (catalog->header.buffer, sizeof(char), catalog->header.datasize, f);
    130     fprintf (stderr, "save %d bytes in %s (%zx)\n", (int) catalog->header.datasize, name, (size_t) catalog->header.buffer);
    131     fprintf (stderr, "first bytes are %c%c%c%c%c%c%c%c\n",
    132              catalog->header.buffer[0], catalog->header.buffer[1], catalog->header.buffer[2], catalog->header.buffer[3],
    133              catalog->header.buffer[4], catalog->header.buffer[5], catalog->header.buffer[6], catalog->header.buffer[7]);
    134     fclose (f);
    135   }
    136 # endif
    13786  /* rewind file pointers and truncate (file is still open) */
    13887  if (fseeko (catalog->f, 0LL, SEEK_SET)) {
     
    278227
    279228// ftable must already exist and have a valid, loaded header
    280 int gfits_fread_uncompressed (Catalog *catalog, FTable *ftable, char *nativeOrder) {
     229int gfits_fread_uncompressed (Catalog *catalog, FTable *ftable, char *nativeOrder, char VERBOSE) {
    281230
    282231  // fread_ftable_data requires the header
     
    310259    // copies values but does not allocate new memory
    311260    gfits_copy_header_ptr (&rawheader, ftable->header);
    312     gfits_copy_table_ptr (&rawtable, ftable);
     261    gfits_copy_ftable_ptr (&rawtable, ftable);
    313262    *nativeOrder = TRUE;
    314263  }
    315264  return TRUE;
    316265}
     266
     267// LOAD_SUBCAT(measure,MEASURE,Measure)
     268
     269# define LOAD_SUBCAT(FIELD, NAME, STRUCT)                               \
     270  {                                                                     \
     271    Header header;                                                      \
     272    FTable ftable;                                                      \
     273    off_t Nitems;                                                       \
     274    gfits_init_table  (&ftable);                                        \
     275    gfits_init_header (&header);                                        \
     276    ftable.header = &header;                                            \
     277    int status = DVO_CAT_OPEN_EMPTY;                                    \
     278    if (!(catalog[0].catflags & DVO_SKIP_##NAME)) {                     \
     279      status = dvo_catalog_open_subcat (catalog, &catalog[0].FIELD##_catalog, ftable.header, #NAME, VERBOSE); \
     280      if (status == DVO_CAT_OPEN_FAIL) {                                \
     281        return (FALSE);                                                 \
     282      }                                                                 \
     283      if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].N##FIELD##_disk > 0)) { \
     284        return (FALSE);                                                 \
     285      }                                                                 \
     286    }                                                                   \
     287    if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & DVO_LOAD_##NAME)) { \
     288      char nativeOrder = FALSE;                                         \
     289      /* read table data */                                             \
     290      if (!gfits_fread_uncompressed (catalog[0].FIELD##_catalog, &ftable, &nativeOrder, VERBOSE)) { \
     291        if (VERBOSE) fprintf (stderr, "can't read table %s data\n", #FIELD); \
     292        gfits_free_header (&header);                                    \
     293        return (FALSE);                                                 \
     294      }                                                                 \
     295      /* convert data format to internal : returns number of row read in Nvalues */ \
     296      catalog[0].FIELD = FtableTo##STRUCT (&ftable, catalog[0].average, &Nitems, &catalog[0].catformat, nativeOrder); \
     297        if (Nitems != catalog[0].N##FIELD##_disk) {                     \
     298          fprintf (stderr, "Warning: mismatch between N%s in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n", #FIELD, Nitems, catalog[0].N##FIELD##_disk); \
     299        }                                                               \
     300        catalog[0].N##FIELD = catalog[0].N##FIELD##_disk;                       \
     301          catalog[0].N##FIELD##_off = 0;                                        \
     302    } else {                                                            \
     303      if (catalog[0].FIELD##_catalog) {                                 \
     304        gfits_free_header (&catalog[0].FIELD##_catalog[0].header);      \
     305      } else {                                                          \
     306        ALLOCATE (catalog[0].FIELD##_catalog, Catalog, 1);              \
     307        dvo_catalog_init (catalog[0].FIELD##_catalog, TRUE);            \
     308      }                                                                 \
     309      gfits_create_header (&catalog[0].FIELD##_catalog[0].header);      \
     310      ALLOCATE (catalog[0].FIELD, STRUCT, 1);                           \
     311      catalog[0].N##FIELD = 0;                                          \
     312        catalog[0].N##FIELD##_off = catalog[0].N##FIELD##_disk;         \
     313    }                                                                   \
     314    gfits_free_header (&header);                                        \
     315  }
    317316
    318317int dvo_catalog_load_split (Catalog *catalog, int VERBOSE) {
     
    326325  off_t Nstarpar;
    327326  off_t Ngalshape;
    328   off_t Nitems;
    329   int status, Nsecfilt;
     327  int Nsecfilt;
    330328  SecFilt *primary;
    331329
    332330  primary = NULL;
    333   status = FALSE;
    334331
    335332  /* get the components from the header - these duplicate information in the split files (NAXIS2) */
     
    357354
    358355  /* save the current number so we can do partial updates */
    359   catalog[0].Naves_disk = Naverage;
    360   catalog[0].Nmeas_disk = Nmeasure;
    361   catalog[0].Nmiss_disk = Nmissing;
    362   catalog[0].Nsecf_disk = Naverage * Nsecfilt;
     356  catalog[0].Naverage_disk = Naverage;
     357  catalog[0].Nmeasure_disk = Nmeasure;
     358  catalog[0].Nmissing_disk = Nmissing;
     359  catalog[0].Nsecfilt_disk = Naverage * Nsecfilt;
    363360  catalog[0].Nlensing_disk  = Nlensing;
    364361  catalog[0].Nlensobj_disk  = Nlensobj;
    365362  catalog[0].Nstarpar_disk  = Nstarpar;
    366363  catalog[0].Ngalshape_disk = Ngalshape;
    367 
    368   /**  Nsecfilt is unusual: it does not list the number of data items in the table
    369        instead, the number of items is Nsecfilt * Naverage.  **/
    370   catalog[0].Nsecfilt  = Nsecfilt;
    371364
    372365  /* default values, but we will assign these a valid value before we exit (even if empty) */
     
    388381
    389382  /* ftable header storage for below */
     383  char nativeOrder;
    390384  Header header;
    391385  FTable ftable;
     
    399393    return (FALSE);
    400394  }
    401   if (catalog[0].catflags & LOAD_AVES) {
    402     char nativeOrder = FALSE;
    403     if (!gfits_fread_uncompressed (catalog, &ftable, &nativeOrder)) {
     395  if (catalog[0].catflags & DVO_LOAD_AVERAGE) {
     396    if (!gfits_fread_uncompressed (catalog, &ftable, &nativeOrder, VERBOSE)) {
    404397      if (VERBOSE) fprintf (stderr, "can't read Average table\n");
    405398      gfits_free_header (&header);
     
    407400    }
    408401
    409     /* convert the saved version of the table to the internal version.  Old versions of DVO stored
     402    /* convert the disk version of the table to the internal version.  Old versions of DVO stored
    410403     * one of the average magnitudes in Average.  We save this in case it is needed below.  NOTE:
    411404     * primary is only used if we read in the secfilt table, otherwise it should be freed */
    412405    catalog[0].average = FtableToAverage (&ftable, &Naverage, &catalog[0].catformat, &primary, nativeOrder);
    413     if (Naverage != catalog[0].Naves_disk) {
    414       fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Naverage,  catalog[0].Naves_disk);
    415     }
    416     catalog[0].Naverage = catalog[0].Naves_disk;
    417     catalog[0].Naves_off = 0;
     406    if (Naverage != catalog[0].Naverage_disk) {
     407      fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Naverage,  catalog[0].Naverage_disk);
     408    }
     409    catalog[0].Naverage = catalog[0].Naverage_disk;
     410    catalog[0].Naverage_off = 0;
    418411  } else {
    419412    catalog[0].catformat = FtableGetFormat (&ftable);
    420413    ALLOCATE (catalog[0].average, Average, 1);
    421414    catalog[0].Naverage = 0;
    422     catalog[0].Naves_off = catalog[0].Naves_disk;
     415    catalog[0].Naverage_off = catalog[0].Naverage_disk;
    423416  }
    424417  gfits_free_header (&header);
    425418
    426419  /*** Measure Table ***/
    427   gfits_init_table  (&ftable);
    428   gfits_init_header (&header);
    429   ftable.header = &header;
    430   if (!(catalog[0].catflags & SKIP_MEAS)) {
    431     // unless we specify 'skip', we still need to load the
    432     status = dvo_catalog_open_subcat (catalog, &catalog[0].measure_catalog, ftable.header, "MEASURE", VERBOSE);
    433     if (status == DVO_CAT_OPEN_FAIL) {
    434       return (FALSE);
    435     }
    436     if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nmeas_disk > 0)) {
    437       return (FALSE);
    438     }
    439   }
    440   if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_MEAS)) {
    441     char nativeOrder = FALSE;
    442     /* read Measure table data */
    443     if (!gfits_fread_uncompressed (catalog[0].measure_catalog, &ftable, &nativeOrder)) {
    444       if (VERBOSE) fprintf (stderr, "can't read table measure data\n");
    445       gfits_free_header (&header);
    446       return (FALSE);
    447     }
    448     /* convert data format to internal : returns number of row read in Nmeasure */
    449     catalog[0].measure = FtableToMeasure (&ftable, catalog[0].average, &Nmeasure, &catalog[0].catformat, nativeOrder);
    450     if (Nmeasure != catalog[0].Nmeas_disk) {
    451       fprintf (stderr, "Warning: mismatch between Nmeasure in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nmeasure,  catalog[0].Nmeas_disk);
    452     }
    453     catalog[0].Nmeasure = catalog[0].Nmeas_disk;
    454     catalog[0].Nmeas_off = 0;
    455   } else {
    456     // XXX is it necessary to generate a template header here?
    457     // XXX this is a memory leak, right?
    458     if (catalog[0].measure_catalog) {
    459       gfits_free_header (&catalog[0].measure_catalog[0].header);
     420 
     421  LOAD_SUBCAT(measure,MEASURE,Measure);
     422  LOAD_SUBCAT(missing,MISSING,Missing);
     423  LOAD_SUBCAT(secfilt,SECFILT,SecFilt);
     424  LOAD_SUBCAT(lensing,LENSING,Lensing);
     425  LOAD_SUBCAT(lensobj,LENSOBJ,Lensobj);
     426  LOAD_SUBCAT(starpar,STARPAR,StarPar);
     427  LOAD_SUBCAT(galshape,GALSHAPE,GalShape);
     428
     429  /**  catalog->Nsecfilt is unusual: it does not list the number of data items in the
     430       table instead, the number of items is Nsecfilt * Naverage, and is stored in
     431       Nsecfilt_mem. fix these below **/
     432
     433  catalog[0].Nsecfilt_mem = catalog[0].Nsecfilt;
     434  catalog[0].Nsecfilt  = Nsecfilt;
     435
     436  /** some old formats stored one of the secfilt values in the average table.
     437      repair this below **/
     438
     439  if (primary) {
     440    if (catalog[0].Nsecfilt_mem) {
     441      dvo_catalog_primary_to_secfilt (catalog, primary, catalog[0].Naverage_disk);
    460442    } else {
    461       ALLOCATE (catalog[0].measure_catalog, Catalog, 1);
    462       dvo_catalog_init (catalog[0].measure_catalog, TRUE);
    463     }
    464     gfits_create_header (&catalog[0].measure_catalog[0].header);
    465     ALLOCATE (catalog[0].measure, Measure, 1);
    466     catalog[0].Nmeasure = 0;
    467     catalog[0].Nmeas_off = catalog[0].Nmeas_disk;
    468   }
    469   gfits_free_header (&header);
    470 
    471   /*** Missing Table ***/
    472   gfits_init_table  (&ftable);
    473   gfits_init_header (&header);
    474   ftable.header = &header;
    475   status = dvo_catalog_open_subcat (catalog, &catalog[0].missing_catalog, ftable.header, "MISSING", VERBOSE);
    476   if (status == DVO_CAT_OPEN_FAIL) {
    477     return (FALSE);
    478   }
    479   if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nmiss_disk > 0)) {
    480     return (FALSE);
    481   }
    482   if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_MISS)) {
    483     char nativeOrder = FALSE;
    484     /* read Missing table data */
    485     if (!gfits_fread_uncompressed (catalog[0].missing_catalog, &ftable, &nativeOrder)) {
    486       if (VERBOSE) fprintf (stderr, "can't read table missing data\n");
    487       return (FALSE);
    488     }
    489     /* no conversions currently defined : this just does the byte swap */
    490     catalog[0].missing = gfits_table_get_Missing (&ftable, &Nmissing, NULL, &nativeOrder);
    491     if (!catalog[0].missing) {
    492       fprintf (stderr, "ERROR: failed to read missing\n");
    493       exit (2);
    494     }
    495     if (Nmissing != catalog[0].Nmiss_disk) {
    496       fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nmissing,  catalog[0].Nmiss_disk);
    497     }
    498     catalog[0].Nmissing = catalog[0].Nmiss_disk;
    499     catalog[0].Nmiss_off = 0;
    500   } else {
    501     // XXX is it necessary to generate a template header here?
    502     gfits_create_header (&catalog[0].missing_catalog[0].header);
    503     ALLOCATE (catalog[0].missing, Missing, 1);
    504     catalog[0].Nmissing = 0;
    505     catalog[0].Nmiss_off = catalog[0].Nmiss_disk;
    506   }
    507   gfits_free_header (ftable.header);
    508 
    509   /*** Secfilt Table ***/
    510   gfits_init_table  (&ftable);
    511   gfits_init_header (&header);
    512   ftable.header = &header;
    513   status = dvo_catalog_open_subcat (catalog, &catalog[0].secfilt_catalog, ftable.header, "SECFILT", VERBOSE);
    514   // fprintf (stderr, "secfilt header %s : %zx\n", catalog[0].secfilt_catalog[0].filename, (size_t) catalog[0].secfilt_catalog[0].header.buffer);
    515   if (status == DVO_CAT_OPEN_FAIL) {
    516     return (FALSE);
    517   }
    518   if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nsecf_disk > 0)) {
    519     return (FALSE);
    520   }
    521   if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_SECF)) {
    522     char nativeOrder = FALSE;
    523     /* read secfilt table data */
    524     if (!gfits_fread_uncompressed (catalog[0].secfilt_catalog, &ftable, &nativeOrder)) {
    525       if (VERBOSE) fprintf (stderr, "can't read table secfilt data\n");
    526       return (FALSE);
    527     }
    528     catalog[0].secfilt = FtableToSecFilt (&ftable, &Nitems, &catalog[0].catformat, nativeOrder);
    529     if (Nitems != catalog[0].Nsecf_disk) {
    530       fprintf (stderr, "Warning: mismatch between Nsecfilt items in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nitems,  catalog[0].Nsecf_disk);
    531     }
    532     catalog[0].Nsecf_mem = catalog[0].Nsecf_disk;
    533     catalog[0].Nsecf_off = 0;
    534 
    535     /* if primary is defined, we were supplied with one additional average magnitude from Average
    536        we need to interleave these magnitudes with the secfilt entries just loaded */
    537     if (primary != NULL) {
    538       // this modifies catalog.Nsecf_mem,Nsecfilt
    539       dvo_catalog_primary_to_secfilt (catalog, primary, catalog[0].Naves_disk);
    540     }
    541   } else {
    542     if (primary != NULL) {
    543443      free (primary);
    544444      catalog[0].Nsecfilt ++;
    545445    }
    546     gfits_create_header (&catalog[0].secfilt_catalog[0].header);
    547     ALLOCATE (catalog[0].secfilt, SecFilt, 1);
    548     catalog[0].Nsecf_mem = 0;
    549     catalog[0].Nsecf_off = catalog[0].Nsecf_disk;
    550   }
    551   gfits_free_header (ftable.header);
    552 
    553   /*** Lensing Table ***/
    554   gfits_init_table  (&ftable);
    555   gfits_init_header (&header);
    556   ftable.header = &header;
    557   if (!(catalog[0].catflags & SKIP_LENSING)) {
    558     // unless we specify 'skip', we still need to load the Lensing table
    559     status = dvo_catalog_open_subcat (catalog, &catalog[0].lensing_catalog, ftable.header, "LENSING", VERBOSE);
    560     if (status == DVO_CAT_OPEN_FAIL) {
    561       return (FALSE);
    562     }
    563     // the Lensing file need not exist, unless we expect data to exist
    564     if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nlensing_disk > 0)) {
    565       return (FALSE);
    566     }
    567   }
    568   if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_LENSING)) {
    569     char nativeOrder = FALSE;
    570     // only read the Lensing table if the file actually exists
    571     /* read Lensing table data */
    572     if (!gfits_fread_uncompressed (catalog[0].lensing_catalog, &ftable, &nativeOrder)) {
    573       if (VERBOSE) fprintf (stderr, "can't read table lensing data\n");
    574       return (FALSE);
    575     }
    576     /* convert data format to internal : returns number of row read in Nlensing */
    577     catalog[0].lensing = FtableToLensing (&ftable, &Nlensing, &catalog[0].catformat, nativeOrder);
    578     if (Nlensing != catalog[0].Nlensing_disk) {
    579       fprintf (stderr, "Warning: mismatch between Nlensing in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nlensing,  catalog[0].Nlensing_disk);
    580     }
    581     catalog[0].Nlensing = catalog[0].Nlensing_disk;
    582     catalog[0].Nlensing_off = 0;
    583   } else {
    584     if (catalog[0].lensing_catalog) {
    585       gfits_free_header (&catalog[0].lensing_catalog[0].header);
    586     } else {
    587       ALLOCATE (catalog[0].lensing_catalog, Catalog, 1);
    588       dvo_catalog_init (catalog[0].lensing_catalog, TRUE);
    589     }
    590     gfits_create_header (&catalog[0].lensing_catalog[0].header);
    591     ALLOCATE (catalog[0].lensing, Lensing, 1);
    592     catalog[0].Nlensing = 0;
    593     catalog[0].Nlensing_off = catalog[0].Nlensing_disk;
    594   }
    595   gfits_free_header (&header);
    596 
    597   /*** Lensobj Table ***/
    598   gfits_init_table  (&ftable);
    599   gfits_init_header (&header);
    600   ftable.header = &header;
    601   if (!(catalog[0].catflags & SKIP_LENSOBJ)) {
    602     // unless we specify 'skip', we still need to load the
    603     status = dvo_catalog_open_subcat (catalog, &catalog[0].lensobj_catalog, ftable.header, "LENSOBJ", VERBOSE);
    604     if (status == DVO_CAT_OPEN_FAIL) {
    605       return (FALSE);
    606     }
    607     // the Lensobj file need not exist, unless we expect data to exist
    608     if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nlensobj_disk > 0)) {
    609       return (FALSE);
    610     }
    611   }
    612   if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_LENSOBJ)) {
    613     char nativeOrder = FALSE;
    614     // only read the Lensobj table if the file actually exists
    615     /* read Lensobj table data */
    616     if (!gfits_fread_uncompressed (catalog[0].lensobj_catalog, &ftable, &nativeOrder)) {
    617       if (VERBOSE) fprintf (stderr, "can't read table lensobj data\n");
    618       return (FALSE);
    619     }
    620     /* convert data format to internal : returns number of row read in Nlensobj */
    621     catalog[0].lensobj = FtableToLensobj (&ftable, &Nlensobj, &catalog[0].catformat, FALSE);
    622     if (Nlensobj != catalog[0].Nlensobj_disk) {
    623       fprintf (stderr, "Warning: mismatch between Nlensobj in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nlensobj,  catalog[0].Nlensobj_disk);
    624     }
    625     catalog[0].Nlensobj = catalog[0].Nlensobj_disk;
    626     catalog[0].Nlensobj_off = 0;
    627   } else {
    628     if (catalog[0].lensobj_catalog) {
    629       gfits_free_header (&catalog[0].lensobj_catalog[0].header);
    630     } else {
    631       ALLOCATE (catalog[0].lensobj_catalog, Catalog, 1);
    632       dvo_catalog_init (catalog[0].lensobj_catalog, TRUE);
    633     }
    634     gfits_create_header (&catalog[0].lensobj_catalog[0].header);
    635     ALLOCATE (catalog[0].lensobj, Lensobj, 1);
    636     catalog[0].Nlensobj = 0;
    637     catalog[0].Nlensobj_off = catalog[0].Nlensobj_disk;
    638   }
    639   gfits_free_header (&header);
    640 
    641   /*** StarPar Table ***/
    642   gfits_init_table  (&ftable);
    643   gfits_init_header (&header);
    644   ftable.header = &header;
    645   if (!(catalog[0].catflags & SKIP_STARPAR)) {
    646     // unless we specify 'skip', we still need to load the
    647     status = dvo_catalog_open_subcat (catalog, &catalog[0].starpar_catalog, ftable.header, "STARPAR", VERBOSE);
    648     if (status == DVO_CAT_OPEN_FAIL) {
    649       return (FALSE);
    650     }
    651     // the StarPar file need not exist, unless we expect data to exist
    652     if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nstarpar_disk > 0)) {
    653       return (FALSE);
    654     }
    655   }
    656   if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_STARPAR)) {
    657     char nativeOrder = FALSE;
    658     // only read the StarPar table if the file actually exists
    659     /* read StarPar table data */
    660     if (!gfits_fread_uncompressed (catalog[0].starpar_catalog, &ftable, &nativeOrder)) {
    661       if (VERBOSE) fprintf (stderr, "can't read table starpar data\n");
    662       return (FALSE);
    663     }
    664     /* convert data format to internal : returns number of row read in Nstarpar */
    665     catalog[0].starpar = FtableToStarPar (&ftable, &Nstarpar, &catalog[0].catformat, FALSE);
    666     if (Nstarpar != catalog[0].Nstarpar_disk) {
    667       fprintf (stderr, "Warning: mismatch between Nstarpar in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nstarpar,  catalog[0].Nstarpar_disk);
    668     }
    669     catalog[0].Nstarpar = catalog[0].Nstarpar_disk;
    670     catalog[0].Nstarpar_off = 0;
    671   } else {
    672     if (catalog[0].starpar_catalog) {
    673       gfits_free_header (&catalog[0].starpar_catalog[0].header);
    674     } else {
    675       ALLOCATE (catalog[0].starpar_catalog, Catalog, 1);
    676       dvo_catalog_init (catalog[0].starpar_catalog, TRUE);
    677     }
    678     gfits_create_header (&catalog[0].starpar_catalog[0].header);
    679     ALLOCATE (catalog[0].starpar, StarPar, 1);
    680     catalog[0].Nstarpar = 0;
    681     catalog[0].Nstarpar_off = catalog[0].Nstarpar_disk;
    682   }
    683   gfits_free_header (&header);
    684 
    685   /*** GalShape Table ***/
    686   gfits_init_table  (&ftable);
    687   gfits_init_header (&header);
    688   ftable.header = &header;
    689   if (!(catalog[0].catflags & SKIP_GALSHAPE)) {
    690     // unless we specify 'skip', we still need to load the GalShape table
    691     status = dvo_catalog_open_subcat (catalog, &catalog[0].galshape_catalog, ftable.header, "GALSHAPE", VERBOSE);
    692     if (status == DVO_CAT_OPEN_FAIL) {
    693       return (FALSE);
    694     }
    695     // the GalShape file need not exist, unless we expect data to exist
    696     if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Ngalshape_disk > 0)) {
    697       return (FALSE);
    698     }
    699   }
    700   if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_GALSHAPE)) {
    701     char nativeOrder = FALSE;
    702     // only read the GalShape table if the file actually exists
    703     /* read GalShape table data */
    704     if (!gfits_fread_uncompressed (catalog[0].galshape_catalog, &ftable, &nativeOrder)) {
    705       if (VERBOSE) fprintf (stderr, "can't read table galshape data\n");
    706       return (FALSE);
    707     }
    708     /* convert data format to internal : returns number of row read in Ngalshape */
    709     catalog[0].galshape = FtableToGalShape (&ftable, &Ngalshape, &catalog[0].catformat, FALSE);
    710     if (Ngalshape != catalog[0].Ngalshape_disk) {
    711       fprintf (stderr, "Warning: mismatch between Ngalshape in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Ngalshape,  catalog[0].Ngalshape_disk);
    712     }
    713     catalog[0].Ngalshape = catalog[0].Ngalshape_disk;
    714     catalog[0].Ngalshape_off = 0;
    715   } else {
    716     if (catalog[0].galshape_catalog) {
    717       gfits_free_header (&catalog[0].galshape_catalog[0].header);
    718     } else {
    719       ALLOCATE (catalog[0].galshape_catalog, Catalog, 1);
    720       dvo_catalog_init (catalog[0].galshape_catalog, TRUE);
    721     }
    722     gfits_create_header (&catalog[0].galshape_catalog[0].header);
    723     ALLOCATE (catalog[0].galshape, GalShape, 1);
    724     catalog[0].Ngalshape = 0;
    725     catalog[0].Ngalshape_off = catalog[0].Ngalshape_disk;
    726   }
    727   gfits_free_header (&header);
     446  }
    728447
    729448  return (TRUE);
     
    747466
    748467  /*** Average (& SecFilt) Table ***/
    749   if (catalog[0].catflags & LOAD_AVES) {
     468  if (catalog[0].catflags & DVO_LOAD_AVERAGE) {
    750469
    751470    /*** load the Average data ***/
     
    774493    gfits_free_header (&header);
    775494    catalog[0].Naverage = Naverage;
    776     catalog[0].Naves_off = start;
     495    catalog[0].Naverage_off = start;
    777496
    778497    /*** load the secfilt data ***/
     
    795514
    796515    Nexpect = catalog[0].Naverage * catalog[0].Nsecfilt;
    797     catalog[0].secfilt = FtableToSecFilt (&ftable, &Nitems, &catalog[0].catformat, FALSE);
     516    catalog[0].secfilt = FtableToSecFilt (&ftable, catalog[0].average, &Nitems, &catalog[0].catformat, FALSE);
    798517    if (Nitems != Nexpect) {
    799518      fprintf (stderr, "Warning: mismatch between Nsecfilt items in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nitems,  Nexpect);
    800519    }
    801     catalog[0].Nsecf_mem = catalog[0].Naverage * catalog[0].Nsecfilt;
    802     catalog[0].Nsecf_off = start               * catalog[0].Nsecfilt;
     520    catalog[0].Nsecfilt_mem = catalog[0].Naverage * catalog[0].Nsecfilt;
     521    catalog[0].Nsecfilt_off = start               * catalog[0].Nsecfilt;
    803522
    804523    /* if primary is defined, we were supplied with one additional average magnitude from Average
     
    811530
    812531  // XXX check the open status of the catalog
    813   if (catalog[0].catflags & LOAD_MEAS) {
     532  if (catalog[0].catflags & DVO_LOAD_MEASURE) {
    814533
    815534    Catalog *subcat = catalog[0].measure_catalog;
     
    838557    gfits_free_header (&header);
    839558    catalog[0].Nmeasure = Nmeasure;
    840     catalog[0].Nmeas_off = start;
     559    catalog[0].Nmeasure_off = start;
    841560  }
    842561
    843562  // XXX check the open status of the catalog?
    844   if (catalog[0].catflags & LOAD_MISS) {
     563  if (catalog[0].catflags & DVO_LOAD_MISSING) {
    845564
    846565    Catalog *subcat = catalog[0].missing_catalog;
     
    872591    gfits_free_header (&header);
    873592    catalog[0].Nmissing = Nmissing;
    874     catalog[0].Nmiss_off = start;
     593    catalog[0].Nmissing_off = start;
    875594  }
    876595
    877596  // XXX check the open status of the catalog
    878   if (catalog[0].catflags & LOAD_LENSING) {
     597  if (catalog[0].catflags & DVO_LOAD_LENSING) {
    879598
    880599    Catalog *subcat = catalog[0].lensing_catalog;
     
    896615
    897616    /* convert data format to internal : returns number of row read in Nlensing */
    898     catalog[0].lensing = FtableToLensing (&ftable, &Nlensing, &catalog[0].catformat, FALSE);
     617    catalog[0].lensing = FtableToLensing (&ftable, catalog[0].average, &Nlensing, &catalog[0].catformat, FALSE);
    899618    if (Nlensing != Nrows) {
    900619      // XXX this condition denotes the eof has been reached; not an error or a warning
     
    907626
    908627  // XXX check the open status of the catalog
    909   if (catalog[0].catflags & LOAD_LENSOBJ) {
     628  if (catalog[0].catflags & DVO_LOAD_LENSOBJ) {
    910629
    911630    Catalog *subcat = catalog[0].lensobj_catalog;
     
    927646
    928647    /* convert data format to internal : returns number of row read in Nlensobj */
    929     catalog[0].lensobj = FtableToLensobj (&ftable, &Nlensobj, &catalog[0].catformat, FALSE);
     648    catalog[0].lensobj = FtableToLensobj (&ftable, catalog[0].average, &Nlensobj, &catalog[0].catformat, FALSE);
    930649    if (Nlensobj != Nrows) {
    931650      // XXX this condition denotes the eof has been reached; not an error or a warning
     
    938657
    939658  // XXX check the open status of the catalog
    940   if (catalog[0].catflags & LOAD_STARPAR) {
     659  if (catalog[0].catflags & DVO_LOAD_STARPAR) {
    941660
    942661    Catalog *subcat = catalog[0].starpar_catalog;
     
    958677
    959678    /* convert data format to internal : returns number of row read in Nstarpar */
    960     catalog[0].starpar = FtableToStarPar (&ftable, &Nstarpar, &catalog[0].catformat, FALSE);
     679    catalog[0].starpar = FtableToStarPar (&ftable, catalog[0].average, &Nstarpar, &catalog[0].catformat, FALSE);
    961680    if (Nstarpar != Nrows) {
    962681      // XXX this condition denotes the eof has been reached; not an error or a warning
     
    969688
    970689  // XXX check the open status of the catalog
    971   if (catalog[0].catflags & LOAD_GALSHAPE) {
     690  if (catalog[0].catflags & DVO_LOAD_GALSHAPE) {
    972691
    973692    Catalog *subcat = catalog[0].galshape_catalog;
     
    989708
    990709    /* convert data format to internal : returns number of row read in Ngalshape */
    991     catalog[0].galshape = FtableToGalShape (&ftable, &Ngalshape, &catalog[0].catformat, FALSE);
     710    catalog[0].galshape = FtableToGalShape (&ftable, catalog[0].average, &Ngalshape, &catalog[0].catformat, FALSE);
    992711    if (Ngalshape != Nrows) {
    993712      // XXX this condition denotes the eof has been reached; not an error or a warning
     
    1010729  SecFilt *primary, *secfilt;
    1011730  int Nsecfilt;
    1012   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new, Ngalshape_disk_new;
     731  off_t Naverage_disk_new, Nmeasure_disk_new, Nmissing_disk_new, Nsecfilt_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new, Ngalshape_disk_new;
    1013732  off_t first, start, Nrows;
    1014733
     
    1019738 
    1020739  // skip empty catalogs: it is illegal to have Measures without corresponding Averages
    1021   Naves_disk_new = MAX (catalog[0].Naves_disk, catalog[0].Naverage + catalog[0].Naves_off);
    1022   if (Naves_disk_new == 0) {
     740  Naverage_disk_new = MAX (catalog[0].Naverage_disk, catalog[0].Naverage + catalog[0].Naverage_off);
     741  if (Naverage_disk_new == 0) {
    1023742    if (VERBOSE) fprintf (stderr, "no stars in catalog, skipping\n");
    1024743    return (TRUE);
     
    1038757  }
    1039758
    1040   Nmeas_disk_new = MAX (catalog[0].Nmeas_disk, catalog[0].Nmeasure + catalog[0].Nmeas_off);
    1041   Nmiss_disk_new = MAX (catalog[0].Nmiss_disk, catalog[0].Nmissing + catalog[0].Nmiss_off);
    1042   Nsecf_disk_new = MAX (catalog[0].Nsecf_disk, catalog[0].Naverage*Nsecfilt + catalog[0].Nsecf_off);
     759  Nmeasure_disk_new = MAX (catalog[0].Nmeasure_disk, catalog[0].Nmeasure + catalog[0].Nmeasure_off);
     760  Nmissing_disk_new = MAX (catalog[0].Nmissing_disk, catalog[0].Nmissing + catalog[0].Nmissing_off);
     761  Nsecfilt_disk_new = MAX (catalog[0].Nsecfilt_disk, catalog[0].Naverage*Nsecfilt + catalog[0].Nsecfilt_off);
    1043762  Nlensing_disk_new = MAX (catalog[0].Nlensing_disk, catalog[0].Nlensing + catalog[0].Nlensing_off);
    1044763  Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off);
     
    1047766
    1048767  /* make sure header is consistent with data */
    1049   gfits_modify (&catalog[0].header, "NSTARS",    OFF_T_FMT, 1,  Naves_disk_new);
    1050   gfits_modify (&catalog[0].header, "NMEAS",     OFF_T_FMT, 1,  Nmeas_disk_new);
    1051   gfits_modify (&catalog[0].header, "NMISS",     OFF_T_FMT, 1,  Nmiss_disk_new);
     768  gfits_modify (&catalog[0].header, "NSTARS",    OFF_T_FMT, 1,  Naverage_disk_new);
     769  gfits_modify (&catalog[0].header, "NMEAS",     OFF_T_FMT, 1,  Nmeasure_disk_new);
     770  gfits_modify (&catalog[0].header, "NMISS",     OFF_T_FMT, 1,  Nmissing_disk_new);
    1052771  gfits_modify (&catalog[0].header, "NSECFILT",  "%d",      1,  Nsecfilt);
    1053772  gfits_modify (&catalog[0].header, "NLENSING",  OFF_T_FMT, 1,  Nlensing_disk_new);
     
    1062781
    1063782  /*** Average Table ***/
    1064   if ((catalog[0].catflags & LOAD_AVES) && (catalog[0].average != NULL)) {
     783  if ((catalog[0].catflags & DVO_LOAD_AVERAGE) && (catalog[0].average != NULL)) {
    1065784
    1066785    first  = 0;                    // first row in memory to write
    1067     start  = catalog[0].Naves_off; // first disk row to write
     786    start  = catalog[0].Naverage_off; // first disk row to write
    1068787    Nrows  = catalog[0].Naverage - first;
    1069788
     
    1071790    assert (first >= 0);
    1072791    assert (first <= catalog[0].Naverage);
    1073     assert (catalog[0].Naves_disk >= catalog[0].Naves_off);
     792    assert (catalog[0].Naverage_disk >= catalog[0].Naverage_off);
    1074793
    1075794    /* convert internal to external format : also results in a byte-swapped, scaled output
     
    1078797   
    1079798    // if we are going to compress, we need to receive unswapped data --
    1080     int swapFromNative = !output_is_compressed (start, Nrows, Naves_disk_new, catalog->catcompress);
     799    int swapFromNative = !output_is_compressed (start, Nrows, Naverage_disk_new, catalog->catcompress);
    1081800
    1082801    if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary, swapFromNative)) {
     
    1085804    }
    1086805
    1087     if (!dvo_catalog_save_subcat (catalog, &ftable, start, Nrows, catalog[0].Naves_disk, Naves_disk_new)) {
     806    if (!dvo_catalog_save_subcat (catalog, &ftable, start, Nrows, catalog[0].Naverage_disk, Naverage_disk_new)) {
    1088807      fprintf (stderr, "failure writing Average table\n");
    1089808      goto failure;
     
    1105824
    1106825  /*** Measure Table ***/
    1107   if ((catalog[0].catflags & LOAD_MEAS) && (catalog[0].measure != NULL)) {
     826  if ((catalog[0].catflags & DVO_LOAD_MEASURE) && (catalog[0].measure != NULL)) {
    1108827
    1109828    first  = 0;                    // first row in memory to write
    1110     start  = catalog[0].Nmeas_off; // first disk row to write
     829    start  = catalog[0].Nmeasure_off; // first disk row to write
    1111830    Nrows  = catalog[0].Nmeasure - first;
    1112831
     
    1114833    assert (first >= 0);
    1115834    assert (first <= catalog[0].Nmeasure);
    1116     assert (catalog[0].Nmeas_disk >= catalog[0].Nmeas_off);
     835    assert (catalog[0].Nmeasure_disk >= catalog[0].Nmeasure_off);
    1117836
    1118837    // if we are going to compress, we need to receive unswapped data --
    1119     int swapFromNative = !output_is_compressed (start, Nrows, Nmeas_disk_new, catalog->catcompress);
     838    int swapFromNative = !output_is_compressed (start, Nrows, Nmeasure_disk_new, catalog->catcompress);
    1120839
    1121840    // convert to external table format (note that the block above does not damage or free catalog.average)
     
    1126845
    1127846    // write out Measure table
    1128     if (!dvo_catalog_save_subcat (catalog[0].measure_catalog, &ftable, start, Nrows, catalog[0].Nmeas_disk, Nmeas_disk_new)) {
     847    if (!dvo_catalog_save_subcat (catalog[0].measure_catalog, &ftable, start, Nrows, catalog[0].Nmeasure_disk, Nmeasure_disk_new)) {
    1129848      fprintf (stderr, "trouble writing Measure table\n");
    1130849      goto failure;
     
    1135854
    1136855  /*** Missing Table ***/
    1137   if ((catalog[0].catflags & LOAD_MISS) && (catalog[0].missing != NULL)) {
    1138 
    1139     if (catalog[0].Nmiss_off != 0) {
     856  if ((catalog[0].catflags & DVO_LOAD_MISSING) && (catalog[0].missing != NULL)) {
     857
     858    if (catalog[0].Nmissing_off != 0) {
    1140859      fprintf (stderr, "inconsistency: Missing table cannot be written in segments\n");
    1141860      goto failure;
     
    1161880
    1162881  /*** Secfilt Table ***/
    1163   if ((catalog[0].catflags & LOAD_SECF) && (catalog[0].secfilt != NULL)) {
     882  if ((catalog[0].catflags & DVO_LOAD_SECFILT) && (catalog[0].secfilt != NULL)) {
    1164883
    1165884    first  = 0;                    // first row in memory to write
    1166     start  = catalog[0].Nsecf_off; // first disk row to write
    1167     Nitems = catalog[0].Nsecf_mem;
     885    start  = catalog[0].Nsecfilt_off; // first disk row to write
     886    Nitems = catalog[0].Nsecfilt_mem;
    1168887    Nrows  = Nitems - first;
    1169888
     
    1171890    assert (first >= 0);
    1172891    assert (first <= Nitems);
    1173     assert (catalog[0].Nsecf_disk >= catalog[0].Nsecf_off);
     892    assert (catalog[0].Nsecfilt_disk >= catalog[0].Nsecfilt_off);
    1174893    // XXX check these for consistency...
    1175894
    1176895    // if we are going to compress, we need to receive unswapped data --
    1177     int swapFromNative = !output_is_compressed (start, Nrows, Nsecf_disk_new, catalog->catcompress);
     896    int swapFromNative = !output_is_compressed (start, Nrows, Nsecfilt_disk_new, catalog->catcompress);
    1178897
    1179898    // convert to external table format
     
    1181900
    1182901    // write out SecFilt table
    1183     if (!dvo_catalog_save_subcat (catalog[0].secfilt_catalog, &ftable, start, Nrows, catalog[0].Nsecf_disk, Nsecf_disk_new)) {
     902    if (!dvo_catalog_save_subcat (catalog[0].secfilt_catalog, &ftable, start, Nrows, catalog[0].Nsecfilt_disk, Nsecfilt_disk_new)) {
    1184903      fprintf (stderr, "failure writing SecFilt table\n");
    1185904      goto failure;
     
    1190909
    1191910  /*** Lensing Table (optional, do not save if not loaded) ***/
    1192   if ((catalog[0].catflags & LOAD_LENSING) && catalog[0].lensing_catalog->f && catalog[0].lensing) {
     911  if ((catalog[0].catflags & DVO_LOAD_LENSING) && catalog[0].lensing_catalog->f && catalog[0].lensing) {
    1193912
    1194913    first  = 0;                    // first row in memory to write
     
    1222941
    1223942  /*** Lensobj Table (optional, do not save if not loaded) ***/
    1224   if ((catalog[0].catflags & LOAD_LENSOBJ) && catalog[0].lensobj_catalog->f && catalog[0].lensobj) {
     943  if ((catalog[0].catflags & DVO_LOAD_LENSOBJ) && catalog[0].lensobj_catalog->f && catalog[0].lensobj) {
    1225944
    1226945    first  = 0;                    // first row in memory to write
     
    1254973
    1255974  /*** StarPar Table (optional, do not save if not loaded) ***/
    1256     if ((catalog[0].catflags & LOAD_STARPAR) && catalog[0].starpar_catalog->f && catalog[0].starpar) {
     975    if ((catalog[0].catflags & DVO_LOAD_STARPAR) && catalog[0].starpar_catalog->f && catalog[0].starpar) {
    1257976
    1258977    first  = 0;                    // first row in memory to write
     
    12861005
    12871006  /*** GalShape Table (optional, do not save if not loaded) ***/
    1288   if ((catalog[0].catflags & LOAD_GALSHAPE) && catalog[0].galshape_catalog->f && catalog[0].galshape) {
     1007  if ((catalog[0].catflags & DVO_LOAD_GALSHAPE) && catalog[0].galshape_catalog->f && catalog[0].galshape) {
    12891008
    12901009    first  = 0;                    // first row in memory to write
     
    13431062  SecFilt *primary, *secfilt;
    13441063  int Nsecfilt;
    1345   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new, Ngalshape_disk_new;
     1064  off_t Naverage_disk_new, Nmeasure_disk_new, Nmissing_disk_new, Nsecfilt_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new, Ngalshape_disk_new;
    13461065  off_t first, start, Nrows;
    13471066
     
    13521071 
    13531072  // skip empty catalogs: it is illegal to have Measures without corresponding Averages
    1354   if (catalog[0].Naves_off > 0) {
     1073  if (catalog[0].Naverage_off > 0) {
    13551074    fprintf (stderr, "ERROR: only partial catalog (Average) was loaded\n");
    13561075    goto failure;
    13571076  }
    1358   if (catalog[0].Nmeas_off > 0) {
     1077  if (catalog[0].Nmeasure_off > 0) {
    13591078    fprintf (stderr, "ERROR: only partial catalog (Measure) was loaded\n");
    13601079    goto failure;
    13611080  }
    1362   if (catalog[0].Nmiss_off > 0) {
     1081  if (catalog[0].Nmissing_off > 0) {
    13631082    fprintf (stderr, "ERROR: only partial catalog (Missing) was loaded\n");
    13641083    goto failure;
    13651084  }
    1366   if (catalog[0].Nsecf_off > 0) {
     1085  if (catalog[0].Nsecfilt_off > 0) {
    13671086    fprintf (stderr, "ERROR: only partial catalog (Secfilt) was loaded\n");
    13681087    goto failure;
     
    13851104  }
    13861105
    1387   Naves_disk_new = catalog[0].Naverage;
    1388   if (Naves_disk_new == 0) {
     1106  Naverage_disk_new = catalog[0].Naverage;
     1107  if (Naverage_disk_new == 0) {
    13891108    if (VERBOSE) fprintf (stderr, "resulting catalog is empty; delete it\n");
    13901109    // unlink ();
     
    14051124  }
    14061125
    1407   Nmeas_disk_new = catalog[0].Nmeasure;
    1408   Nmiss_disk_new = catalog[0].Nmissing;
    1409   Nsecf_disk_new = catalog[0].Naverage*Nsecfilt;
     1126  Nmeasure_disk_new = catalog[0].Nmeasure;
     1127  Nmissing_disk_new = catalog[0].Nmissing;
     1128  Nsecfilt_disk_new = catalog[0].Naverage*Nsecfilt;
    14101129  Nlensing_disk_new = catalog[0].Nlensing;
    14111130  Nlensobj_disk_new = catalog[0].Nlensobj;
     
    14141133
    14151134  /* make sure header is consistent with data */
    1416   gfits_modify (&catalog[0].header, "NSTARS",   OFF_T_FMT, 1,  Naves_disk_new);
    1417   gfits_modify (&catalog[0].header, "NMEAS",    OFF_T_FMT, 1,  Nmeas_disk_new);
    1418   gfits_modify (&catalog[0].header, "NMISS",    OFF_T_FMT, 1,  Nmiss_disk_new);
     1135  gfits_modify (&catalog[0].header, "NSTARS",   OFF_T_FMT, 1,  Naverage_disk_new);
     1136  gfits_modify (&catalog[0].header, "NMEAS",    OFF_T_FMT, 1,  Nmeasure_disk_new);
     1137  gfits_modify (&catalog[0].header, "NMISS",    OFF_T_FMT, 1,  Nmissing_disk_new);
    14191138  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, Nsecfilt);
    14201139  gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1,  Nlensing_disk_new);
     
    14281147
    14291148  /*** Average Table ***/
    1430   if ((catalog[0].catflags & LOAD_AVES) && (catalog[0].average != NULL)) {
     1149  if ((catalog[0].catflags & DVO_LOAD_AVERAGE) && (catalog[0].average != NULL)) {
    14311150
    14321151    first  = 0;                    // first row in memory to write
    1433     start  = catalog[0].Naves_off; // first disk row to write
     1152    start  = catalog[0].Naverage_off; // first disk row to write
    14341153    Nrows  = catalog[0].Naverage - first;
    14351154
     
    14371156    assert (first >= 0);
    14381157    assert (first <= catalog[0].Naverage);
    1439     assert (catalog[0].Naves_disk >= catalog[0].Naves_off);
     1158    assert (catalog[0].Naverage_disk >= catalog[0].Naverage_off);
    14401159
    14411160    /* convert internal to external format */
     
    14451164    }
    14461165
    1447     if (!dvo_catalog_save_subcat (catalog, &ftable, start, Nrows, catalog[0].Naves_disk, Naves_disk_new)) {
     1166    if (!dvo_catalog_save_subcat (catalog, &ftable, start, Nrows, catalog[0].Naverage_disk, Naverage_disk_new)) {
    14481167      fprintf (stderr, "failure writing Average table\n");
    14491168      goto failure;
     
    14651184
    14661185  /*** Measure Table ***/
    1467   if ((catalog[0].catflags & LOAD_MEAS) && (catalog[0].measure != NULL)) {
     1186  if ((catalog[0].catflags & DVO_LOAD_MEASURE) && (catalog[0].measure != NULL)) {
    14681187
    14691188    first  = 0;                    // first row in memory to write
    1470     start  = catalog[0].Nmeas_off; // first disk row to write
     1189    start  = catalog[0].Nmeasure_off; // first disk row to write
    14711190    Nrows  = catalog[0].Nmeasure - first;
    14721191
     
    14741193    assert (first >= 0);
    14751194    assert (first <= catalog[0].Nmeasure);
    1476     assert (catalog[0].Nmeas_disk >= catalog[0].Nmeas_off);
     1195    assert (catalog[0].Nmeasure_disk >= catalog[0].Nmeasure_off);
    14771196
    14781197    // convert to external table format
     
    14831202
    14841203    // write out Measure table
    1485     if (!dvo_catalog_save_subcat (catalog[0].measure_catalog, &ftable, start, Nrows, catalog[0].Nmeas_disk, Nmeas_disk_new)) {
     1204    if (!dvo_catalog_save_subcat (catalog[0].measure_catalog, &ftable, start, Nrows, catalog[0].Nmeasure_disk, Nmeasure_disk_new)) {
    14861205      fprintf (stderr, "trouble writing Measure table\n");
    14871206      goto failure;
     
    14921211
    14931212  /*** Missing Table ***/
    1494   if ((catalog[0].catflags & LOAD_MISS) && (catalog[0].missing != NULL)) {
    1495 
    1496     if (catalog[0].Nmiss_off != 0) {
     1213  if ((catalog[0].catflags & DVO_LOAD_MISSING) && (catalog[0].missing != NULL)) {
     1214
     1215    if (catalog[0].Nmissing_off != 0) {
    14971216      fprintf (stderr, "inconsistency: Missing table cannot be written in segments\n");
    14981217      goto failure;
     
    15151234
    15161235  /*** Secfilt Table ***/
    1517   if ((catalog[0].catflags & LOAD_SECF) && (catalog[0].secfilt != NULL)) {
     1236  if ((catalog[0].catflags & DVO_LOAD_SECFILT) && (catalog[0].secfilt != NULL)) {
    15181237
    15191238    first  = 0;                    // first row in memory to write
    1520     start  = catalog[0].Nsecf_off; // first disk row to write
     1239    start  = catalog[0].Nsecfilt_off; // first disk row to write
    15211240    Nitems = catalog[0].Naverage*Nsecfilt;
    15221241    Nrows  = Nitems - first;
     
    15251244    assert (first >= 0);
    15261245    assert (first <= Nitems);
    1527     assert (catalog[0].Nsecf_disk >= catalog[0].Nsecf_off);
     1246    assert (catalog[0].Nsecfilt_disk >= catalog[0].Nsecfilt_off);
    15281247    // XXX check these for consistency...
    15291248
     
    15321251
    15331252    // write out SecFilt table
    1534     if (!dvo_catalog_save_subcat (catalog[0].secfilt_catalog, &ftable, start, Nrows, catalog[0].Nsecf_disk, Nsecf_disk_new)) {
     1253    if (!dvo_catalog_save_subcat (catalog[0].secfilt_catalog, &ftable, start, Nrows, catalog[0].Nsecfilt_disk, Nsecfilt_disk_new)) {
    15351254      fprintf (stderr, "failure writing SecFilt table\n");
    15361255      goto failure;
     
    15411260
    15421261  /*** Lensing Table ***/
    1543   if ((catalog[0].catflags & LOAD_LENSING) && (catalog[0].lensing != NULL)) {
     1262  if ((catalog[0].catflags & DVO_LOAD_LENSING) && (catalog[0].lensing != NULL)) {
    15441263
    15451264    first  = 0;                    // first row in memory to write
     
    15681287
    15691288  /*** Lensobj Table ***/
    1570   if ((catalog[0].catflags & LOAD_LENSOBJ) && (catalog[0].lensobj != NULL)) {
     1289  if ((catalog[0].catflags & DVO_LOAD_LENSOBJ) && (catalog[0].lensobj != NULL)) {
    15711290
    15721291    first  = 0;                    // first row in memory to write
     
    15951314
    15961315  /*** StarPar Table ***/
    1597   if ((catalog[0].catflags & LOAD_STARPAR) && (catalog[0].starpar != NULL)) {
     1316  if ((catalog[0].catflags & DVO_LOAD_STARPAR) && (catalog[0].starpar != NULL)) {
    15981317
    15991318    first  = 0;                    // first row in memory to write
     
    16221341
    16231342  /*** GalShape Table ***/
    1624   if ((catalog[0].catflags & LOAD_GALSHAPE) && (catalog[0].galshape != NULL)) {
     1343  if ((catalog[0].catflags & DVO_LOAD_GALSHAPE) && (catalog[0].galshape != NULL)) {
    16251344
    16261345    first  = 0;                    // first row in memory to write
     
    16731392  SecFilt *primary, *secfilt;
    16741393  int Nsecfilt;
    1675   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new, Ngalshape_disk_new;
     1394  off_t Naverage_disk_new, Nmeasure_disk_new, Nmissing_disk_new, Nsecfilt_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new, Ngalshape_disk_new;
    16761395  off_t first, start, Nrows;
    16771396
     
    16811400
    16821401  // skip empty catalogs: it is illegal to have Measures without corresponding Averages
    1683   Naves_disk_new = MAX (catalog[0].Naves_disk, catalog[0].Naverage + catalog[0].Naves_off);
    1684   if (Naves_disk_new == 0) {
     1402  Naverage_disk_new = MAX (catalog[0].Naverage_disk, catalog[0].Naverage + catalog[0].Naverage_off);
     1403  if (Naverage_disk_new == 0) {
    16851404    if (VERBOSE) fprintf (stderr, "no stars in catalog, skipping\n");
    16861405    return (TRUE);
     
    17001419  }
    17011420
    1702   Nmeas_disk_new = MAX (catalog[0].Nmeas_disk, catalog[0].Nmeasure + catalog[0].Nmeas_off);
    1703   Nmiss_disk_new = MAX (catalog[0].Nmiss_disk, catalog[0].Nmissing + catalog[0].Nmiss_off);
    1704   Nsecf_disk_new = MAX (catalog[0].Nsecf_disk, catalog[0].Naverage*Nsecfilt + catalog[0].Nsecf_off);
     1421  Nmeasure_disk_new = MAX (catalog[0].Nmeasure_disk, catalog[0].Nmeasure + catalog[0].Nmeasure_off);
     1422  Nmissing_disk_new = MAX (catalog[0].Nmissing_disk, catalog[0].Nmissing + catalog[0].Nmissing_off);
     1423  Nsecfilt_disk_new = MAX (catalog[0].Nsecfilt_disk, catalog[0].Naverage*Nsecfilt + catalog[0].Nsecfilt_off);
    17051424  Nlensing_disk_new = MAX (catalog[0].Nlensing_disk, catalog[0].Nlensing + catalog[0].Nlensing_off);
    17061425  Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off);
     
    17091428
    17101429  /* make sure header is consistent with data */
    1711   gfits_modify (&catalog[0].header, "NSTARS",   OFF_T_FMT, 1,  Naves_disk_new);
    1712   gfits_modify (&catalog[0].header, "NMEAS",    OFF_T_FMT, 1,  Nmeas_disk_new);
    1713   gfits_modify (&catalog[0].header, "NMISS",    OFF_T_FMT, 1,  Nmiss_disk_new);
     1430  gfits_modify (&catalog[0].header, "NSTARS",   OFF_T_FMT, 1,  Naverage_disk_new);
     1431  gfits_modify (&catalog[0].header, "NMEAS",    OFF_T_FMT, 1,  Nmeasure_disk_new);
     1432  gfits_modify (&catalog[0].header, "NMISS",    OFF_T_FMT, 1,  Nmissing_disk_new);
    17141433  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, Nsecfilt);
    17151434  gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1,  Nlensing_disk_new);
     
    17261445  if (catalog[0].average != NULL) {
    17271446
    1728     first  = catalog[0].Naves_disk - catalog[0].Naves_off; // first row to write (memory)
    1729     start  = catalog[0].Naves_disk;                        // first row to write (disk)
     1447    first  = catalog[0].Naverage_disk - catalog[0].Naverage_off; // first row to write (memory)
     1448    start  = catalog[0].Naverage_disk;                        // first row to write (disk)
    17301449    Nrows  = catalog[0].Naverage - first;
    17311450
     
    17331452    assert (first >= 0);
    17341453    assert (first <= catalog[0].Naverage);
    1735     assert (catalog[0].Naves_disk >= catalog[0].Naves_off);
     1454    assert (catalog[0].Naverage_disk >= catalog[0].Naverage_off);
    17361455
    17371456    /* convert internal to external format */
     
    17411460    }
    17421461
    1743     if (!dvo_catalog_save_subcat (catalog, &ftable, start, Nrows, catalog[0].Naves_disk, Naves_disk_new)) {
     1462    if (!dvo_catalog_save_subcat (catalog, &ftable, start, Nrows, catalog[0].Naverage_disk, Naverage_disk_new)) {
    17441463      fprintf (stderr, "failure writing Average table\n");
    17451464      goto failure;
     
    17631482  if (catalog[0].measure != NULL) {
    17641483
    1765     first  = catalog[0].Nmeas_disk - catalog[0].Nmeas_off;  // first row in memory to write
    1766     start  = catalog[0].Nmeas_disk; // first disk row to write
     1484    first  = catalog[0].Nmeasure_disk - catalog[0].Nmeasure_off;  // first row in memory to write
     1485    start  = catalog[0].Nmeasure_disk; // first disk row to write
    17671486    Nrows  = catalog[0].Nmeasure - first;
    17681487
     
    17701489    assert (first >= 0);
    17711490    assert (first <= catalog[0].Nmeasure);
    1772     assert (catalog[0].Nmeas_disk >= catalog[0].Nmeas_off);
     1491    assert (catalog[0].Nmeasure_disk >= catalog[0].Nmeasure_off);
    17731492
    17741493    // convert to external table format
     
    17801499
    17811500    // write out Measure table
    1782     if (!dvo_catalog_save_subcat (catalog[0].measure_catalog, &ftable, start, Nrows, catalog[0].Nmeas_disk, Nmeas_disk_new)) {
     1501    if (!dvo_catalog_save_subcat (catalog[0].measure_catalog, &ftable, start, Nrows, catalog[0].Nmeasure_disk, Nmeasure_disk_new)) {
    17831502      fprintf (stderr, "trouble writing Measure table\n");
    17841503      goto failure;
     
    17951514  if (catalog[0].missing != NULL) {
    17961515
    1797     if (catalog[0].Nmiss_off != 0) {
     1516    if (catalog[0].Nmissing_off != 0) {
    17981517      fprintf (stderr, "inconsistency: Missing table cannot be written in segments\n");
    17991518      goto failure;
     
    18181537  if (catalog[0].secfilt != NULL) {
    18191538
    1820     first  = catalog[0].Nsecf_disk - catalog[0].Nsecf_off;  // first row in memory to write
    1821     start  = catalog[0].Nsecf_disk; // first disk row to write
    1822     Nrows  = catalog[0].Nsecf_mem - first;
    1823 
    1824     assert (Nrows >= 0);
    1825     assert (first >= 0);
    1826     assert (catalog[0].Nsecf_disk >= catalog[0].Nsecf_off);
     1539    first  = catalog[0].Nsecfilt_disk - catalog[0].Nsecfilt_off;  // first row in memory to write
     1540    start  = catalog[0].Nsecfilt_disk; // first disk row to write
     1541    Nrows  = catalog[0].Nsecfilt_mem - first;
     1542
     1543    assert (Nrows >= 0);
     1544    assert (first >= 0);
     1545    assert (catalog[0].Nsecfilt_disk >= catalog[0].Nsecfilt_off);
    18271546
    18281547    // convert to external table format
     
    18301549
    18311550    // write out SecFilt table
    1832     if (!dvo_catalog_save_subcat (catalog[0].secfilt_catalog, &ftable, start, Nrows, catalog[0].Nsecf_disk, Nsecf_disk_new)) {
     1551    if (!dvo_catalog_save_subcat (catalog[0].secfilt_catalog, &ftable, start, Nrows, catalog[0].Nsecfilt_disk, Nsecfilt_disk_new)) {
    18331552      fprintf (stderr, "failure writing SecFilt table\n");
    18341553      goto failure;
     
    19761695
    19771696/* XXX EAM : update is not efficient.  MeasureToFtable should only
    1978    convert the new rows (Nmeas_disk to Nmeasure). the resulting
     1697   convert the new rows (Nmeasure_disk to Nmeasure). the resulting
    19791698   table represents the end rows of the ftable.  we need to define
    19801699   the vtable based on the ftable, but with Ny = Nmeasure */ 
     
    19851704    // * optionally write the PHU header/matrix
    19861705    // * advance to the start of the output data block:
    1987     // ** Nx * catalog[0].Nmeas_off
     1706    // ** Nx * catalog[0].Nmeasure_off
    19881707    // * write out the ftable data block
    1989     // * if Nmeas_off + Nmeasure >= Nmeas_disk, update padding
    1990     // ** start = Nmeas_off
     1708    // * if Nmeasure_off + Nmeasure >= Nmeasure_disk, update padding
     1709    // ** start = Nmeasure_off
    19911710    // ** Nrows = Nmeasure
    19921711
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert.c

    r38348 r38351  
    180180
    181181// FtableToMeasure needs the Average since old formats stored measure.dR,dD only
     182// other FtableToFOO conversions accept the average argument for macro construction
    182183Measure *FtableToMeasure (FTable *ftable, Average *average, off_t *Nmeasure, DVOCatFormat *format, char nativeBytes) {
    183184
     
    308309}
    309310
     311/*** Missing / FTable conversion functions ***/
     312
     313Missing *FtableToMissing (FTable *ftable, Average *average, off_t *Nmissing, DVOCatFormat *format, char nativeBytes) {
     314
     315  Missing *missing;
     316  char extname[80];
     317
     318  /* convert to the internal format */
     319  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     320    fprintf (stderr, "EXTNAME missing for missing table\n");
     321    return (FALSE);
     322  }
     323
     324# define SKIPPING_FORMAT(NAME, FORMAT, TYPE)            \
     325  if (!strcmp (extname, NAME)) {                                        \
     326    fprintf (stderr, "ERROR: format %s not defined for missing, skipping\n", NAME); \
     327    *Nmissing = 0; \
     328    return NULL; \
     329  }
     330
     331# define CONVERT_FORMAT(NAME, FORMAT, TYPE)             \
     332  if (!strcmp (extname, NAME)) {                                        \
     333    Missing_##TYPE *tmpMissing;                                         \
     334    tmpMissing = gfits_table_get_Missing_##TYPE (ftable, Nmissing, NULL, NULL); \
     335    if (!tmpMissing) {                                                  \
     336      fprintf (stderr, "ERROR: failed to read missing\n");              \
     337      exit (2);                                                         \
     338    }                                                                   \
     339    missing = Missing_##TYPE##_ToInternal (tmpMissing, *Nmissing); \
     340    free (tmpMissing);                                                  \
     341    *format = DVO_FORMAT_##FORMAT;                                      \
     342    return (missing); }
     343
     344  // XXX the structure is here for future expansion, but no transformations are currently defined
     345  if (TRUE) {
     346    missing = gfits_table_get_Missing (ftable, Nmissing, NULL, NULL);
     347    if (!missing) {
     348      fprintf (stderr, "ERROR: failed to read missing\n");
     349      exit (2);
     350    }
     351    *format = DVO_FORMAT_INTERNAL;
     352    return (missing);
     353  }
     354
     355  if (!strcmp (extname, "DVO_MISSING")) {
     356    missing = gfits_table_get_Missing (ftable, Nmissing, NULL, NULL);
     357    if (!missing) {
     358      fprintf (stderr, "ERROR: failed to read missing\n");
     359      exit (2);
     360    }
     361    *format = DVO_FORMAT_INTERNAL;
     362    return (missing);
     363  }
     364
     365  SKIPPING_FORMAT ("DVO_MISSING_PS1_SIM",         PS1_SIM,         PS1_SIM);
     366  SKIPPING_FORMAT ("DVO_MISSING_PS1_REF",         PS1_REF,         PS1_REF);
     367  SKIPPING_FORMAT ("DVO_MISSING_ELIXIR",          ELIXIR,          Elixir);
     368  SKIPPING_FORMAT ("DVO_MISSING_LONEOS",          LONEOS,          Loneos);
     369  SKIPPING_FORMAT ("DVO_MISSING_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0);
     370  SKIPPING_FORMAT ("DVO_MISSING_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1);
     371  SKIPPING_FORMAT ("DVO_MISSING_PS1_DEV_1",       PS1_DEV_1,       PS1_DEV_1);
     372  SKIPPING_FORMAT ("DVO_MISSING_PS1_DEV_2",       PS1_DEV_2,       PS1_DEV_2);
     373  SKIPPING_FORMAT ("DVO_MISSING_PS1_V1",          PS1_V1,          PS1_V1);
     374  SKIPPING_FORMAT ("DVO_MISSING_PS1_V2",          PS1_V2,          PS1_V2);
     375  SKIPPING_FORMAT ("DVO_MISSING_PS1_V3",          PS1_V3,          PS1_V3);
     376  SKIPPING_FORMAT ("DVO_MISSING_PS1_V4",          PS1_V4,          PS1_V4);
     377  SKIPPING_FORMAT ("DVO_MISSING_PS1_V5",          PS1_V5,          PS1_V5);
     378# undef CONVERT_FORMAT
     379# undef SKIPPING_FORMAT
     380
     381  fprintf (stderr, "table format unknown: %s\n", extname);
     382
     383  *Nmissing = 0;
     384  return (NULL);
     385}
     386
    310387/*** SecFilt / FTable conversion functions ***/
    311388
    312 SecFilt *FtableToSecFilt (FTable *ftable, off_t *Nsecfilt, DVOCatFormat *format, char nativeBytes) {
     389SecFilt *FtableToSecFilt (FTable *ftable, Average *average, off_t *Nsecfilt, DVOCatFormat *format, char nativeBytes) {
    313390
    314391  SecFilt *secfilt;
     
    420497/*** Lensing / FTable conversion functions ***/
    421498
    422 Lensing *FtableToLensing (FTable *ftable, off_t *Nlensing, DVOCatFormat *format, char nativeBytes) {
     499Lensing *FtableToLensing (FTable *ftable, Average *average, off_t *Nlensing, DVOCatFormat *format, char nativeBytes) {
    423500
    424501  Lensing *lensing;
     
    559636/*** Lensobj / FTable conversion functions ***/
    560637
    561 Lensobj *FtableToLensobj (FTable *ftable, off_t *Nlensobj, DVOCatFormat *format, char nativeBytes) {
     638Lensobj *FtableToLensobj (FTable *ftable, Average *average, off_t *Nlensobj, DVOCatFormat *format, char nativeBytes) {
    562639
    563640  Lensobj *lensobj;
     
    674751/*** StarPar / FTable conversion functions ***/
    675752
    676 StarPar *FtableToStarPar (FTable *ftable, off_t *Nstarpar, DVOCatFormat *format, char nativeBytes) {
     753StarPar *FtableToStarPar (FTable *ftable, Average *average, off_t *Nstarpar, DVOCatFormat *format, char nativeBytes) {
    677754
    678755  StarPar *starpar;
     
    778855/*** GalShape / FTable conversion functions ***/
    779856
    780 GalShape *FtableToGalShape (FTable *ftable, off_t *Ngalshape, DVOCatFormat *format, char nativeBytes) {
     857GalShape *FtableToGalShape (FTable *ftable, Average *average, off_t *Ngalshape, DVOCatFormat *format, char nativeBytes) {
    781858
    782859  GalShape *galshape;
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_util.c

    r38344 r38351  
    207207      Catalog catalog;
    208208      catalog.filename = skylist->filename[reg];
    209       catalog.catflags = GetMeasures ? LOAD_AVES | LOAD_MEAS | LOAD_SECF : LOAD_AVES | LOAD_SECF;
     209      catalog.catflags = GetMeasures ? DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_SECFILT : DVO_LOAD_AVERAGE | DVO_LOAD_SECFILT;
    210210      catalog.Nsecfilt = 0;
    211211
Note: See TracChangeset for help on using the changeset viewer.