IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38331


Ignore:
Timestamp:
May 28, 2015, 8:29:48 PM (11 years ago)
Author:
eugene
Message:

add galshape tables to dvo

Location:
branches/eam_branches/ohana.20150429/src
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ohana.20150429/src/libautocode/Makefile.Targets

    r38218 r38331  
    167167$(AINC)/starpar-ps1-v5.h \
    168168$(AINC)/starpar-ps1-sim.h \
     169$(AINC)/galshape.h \
     170$(AINC)/galshape-ps1-v5.h \
    169171$(AINC)/missing.h \
    170172$(AINC)/photcode.h \
  • branches/eam_branches/ohana.20150429/src/libautocode/def/galshape.d

    r38218 r38331  
    77FIELD Xfit,         XFIT,           float,          centroid for fit
    88FIELD Yfit,         YFIT,           float,          centroid for fit
    9 
    109FIELD mag,          MAG,            float,          galaxy magnitude
    1110FIELD magErr,       MAG_ERR,        float,          galaxy magnitude error
    12 
    1311FIELD majorAxis,    MAJOR_AXIS,     float,          major axis size
    1412FIELD minorAxis,    MINOR_AXIS,     float,          minor axis size
    15 
    1613FIELD majorAxisErr, MAJOR_AXIS_ERR, float,          major axis size error
    1714FIELD minorAxisErr, MINOR_AXIS_ERR, float,          minor axis size error
    18 
    1915FIELD theta,        THETA,          float,          angle
    2016FIELD theta_err,    THETA_ERR,      float,          angle error
    21 
    2217FIELD index,        INDEX,          float,          sersic index (if relevant)
    2318FIELD chisq,        CHISQ,          float,          fit chisq
  • branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h

    r38218 r38331  
    490490  unsigned short   Nmeasure;             // number of psf measurements
    491491  unsigned short   Nmissing;             // number of missings
    492   unsigned short   Nextend;              // number of extended measurements
     492  unsigned short   Ngalshape;            // number of extended measurements
    493493  uint32_t         measureOffset;        // offset to first psf measurement
    494494  uint32_t         missingOffset;        // offset to first missing obs
     
    713713  int              measureOffset;        // offset to first psf measurement
    714714  int              missingOffset;        // offset to first missing obs
    715   int              galshapeOffset;       // offset to first lensing obs
     715  int              lensingOffset;        // offset to first lensing obs
    716716  int              lensobjOffset;        // offset to mean lensing data
    717   int              extendOffset;         // offset to extended object entry
     717  int              galshapeOffset;       // offset to extended object entry
    718718  int              starparOffset;        // offset to stellar parameter data
    719719  float            refColorBlue;         // color of astrometry ref stars
     
    972972Lensobj *FtableToLensobj (FTable *ftable, off_t *Nlensobj, char *format);
    973973StarPar *FtableToStarPar (FTable *ftable, off_t *Nstarpar, char *format);
     974GalShape *FtableToGalShape (FTable *ftable, off_t *Ngalshape, char *format);
     975
    974976int      FtableToImage   (FTable *ftable, Header *theader, char *format);
    975977
     
    980982int LensobjToFtable (FTable *ftable, Lensobj *lensobj, off_t Nlensobj, char format);
    981983int StarParToFtable (FTable *ftable, StarPar *starpar, off_t Nstarpar, char format);
     984int GalShapeToFtable (FTable *ftable, GalShape *galshape, off_t Ngalshape, char format);
     985
    982986int ImageToFtable (FTable *ftable, Header *theader, char format);
    983987int ImageToVtable (VTable *vtable, Header *theader, char format);
  • branches/eam_branches/ohana.20150429/src/libdvo/include/ps1_v5_defs.h

    r38153 r38331  
    2323StarPar_PS1_V5          *StarParInternalTo_PS1_V5 (StarPar *in, off_t Nvalues);
    2424
     25GalShape                *GalShape_PS1_V5_ToInternal (GalShape_PS1_V5 *in, off_t Nvalues);
     26GalShape_PS1_V5         *GalShapeInternalTo_PS1_V5 (GalShape *in, off_t Nvalues);
     27
    2528PhotCode                *PhotCode_PS1_V5_To_Internal (PhotCode_PS1_V5 *in, off_t Nvalues);
    2629PhotCode_PS1_V5         *PhotCode_Internal_To_PS1_V5 (PhotCode *in, off_t Nvalues);
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog.c

    r38218 r38331  
    488488  galshape->photcode = 0;
    489489  galshape->modelType = 0;
    490 
    491   galshape->averef = 0;
    492   galshape->padding = 0;
    493490}
    494491
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_create.c

    r37807 r38331  
    107107    free (file);
    108108
     109    /* define galshape catalog file */
     110    ALLOCATE (catalog[0].galshape_catalog, Catalog, 1);
     111    dvo_catalog_init (catalog[0].galshape_catalog, TRUE);
     112
     113    /* create basic data for galshape catalog file */
     114    gfits_create_header (&catalog[0].galshape_catalog[0].header);
     115    ALLOCATE (catalog[0].galshape_catalog[0].filename, char, length);
     116    sprintf (catalog[0].galshape_catalog[0].filename, "%s/%s.cpx", path, root);
     117    file = filebasename (catalog[0].galshape_catalog[0].filename);
     118    gfits_modify (&catalog[0].header, "GALSHAPE", "%s", 1, file);
     119    free (file);
     120
    109121    free (path);
    110122    free (root);
     
    133145    }
    134146    if (dvo_catalog_lock (catalog[0].starpar_catalog, catalog[0].lockmode) != DVO_CAT_OPEN_EMPTY) {
     147      fprintf (stderr, "error with file lock\n");
     148      exit (2);
     149    }
     150    if (dvo_catalog_lock (catalog[0].galshape_catalog, catalog[0].lockmode) != DVO_CAT_OPEN_EMPTY) {
    135151      fprintf (stderr, "error with file lock\n");
    136152      exit (2);
     
    163179  ALLOCATE (catalog[0].lensobj, Lensobj, 1);
    164180  ALLOCATE (catalog[0].starpar, StarPar, 1);
     181  ALLOCATE (catalog[0].galshape, GalShape, 1);
    165182
    166183  /* setup secondary filters to match photcodes:
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_mef.c

    r38219 r38331  
    293293    catalog[0].galshape = FtableToGalShape (&ftable, &catalog[0].Ngalshape, &catalog[0].catformat);
    294294    if (Ngalshape != catalog[0].Ngalshape_disk) {
    295       fprintf (stderr, "Warning: mismatch between Ngalshape in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nlensing,  catalog[0].Nlensing_disk);
    296     }
    297     catalog[0].Nlensing = catalog[0].Nlensing_disk;
    298     catalog[0].Nlensing_off = 0;
    299   } else {
    300     Nbytes = gfits_data_size (&header);
    301     fseeko (catalog[0].f, Nbytes, SEEK_CUR);
    302     ALLOCATE (catalog[0].lensing, Lensing, 1);
    303     catalog[0].Nlensing = 0;
    304     catalog[0].Nlensing_off = catalog[0].Nlensing_disk;
     295      fprintf (stderr, "Warning: mismatch between Ngalshape in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Ngalshape,  catalog[0].Ngalshape_disk);
     296    }
     297    catalog[0].Ngalshape = catalog[0].Ngalshape_disk;
     298    catalog[0].Ngalshape_off = 0;
     299  } else {
     300    Nbytes = gfits_data_size (&header);
     301    fseeko (catalog[0].f, Nbytes, SEEK_CUR);
     302    ALLOCATE (catalog[0].galshape, GalShape, 1);
     303    catalog[0].Ngalshape = 0;
     304    catalog[0].Ngalshape_off = catalog[0].Ngalshape_disk;
    305305  }
    306306
     
    356356  gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  catalog[0].Nlensobj);
    357357  gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1,  catalog[0].Nstarpar);
     358  gfits_modify (&catalog[0].header, "NGALSHAPE", OFF_T_FMT, 1,  catalog[0].Ngalshape);
     359
    358360  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    359361  gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
     
    461463  gfits_free_header (&header);
    462464
    463   /* free temp storage */
    464   if (primary != NULL) {
    465     free (primary);
    466     free (secfilt);
    467   }
    468   return (TRUE);
    469 
    470465  /* write out StarPar table (convert to FITS table format) */
    471466  StarParToFtable (&ftable, catalog[0].starpar, catalog[0].Nstarpar, catalog[0].catformat);
     467  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     468    fprintf (stderr, "can't write table header");
     469    goto failure;
     470  }
     471  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
     472    fprintf (stderr, "can't write table data");
     473    goto failure;
     474  }
     475  gfits_free_table (&ftable);
     476  gfits_free_header (&header);
     477
     478  /* write out GalShape table (convert to FITS table format) */
     479  GalShapeToFtable (&ftable, catalog[0].galshape, catalog[0].Ngalshape, catalog[0].catformat);
    472480  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
    473481    fprintf (stderr, "can't write table header");
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c

    r38153 r38331  
    192192    // databases created prior to ~2014.07.01 did not have the LENSING, LENSOBJ, STARPAR paths in their headers.
    193193    // in these cases, we do not try to lock or open the relevant file
    194     if (!strcmp (name, "LENSING")) return (DVO_CAT_OPEN_EMPTY);
    195     if (!strcmp (name, "LENSOBJ")) return (DVO_CAT_OPEN_EMPTY);
    196     if (!strcmp (name, "STARPAR")) return (DVO_CAT_OPEN_EMPTY);
     194    if (!strcmp (name, "LENSING"))  return (DVO_CAT_OPEN_EMPTY);
     195    if (!strcmp (name, "LENSOBJ"))  return (DVO_CAT_OPEN_EMPTY);
     196    if (!strcmp (name, "STARPAR"))  return (DVO_CAT_OPEN_EMPTY);
     197    if (!strcmp (name, "GALSHAPE")) return (DVO_CAT_OPEN_EMPTY);
    197198    return (DVO_CAT_OPEN_FAIL);
    198199  }
     
    240241  off_t Nlensobj;
    241242  off_t Nstarpar;
     243  off_t Ngalshape;
    242244  off_t Nitems;
    243245  int status, Nsecfilt;
     
    254256
    255257  /* get the components from the header - these duplicate information in the split files (NAXIS2) */
    256   // NSTARS, NMEAS, NMISS are required; NLENSING, NLENSOBJ, NSTARPAR are not (0 if not found)
    257   if (!gfits_scan (&catalog[0].header, "NSTARS",   OFF_T_FMT, 1,  &Naverage)) return (FALSE);
    258   if (!gfits_scan (&catalog[0].header, "NMEAS",    OFF_T_FMT, 1,  &Nmeasure)) return (FALSE);
    259   if (!gfits_scan (&catalog[0].header, "NMISS",    OFF_T_FMT, 1,  &Nmissing)) return (FALSE);
    260   if (!gfits_scan (&catalog[0].header, "NSECFILT",      "%d", 1,  &Nsecfilt)) Nsecfilt = 0;
    261   if (!gfits_scan (&catalog[0].header, "NLENSING", OFF_T_FMT, 1,  &Nlensing)) Nlensing = 0;
    262   if (!gfits_scan (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  &Nlensobj)) Nlensobj = 0;
    263   if (!gfits_scan (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1,  &Nstarpar)) Nstarpar = 0;
     258  // NSTARS, NMEAS, NMISS are required; NLENSING, NLENSOBJ, NSTARPAR, NGALSHAPE are not (0 if not found)
     259  if (!gfits_scan (&catalog[0].header, "NSTARS",    OFF_T_FMT, 1,  &Naverage))  return (FALSE);
     260  if (!gfits_scan (&catalog[0].header, "NMEAS",     OFF_T_FMT, 1,  &Nmeasure))  return (FALSE);
     261  if (!gfits_scan (&catalog[0].header, "NMISS",     OFF_T_FMT, 1,  &Nmissing))  return (FALSE);
     262  if (!gfits_scan (&catalog[0].header, "NSECFILT",       "%d", 1,  &Nsecfilt))  Nsecfilt  = 0;
     263  if (!gfits_scan (&catalog[0].header, "NLENSING",  OFF_T_FMT, 1,  &Nlensing))  Nlensing  = 0;
     264  if (!gfits_scan (&catalog[0].header, "NLENSOBJ",  OFF_T_FMT, 1,  &Nlensobj))  Nlensobj  = 0;
     265  if (!gfits_scan (&catalog[0].header, "NSTARPAR",  OFF_T_FMT, 1,  &Nstarpar))  Nstarpar  = 0;
     266  if (!gfits_scan (&catalog[0].header, "NGALSHAPE", OFF_T_FMT, 1,  &Ngalshape)) Ngalshape = 0;
    264267
    265268  /* the OBJID is a counter that uniquely defines an average entry and never changes.  if
     
    280283  catalog[0].Nmiss_disk = Nmissing;
    281284  catalog[0].Nsecf_disk = Naverage * Nsecfilt;
    282   catalog[0].Nlensing_disk = Nlensing;
    283   catalog[0].Nlensobj_disk = Nlensobj;
    284   catalog[0].Nstarpar_disk = Nstarpar;
     285  catalog[0].Nlensing_disk  = Nlensing;
     286  catalog[0].Nlensobj_disk  = Nlensobj;
     287  catalog[0].Nstarpar_disk  = Nstarpar;
     288  catalog[0].Ngalshape_disk = Ngalshape;
    285289
    286290  /**  Nsecfilt is unusual: it does not list the number of data items in the table
     
    289293
    290294  /* default values, but we will assign these a valid value before we exit (even if empty) */
    291   catalog[0].average = NULL;
    292   catalog[0].measure = NULL;
    293   catalog[0].missing = NULL;
    294   catalog[0].secfilt = NULL;
    295   catalog[0].lensing = NULL;
    296   catalog[0].lensobj = NULL;
    297   catalog[0].starpar = NULL;
     295  catalog[0].average  = NULL;
     296  catalog[0].measure  = NULL;
     297  catalog[0].missing  = NULL;
     298  catalog[0].secfilt  = NULL;
     299  catalog[0].lensing  = NULL;
     300  catalog[0].lensobj  = NULL;
     301  catalog[0].starpar  = NULL;
     302  catalog[0].galshape = NULL;
    298303
    299304  /*** Average Table ***/
     
    567572  gfits_free_header (&header);
    568573
     574  /*** GalShape Table ***/
     575  if (!(catalog[0].catflags & SKIP_GALSHAPE)) {
     576    // unless we specify 'skip', we still need to load the GalShape table
     577    status = dvo_catalog_open_subcat (catalog, &catalog[0].galshape_catalog, ftable.header, "GALSHAPE", VERBOSE);
     578    if (status == DVO_CAT_OPEN_FAIL) {
     579      return (FALSE);
     580    }
     581    // the GalShape file need not exist, unless we expect data to exist
     582    if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Ngalshape_disk > 0)) {
     583      return (FALSE);
     584    }
     585  }
     586  if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_GALSHAPE)) {
     587    // only read the GalShape table if the file actually exists
     588    /* read GalShape table data */
     589    if (!gfits_fread_ftable_data (catalog[0].galshape_catalog[0].f, &ftable, FALSE)) {
     590      if (VERBOSE) fprintf (stderr, "can't read table galshape data\n");
     591      return (FALSE);
     592    }
     593    /* convert data format to internal : returns number of row read in Ngalshape */
     594    catalog[0].galshape = FtableToGalShape (&ftable, &Ngalshape, &catalog[0].catformat);
     595    if (Ngalshape != catalog[0].Ngalshape_disk) {
     596      fprintf (stderr, "Warning: mismatch between Ngalshape in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Ngalshape,  catalog[0].Ngalshape_disk);
     597    }
     598    catalog[0].Ngalshape = catalog[0].Ngalshape_disk;
     599    catalog[0].Ngalshape_off = 0;
     600  } else {
     601    if (catalog[0].galshape_catalog) {
     602      gfits_free_header (&catalog[0].galshape_catalog[0].header);
     603    } else {
     604      ALLOCATE (catalog[0].galshape_catalog, Catalog, 1);
     605      dvo_catalog_init (catalog[0].galshape_catalog, TRUE);
     606    }
     607    gfits_create_header (&catalog[0].galshape_catalog[0].header);
     608    ALLOCATE (catalog[0].galshape, GalShape, 1);
     609    catalog[0].Ngalshape = 0;
     610    catalog[0].Ngalshape_off = catalog[0].Ngalshape_disk;
     611  }
     612  gfits_free_header (&header);
     613
    569614  return (TRUE);
    570615}
     
    575620
    576621  off_t Nbytes;
    577   off_t Naverage, Nexpect, Nitems, Nmeasure, Nmissing, Nlensing, Nlensobj, Nstarpar;
     622  off_t Naverage, Nexpect, Nitems, Nmeasure, Nmissing, Nlensing, Nlensobj, Nstarpar, Ngalshape;
    578623  Header header;
    579624  FTable ftable;
     
    808853  }
    809854
     855  // XXX check the open status of the catalog
     856  if (catalog[0].catflags & LOAD_GALSHAPE) {
     857
     858    Catalog *subcat = catalog[0].galshape_catalog;
     859
     860    /* move pointer past header -- must be already read (load_catalog) */
     861    Nbytes = subcat[0].header.datasize + gfits_data_size (&subcat[0].header);
     862    fseeko (subcat[0].f, Nbytes, SEEK_SET);
     863
     864    /* read GalShape table header */
     865    if (!gfits_fread_header (subcat[0].f, &header)) {
     866      if (VERBOSE) fprintf (stderr, "can't read table galshape header");
     867      return (FALSE);
     868    }
     869    /* read GalShape table data : format is irrelevant here */
     870    if (!gfits_fread_ftable_range (subcat[0].f, FALSE, &ftable, start, Nrows)) {
     871      if (VERBOSE) fprintf (stderr, "can't read table galshape data");
     872      return (FALSE);
     873    }
     874
     875    /* convert data format to internal : returns number of row read in Ngalshape */
     876    catalog[0].galshape = FtableToGalShape (&ftable, &Ngalshape, &catalog[0].catformat);
     877    if (Ngalshape != Nrows) {
     878      // XXX this condition denotes the eof has been reached; not an error or a warning
     879      // fprintf (stderr, "Warning: mismatch between Ngalshape in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Ngalshape,  Nrows);
     880    }
     881    gfits_free_header (&header);
     882    catalog[0].Ngalshape = Ngalshape;
     883    catalog[0].Ngalshape_off = start;
     884  }
     885
    810886  return (TRUE);
    811887}
     
    819895  SecFilt *primary, *secfilt;
    820896  int Nsecfilt;
    821   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new;
     897  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;
    822898  off_t first, start, Nrows;
    823899
     
    853929  Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off);
    854930  Nstarpar_disk_new = MAX (catalog[0].Nstarpar_disk, catalog[0].Nstarpar + catalog[0].Nstarpar_off);
     931  Ngalshape_disk_new = MAX (catalog[0].Ngalshape_disk, catalog[0].Ngalshape + catalog[0].Ngalshape_off);
    855932
    856933  /* make sure header is consistent with data */
    857   gfits_modify (&catalog[0].header, "NSTARS",   OFF_T_FMT, 1,  Naves_disk_new);
    858   gfits_modify (&catalog[0].header, "NMEAS",    OFF_T_FMT, 1,  Nmeas_disk_new);
    859   gfits_modify (&catalog[0].header, "NMISS",    OFF_T_FMT, 1,  Nmiss_disk_new);
    860   gfits_modify (&catalog[0].header, "NSECFILT", "%d",   1, Nsecfilt);
    861   gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1,  Nlensing_disk_new);
    862   gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  Nlensobj_disk_new);
    863   gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1,  Nstarpar_disk_new);
     934  gfits_modify (&catalog[0].header, "NSTARS",    OFF_T_FMT, 1,  Naves_disk_new);
     935  gfits_modify (&catalog[0].header, "NMEAS",     OFF_T_FMT, 1,  Nmeas_disk_new);
     936  gfits_modify (&catalog[0].header, "NMISS",     OFF_T_FMT, 1,  Nmiss_disk_new);
     937  gfits_modify (&catalog[0].header, "NSECFILT",  "%d",      1,  Nsecfilt);
     938  gfits_modify (&catalog[0].header, "NLENSING",  OFF_T_FMT, 1,  Nlensing_disk_new);
     939  gfits_modify (&catalog[0].header, "NLENSOBJ",  OFF_T_FMT, 1,  Nlensobj_disk_new);
     940  gfits_modify (&catalog[0].header, "NSTARPAR",  OFF_T_FMT, 1,  Nstarpar_disk_new);
     941  gfits_modify (&catalog[0].header, "NGALSHAPE", OFF_T_FMT, 1,  Ngalshape_disk_new);
     942
    864943  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    865944  gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
     
    10671146  }
    10681147
     1148  /*** GalShape Table (optional, do not save if not loaded) ***/
     1149  if ((catalog[0].catflags & LOAD_GALSHAPE) && catalog[0].galshape_catalog->f && catalog[0].galshape) {
     1150
     1151    first  = 0;                    // first row in memory to write
     1152    start  = catalog[0].Ngalshape_off; // first disk row to write
     1153    Nrows  = catalog[0].Ngalshape - first;
     1154
     1155    assert (Nrows >= 0);
     1156    assert (first >= 0);
     1157    assert (first <= catalog[0].Ngalshape);
     1158    assert (catalog[0].Ngalshape_disk >= catalog[0].Ngalshape_off);
     1159
     1160    if (catalog[0].Ngalshape) {
     1161      // convert to external table format (note that the block above does not damage or free catalog.average)
     1162      if (!GalShapeToFtable (&ftable, &catalog[0].galshape[first], Nrows, catalog[0].catformat)) {
     1163        fprintf (stderr, "trouble converting format\n");
     1164        goto failure;
     1165      }
     1166
     1167      // write out GalShape table
     1168      if (!dvo_catalog_save_subcat (catalog[0].galshape_catalog, &ftable, start, Nrows, catalog[0].Ngalshape_disk, Ngalshape_disk_new)) {
     1169        fprintf (stderr, "trouble writing GalShape table\n");
     1170        goto failure;
     1171      }
     1172      gfits_free_header (&header);
     1173      gfits_free_table (&ftable);
     1174    }
     1175  }
     1176
    10691177  /* free temp storage */
    10701178  if (primary != NULL) {
     
    10931201  SecFilt *primary, *secfilt;
    10941202  int Nsecfilt;
    1095   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new;
     1203  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;
    10961204  off_t first, start, Nrows;
    10971205
     
    11281236  if (catalog[0].Nstarpar_off > 0) {
    11291237    fprintf (stderr, "ERROR: only partial catalog (StarPar) was loaded\n");
     1238    goto failure;
     1239  }
     1240  if (catalog[0].Ngalshape_off > 0) {
     1241    fprintf (stderr, "ERROR: only partial catalog (GalShape) was loaded\n");
    11301242    goto failure;
    11311243  }
     
    11571269  Nlensobj_disk_new = catalog[0].Nlensobj;
    11581270  Nstarpar_disk_new = catalog[0].Nstarpar;
     1271  Ngalshape_disk_new = catalog[0].Ngalshape;
    11591272
    11601273  /* make sure header is consistent with data */
     
    11661279  gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  Nlensobj_disk_new);
    11671280  gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1,  Nstarpar_disk_new);
     1281  gfits_modify (&catalog[0].header, "NGALSHAPE", OFF_T_FMT, 1, Ngalshape_disk_new);
    11681282  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    11691283  gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
     
    13591473    if (!dvo_catalog_save_subcat (catalog[0].starpar_catalog, &ftable, start, Nrows, catalog[0].Nstarpar_disk, Nstarpar_disk_new)) {
    13601474      fprintf (stderr, "trouble writing StarPar table\n");
     1475      goto failure;
     1476    }
     1477    gfits_free_header (&header);
     1478    gfits_free_table (&ftable);
     1479  }
     1480
     1481  /*** GalShape Table ***/
     1482  if ((catalog[0].catflags & LOAD_GALSHAPE) && (catalog[0].galshape != NULL)) {
     1483
     1484    first  = 0;                    // first row in memory to write
     1485    start  = catalog[0].Ngalshape_off; // first disk row to write
     1486    Nrows  = catalog[0].Ngalshape - first;
     1487
     1488    assert (Nrows >= 0);
     1489    assert (first >= 0);
     1490    assert (first <= catalog[0].Ngalshape);
     1491    assert (catalog[0].Ngalshape_disk >= catalog[0].Ngalshape_off);
     1492
     1493    // convert to external table format
     1494    if (!GalShapeToFtable (&ftable, &catalog[0].galshape[first], Nrows, catalog[0].catformat)) {
     1495      fprintf (stderr, "trouble converting format\n");
     1496      goto failure;
     1497    }
     1498
     1499    // write out GalShape table
     1500    if (!dvo_catalog_save_subcat (catalog[0].galshape_catalog, &ftable, start, Nrows, catalog[0].Ngalshape_disk, Ngalshape_disk_new)) {
     1501      fprintf (stderr, "trouble writing GalShape table\n");
    13611502      goto failure;
    13621503    }
     
    13901531  SecFilt *primary, *secfilt;
    13911532  int Nsecfilt;
    1392   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new;
     1533  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;
    13931534  off_t first, start, Nrows;
    13941535
     
    14231564  Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off);
    14241565  Nstarpar_disk_new = MAX (catalog[0].Nstarpar_disk, catalog[0].Nstarpar + catalog[0].Nstarpar_off);
     1566  Ngalshape_disk_new = MAX (catalog[0].Ngalshape_disk, catalog[0].Ngalshape + catalog[0].Ngalshape_off);
    14251567
    14261568  /* make sure header is consistent with data */
     
    14321574  gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  Nlensobj_disk_new);
    14331575  gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1,  Nstarpar_disk_new);
     1576  gfits_modify (&catalog[0].header, "NGALSHAPE", OFF_T_FMT, 1,  Ngalshape_disk_new);
     1577
    14341578  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    14351579  gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
     
    16301774    if (!dvo_catalog_save_subcat (catalog[0].starpar_catalog, &ftable, start, Nrows, catalog[0].Nstarpar_disk, Nstarpar_disk_new)) {
    16311775      fprintf (stderr, "trouble writing StarPar table\n");
     1776      goto failure;
     1777    }
     1778    gfits_free_header (&header);
     1779    gfits_free_table (&ftable);
     1780  }
     1781
     1782  /*** GalShape Table ***/
     1783  if (catalog[0].galshape != NULL) {
     1784
     1785    first  = catalog[0].Ngalshape_disk - catalog[0].Ngalshape_off;  // first row in memory to write
     1786    start  = catalog[0].Ngalshape_disk; // first disk row to write
     1787    Nrows  = catalog[0].Ngalshape - first;
     1788
     1789    assert (Nrows >= 0);
     1790    assert (first >= 0);
     1791    assert (first <= catalog[0].Ngalshape);
     1792    assert (catalog[0].Ngalshape_disk >= catalog[0].Ngalshape_off);
     1793
     1794    // convert to external table format
     1795    // XXX does catalog.galshape have averef correctly set up?
     1796    if (!GalShapeToFtable (&ftable, &catalog[0].galshape[first], Nrows, catalog[0].catformat)) {
     1797      fprintf (stderr, "trouble converting format\n");
     1798      goto failure;
     1799    }
     1800
     1801    // write out GalShape table
     1802    if (!dvo_catalog_save_subcat (catalog[0].galshape_catalog, &ftable, start, Nrows, catalog[0].Ngalshape_disk, Ngalshape_disk_new)) {
     1803      fprintf (stderr, "trouble writing GalShape table\n");
    16321804      goto failure;
    16331805    }
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert_PS1_DEV_2.c

    r37807 r38331  
    118118    out[i].Nmeasure      = in[i].Nmeasure;     
    119119    out[i].Nmissing      = in[i].Nmissing;     
    120     out[i].Nextend       = in[i].Nextend;     
     120    out[i].Ngalshape     = in[i].Nextend;     
    121121    out[i].measureOffset = in[i].measureOffset;
    122122    out[i].missingOffset = in[i].missingOffset;
     
    152152    out[i].Nmeasure      = in[i].Nmeasure;     
    153153    out[i].Nmissing      = in[i].Nmissing;     
    154     out[i].Nextend       = in[i].Nextend;     
     154    out[i].Nextend       = in[i].Ngalshape;     
    155155    out[i].measureOffset = in[i].measureOffset;
    156156    out[i].missingOffset = in[i].missingOffset;
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert_PS1_V1.c

    r37807 r38331  
    138138    out[i].Nmeasure      = in[i].Nmeasure;     
    139139    out[i].Nmissing      = in[i].Nmissing;     
    140     out[i].Nextend       = in[i].Nextend;     
     140    out[i].Ngalshape     = in[i].Ngalshape;     
    141141    out[i].measureOffset = in[i].measureOffset;
    142142    out[i].missingOffset = in[i].missingOffset;
     
    173173    out[i].Nmeasure      = in[i].Nmeasure;     
    174174    out[i].Nmissing      = in[i].Nmissing;     
    175     out[i].Nextend       = in[i].Nextend;     
     175    out[i].Ngalshape     = in[i].Ngalshape;     
    176176    out[i].measureOffset = in[i].measureOffset;
    177177    out[i].missingOffset = in[i].missingOffset;
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert_PS1_V2.c

    r37807 r38331  
    143143    out[i].Nmeasure      = in[i].Nmeasure;     
    144144    out[i].Nmissing      = in[i].Nmissing;     
    145     out[i].Nextend       = in[i].Nextend;     
     145    out[i].Ngalshape     = in[i].Ngalshape;     
    146146    out[i].measureOffset = in[i].measureOffset;
    147147    out[i].missingOffset = in[i].missingOffset;
     
    182182    out[i].Nmeasure      = in[i].Nmeasure;     
    183183    out[i].Nmissing      = in[i].Nmissing;     
    184     out[i].Nextend       = in[i].Nextend;     
     184    out[i].Ngalshape     = in[i].Ngalshape;     
    185185    out[i].measureOffset = in[i].measureOffset;
    186186    out[i].missingOffset = in[i].missingOffset;
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert_PS1_V3.c

    r37807 r38331  
    143143    out[i].Nmeasure      = in[i].Nmeasure;     
    144144    out[i].Nmissing      = in[i].Nmissing;     
    145     out[i].Nextend       = in[i].Nextend;     
     145    out[i].Ngalshape     = in[i].Ngalshape;     
    146146    out[i].measureOffset = in[i].measureOffset;
    147147    out[i].missingOffset = in[i].missingOffset;
     
    184184    out[i].Nmeasure      = in[i].Nmeasure;     
    185185    out[i].Nmissing      = in[i].Nmissing;     
    186     out[i].Nextend       = in[i].Nextend;     
     186    out[i].Ngalshape     = in[i].Ngalshape;     
    187187    out[i].measureOffset = in[i].measureOffset;
    188188    out[i].missingOffset = in[i].missingOffset;
  • branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert_PS1_V4.c

    r37807 r38331  
    164164    out[i].Nmeasure      = in[i].Nmeasure;     
    165165    out[i].Nmissing      = in[i].Nmissing;     
    166     out[i].Nextend       = in[i].Nextend;     
     166    out[i].Ngalshape     = in[i].Ngalshape;     
    167167    out[i].measureOffset = in[i].measureOffset;
    168168    out[i].missingOffset = in[i].missingOffset;
     
    208208    out[i].Nmeasure      = in[i].Nmeasure;     
    209209    out[i].Nmissing      = in[i].Nmissing;     
    210     out[i].Nextend       = in[i].Nextend;     
     210    out[i].Ngalshape     = in[i].Ngalshape;     
    211211    out[i].measureOffset = in[i].measureOffset;
    212212    out[i].missingOffset = in[i].missingOffset;
     
    690690    out[i].Nmeasure      = in[i].Nmeasure;     
    691691    out[i].Nmissing      = in[i].Nmissing;     
    692     out[i].Nextend       = in[i].Nextend;     
     692    out[i].Ngalshape     = in[i].Ngalshape;     
    693693    out[i].measureOffset = in[i].measureOffset;
    694694    out[i].missingOffset = in[i].missingOffset;
Note: See TracChangeset for help on using the changeset viewer.