IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37390


Ignore:
Timestamp:
Sep 12, 2014, 11:07:45 AM (12 years ago)
Author:
eugene
Message:

add starpar (stellar parameters) to dvo I/O functions

Location:
branches/eam_branches/ipp-20140904/Ohana/src
Files:
1 added
9 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20140904/Ohana/src/libautocode/Makefile.Targets

    r37386 r37390  
    4545$(ASRC)/lensobj.$(ARCH).o \
    4646$(ASRC)/lensobj-ps1-v5.$(ARCH).o \
     47$(ASRC)/starpar.$(ARCH).o \
     48$(ASRC)/starpar-ps1-v5.$(ARCH).o \
    4749$(ASRC)/missing.$(ARCH).o \
    4850$(ASRC)/photcode.$(ARCH).o \
     
    143145$(AINC)/lensobj.h \
    144146$(AINC)/lensobj-ps1-v5.h \
     147$(AINC)/starpar.h \
     148$(AINC)/starpar-ps1-v5.h \
    145149$(AINC)/missing.h \
    146150$(AINC)/photcode.h \
  • branches/eam_branches/ipp-20140904/Ohana/src/libautocode/def/starpar.d

    r37389 r37390  
    1 STRUCT       StarPars
     1STRUCT       StarPar
    22EXTNAME      DVO_STELLAR_PARAMS
    33TYPE         BINTABLE
     
    55DESCRIPTION  DVO Table of Stellar Properties
    66
    7 FIELD galLat,         GAL_LAT,       double, galactic latitude
    8 FIELD galLon,         GAL_LON,       double, galactic longitude
    9 FIELD MKtype,         MK_TYPE,       float, O0 = 0.0?
    10 FIELD Par,            PARALLAX,      float, 1/pc
    11 FIELD dPar,           PARALLAX_ERR,  float, 1/pc
    12 FIELD uRA,            U_RA,          model guess for proper motion
    13 FIELD uDEC,           U_DEC,         model guess for proper motion
    14 FIELD averef,         AVE_REF,      unsigned int,   reference to average entry     
    15 FIELD objID,          OBJ_ID,       unsigned int,   unique ID for object in table
    16 FIELD catID,          CAT_ID,       unsigned int,   unique ID for table in which object was first realized
     7FIELD galLat,         GAL_LAT,       double,         galactic latitude
     8FIELD galLon,         GAL_LON,       double,         galactic longitude
     9FIELD MKtype,         MK_TYPE,       float,          O0 = 0.0?
     10FIELD Par,            PARALLAX,      float,          1/pc
     11FIELD dPar,           PARALLAX_ERR,  float,          1/pc
     12FIELD uRA,            U_RA,          float,          model guess for proper motion
     13FIELD uDEC,           U_DEC,         float,          model guess for proper motion
     14FIELD averef,         AVE_REF,       unsigned int,   reference to average entry     
     15FIELD objID,          OBJ_ID,        unsigned int,   unique ID for object in table
     16FIELD catID,          CAT_ID,        unsigned int,   unique ID for table in which object was first realized
    1717
    1818# this is the list of stellar parameters loaded from Greg Green's tables:
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/include/dvo.h

    r37389 r37390  
    5454
    5555/* catalog values to be loaded */
    56 # define LOAD_NONE      0x000
    57 # define LOAD_AVES      0x001
    58 # define LOAD_MEAS      0x002
    59 # define LOAD_MISS      0x004
    60 # define LOAD_SECF      0x008
    61 # define SKIP_AVES      0x010
    62 # define SKIP_MEAS      0x020
    63 # define SKIP_MISS      0x040
    64 # define SKIP_SECF      0x080
    65 # define LOAD_LENSING   0x100
    66 # define LOAD_LENSOBJ   0x200
    67 # define SKIP_LENSING   0x400
    68 # define SKIP_LENSOBJ   0x800
     56# define LOAD_NONE      0x0000
     57# define LOAD_AVES      0x0001
     58# define LOAD_MEAS      0x0002
     59# define LOAD_MISS      0x0004
     60# define LOAD_SECF      0x0008
     61# define SKIP_AVES      0x0010
     62# define SKIP_MEAS      0x0020
     63# define SKIP_MISS      0x0040
     64# define SKIP_SECF      0x0080
     65# define LOAD_LENSING   0x0100
     66# define LOAD_LENSOBJ   0x0200
     67# define SKIP_LENSING   0x0400
     68# define SKIP_LENSOBJ   0x0800
     69# define LOAD_STARPAR   0x1000
     70# define SKIP_STARPAR   0x2000
    6971
    7072/* photometry code types */
     
    652654  Lensing *lensing;
    653655  Lensobj *lensobj;
    654 
    655656  StarPar *starpar;
    656657
     
    10071008void dvo_lensing_init (Lensing *lensing);
    10081009void dvo_lensobj_init (Lensobj *lensobj, int toZero);
    1009 
    10101010void dvo_starpar_init (StarPar *starpar);
    10111011
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/include/ps1_v5_defs.h

    r37035 r37390  
    1313Lensobj_PS1_V5          *LensobjInternalTo_PS1_V5 (Lensobj *in, off_t Nvalues);
    1414
     15StarPar                 *StarPar_PS1_V5_ToInternal (StarPar_PS1_V5 *in, off_t Nvalues);
     16StarPar_PS1_V5          *StarParInternalTo_PS1_V5 (StarPar *in, off_t Nvalues);
     17
    1518PhotCode                *PhotCode_PS1_V5_To_Internal (PhotCode_PS1_V5 *in, off_t Nvalues);
    1619PhotCode_PS1_V5         *PhotCode_Internal_To_PS1_V5 (PhotCode *in, off_t Nvalues);
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_catalog.c

    r37389 r37390  
    437437
    438438// init all data, or just catalog data
    439 void dvo_starpars_init (StarPars *starpars) {
    440   starpars->galLat = NAN;
    441   starpars->galLon = NAN;
    442   starpars->MKtype = NAN;
    443   starpars->Par    = NAN;
    444   starpars->dPar   = NAN;
    445   starpars->uRA    = NAN;
    446   starpars->uDEC   = NAN;
    447   starpars->averef = -1;
    448   starpars->objID  = -1;
    449   starpars->catID  = -1;
     439void dvo_starpar_init (StarPar *starpar) {
     440  starpar->galLat = NAN;
     441  starpar->galLon = NAN;
     442  starpar->MKtype = NAN;
     443  starpar->Par    = NAN;
     444  starpar->dPar   = NAN;
     445  starpar->uRA    = NAN;
     446  starpar->uDEC   = NAN;
     447  starpar->averef = -1;
     448  starpar->objID  = -1;
     449  starpar->catID  = -1;
    450450}
    451451
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_catalog_create.c

    r37389 r37390  
    102102    gfits_create_header (&catalog[0].starpar_catalog[0].header);
    103103    ALLOCATE (catalog[0].starpar_catalog[0].filename, char, length);
    104     sprintf (catalog[0].starpar_catalog[0].filename, "%s/%s.cpy", path, root);
     104    sprintf (catalog[0].starpar_catalog[0].filename, "%s/%s.cpz", path, root);
    105105    file = filebasename (catalog[0].starpar_catalog[0].filename);
    106106    gfits_modify (&catalog[0].header, "STARPAR", "%s", 1, file);
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_catalog_mef.c

    r37035 r37390  
    44 
    55  off_t Nbytes;
    6   off_t Naverage;
    7   off_t Nmeasure;
    8   off_t Nmissing;
    9   off_t Nlensing;
    10   off_t Nlensobj;
    116  off_t Nitems, Nexpect;
    127  int Nsecfilt;
     
    1813
    1914  ftable.header = &header;
    20 
    21   /* get the components from the header */
    22   if (!gfits_scan (&catalog[0].header, "NSTARS",   OFF_T_FMT, 1,  &Naverage)) return (FALSE);
    23   if (!gfits_scan (&catalog[0].header, "NMEAS",    OFF_T_FMT, 1,  &Nmeasure)) return (FALSE);
    24   if (!gfits_scan (&catalog[0].header, "NMISS",    OFF_T_FMT, 1,  &Nmissing)) return (FALSE);
    25   if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d",   1,               &Nsecfilt)) Nsecfilt = 0;
    26   if (!gfits_scan (&catalog[0].header, "NLENSING", OFF_T_FMT, 1,  &Nlensing)) return (FALSE);
    27   if (!gfits_scan (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  &Nlensobj)) return (FALSE);
    2815
    2916  /* the OBJID is a counter that uniquely defines an average entry and never changes.  if
     
    3825    catalog[0].catID = 0;
    3926  }
     27
     28  // NSTARS, average, Naves_disk
     29
     30# define GET_TABLE_SIZES(HFIELD, CFIELD, DFIELD, REQUIRED)              \
     31  off_t N##CFIELD;                                                      \
     32  if (REQUIRED) {                                                       \
     33    if (!gfits_scan (&catalog[0].header, HFIELD, OFF_T_FMT, 1, &N##CFIELD)) return (FALSE); \
     34  } else {                                                              \
     35    if (!gfits_scan (&catalog[0].header, HFIELD, OFF_T_FMT, 1, &N##CFIELD)) N##CFIELD = 0; \
     36  }                                                                     \
     37  /* save the current number so we can do partial updates */            \
     38  catalog[0].DFIELD = N##CFIELD;                                        \
     39  /* default values, but we will assign these a valid value before we exit (even if empty) */ \
     40  catalog[0].CFIELD = NULL;
    4041 
    41   /* save the current number so we can do partial updates */
    42   catalog[0].Naves_disk = Naverage;
    43   catalog[0].Nmeas_disk = Nmeasure;
    44   catalog[0].Nmiss_disk = Nmissing;
    45   catalog[0].Nsecf_disk = Naverage * Nsecfilt;
    46   catalog[0].Nlensing_disk = Nlensing;
    47   catalog[0].Nlensobj_disk = Nlensobj;
     42  /* 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);
     46  GET_TABLE_SIZES ("NLENSING", lensing, Nlensing_disk, FALSE);
     47  GET_TABLE_SIZES ("NLENSOBJ", lensobj, Nlensobj_disk, FALSE);
     48  GET_TABLE_SIZES ("NSTARPAR", starpar, Nstarpar_disk, FALSE);
    4849
    4950  /**  Nsecfilt is unusual: it does not list the number of data items in the table
    5051       instead, the number of items is Nsecfilt * Naverage.  **/
     52
     53  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;
    5154  catalog[0].Nsecfilt = Nsecfilt;
    52 
    53   /* default values, but we will assign these a valid value before we exit (even if empty) */
    54   catalog[0].average = NULL;
    55   catalog[0].measure = NULL;
    56   catalog[0].missing = NULL;
     55  catalog[0].Nsecf_disk = Naverage * Nsecfilt;
    5756  catalog[0].secfilt = NULL;
    58   catalog[0].lensing = NULL;
    59   catalog[0].lensobj = NULL;
    60 
    61   /* validate table mode ?*/
    6257
    6358  /*** Average Table ***/
     
    259254  }
    260255
     256  /* read StarPar table header */
     257  if (!gfits_fread_header (catalog[0].f, &header)) {
     258    if (VERBOSE) fprintf (stderr, "can't read table starpar header");
     259    return (FALSE);
     260  }
     261  /* read StarPar table data */
     262  if (catalog[0].catflags & LOAD_STARPAR) {
     263    if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) {
     264      if (VERBOSE) fprintf (stderr, "can't read table starpar data");
     265      return (FALSE);
     266    }
     267    catalog[0].starpar = FtableToStarPar (&ftable, &catalog[0].Nstarpar, &catalog[0].catformat);
     268    if (Nstarpar != catalog[0].Nstarpar_disk) {
     269      fprintf (stderr, "Warning: mismatch between Nstarpar in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nstarpar,  catalog[0].Nstarpar_disk);
     270    }
     271    catalog[0].Nstarpar = catalog[0].Nstarpar_disk;
     272    catalog[0].Nstarpar_off = 0;
     273  } else {
     274    Nbytes = gfits_data_size (&header);
     275    fseeko (catalog[0].f, Nbytes, SEEK_CUR);
     276    ALLOCATE (catalog[0].starpar, StarPar, 1);
     277    catalog[0].Nstarpar = 0;
     278    catalog[0].Nstarpar_off = catalog[0].Nstarpar_disk;
     279  }
     280
    261281  return (TRUE);
    262282}
     
    309329  gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1,  catalog[0].Nlensing);
    310330  gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  catalog[0].Nlensobj);
     331  gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1,  catalog[0].Nstarpar);
    311332  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    312333  gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
     
    403424  /* write out Lensobj table (convert to FITS table format) */
    404425  LensobjToFtable (&ftable, catalog[0].lensobj, catalog[0].Nlensobj, catalog[0].catformat);
     426  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     427    fprintf (stderr, "can't write table header");
     428    goto failure;
     429  }
     430  if (!gfits_fwrite_table (catalog[0].f, &ftable)) {
     431    fprintf (stderr, "can't write table data");
     432    goto failure;
     433  }
     434  gfits_free_table (&ftable);
     435  gfits_free_header (&header);
     436
     437  /* free temp storage */
     438  if (primary != NULL) {
     439    free (primary);
     440    free (secfilt);
     441  }
     442  return (TRUE);
     443
     444  /* write out StarPar table (convert to FITS table format) */
     445  StarParToFtable (&ftable, catalog[0].starpar, catalog[0].Nstarpar, catalog[0].catformat);
    405446  if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
    406447    fprintf (stderr, "can't write table header");
     
    446487  lensobj header
    447488  lensobj table
     489  starpar header
     490  starpar table
    448491*/
    449492   
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_catalog_split.c

    r37389 r37390  
    470470  gfits_free_header (&header);
    471471
    472   /*** Starpar Table ***/
     472  /*** StarPar Table ***/
    473473  if (!(catalog[0].catflags & SKIP_STARPAR)) {
    474474    // unless we specify 'skip', we still need to load the
     
    477477      return (FALSE);
    478478    }
    479     // the Starpar file need not exist, unless we expect data to exist
     479    // the StarPar file need not exist, unless we expect data to exist
    480480    if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nstarpar_disk > 0)) {
    481481      return (FALSE);
     
    483483  }
    484484  if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_STARPAR)) {
    485     // only read the Starpar table if the file actually exists
    486     /* read Starpar table data */
     485    // only read the StarPar table if the file actually exists
     486    /* read StarPar table data */
    487487    if (!gfits_fread_ftable_data (catalog[0].starpar_catalog[0].f, &ftable, FALSE)) {
    488488      if (VERBOSE) fprintf (stderr, "can't read table starpar data\n");
     
    490490    }
    491491    /* convert data format to internal : returns number of row read in Nstarpar */
    492     catalog[0].starpar = FtableToStarpar (&ftable, &Nstarpar, &catalog[0].catformat);
     492    catalog[0].starpar = FtableToStarPar (&ftable, &Nstarpar, &catalog[0].catformat);
    493493    if (Nstarpar != catalog[0].Nstarpar_disk) {
    494494      fprintf (stderr, "Warning: mismatch between Nstarpar in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n",  Nstarpar,  catalog[0].Nstarpar_disk);
     
    504504    }
    505505    gfits_create_header (&catalog[0].starpar_catalog[0].header);
    506     ALLOCATE (catalog[0].starpar, Starpar, 1);
     506    ALLOCATE (catalog[0].starpar, StarPar, 1);
    507507    catalog[0].Nstarpar = 0;
    508508    catalog[0].Nstarpar_off = catalog[0].Nstarpar_disk;
     
    729729    fseeko (subcat[0].f, Nbytes, SEEK_SET);
    730730
    731     /* read Starpar table header */
     731    /* read StarPar table header */
    732732    if (!gfits_fread_header (subcat[0].f, &header)) {
    733733      if (VERBOSE) fprintf (stderr, "can't read table starpar header");
    734734      return (FALSE);
    735735    }
    736     /* read Starpar table data : format is irrelevant here */
     736    /* read StarPar table data : format is irrelevant here */
    737737    if (!gfits_fread_ftable_range (subcat[0].f, &ftable, start, Nrows)) {
    738738      if (VERBOSE) fprintf (stderr, "can't read table starpar data");
     
    741741
    742742    /* convert data format to internal : returns number of row read in Nstarpar */
    743     catalog[0].starpar = FtableToStarpar (&ftable, &Nstarpar, &catalog[0].catformat);
     743    catalog[0].starpar = FtableToStarPar (&ftable, &Nstarpar, &catalog[0].catformat);
    744744    if (Nstarpar != Nrows) {
    745745      // XXX this condition denotes the eof has been reached; not an error or a warning
     
    977977  }
    978978
    979   /*** Lensobj Table ***/
     979  /*** StarPar Table ***/
    980980  if ((catalog[0].catflags & LOAD_STARPAR) && (catalog[0].starpar != NULL)) {
    981981
     
    990990
    991991    // convert to external table format (note that the block above does not damage or free catalog.average)
    992     if (!StarparToFtable (&ftable, &catalog[0].starpar[first], Nrows, catalog[0].catformat)) {
    993       fprintf (stderr, "trouble converting format\n");
    994       goto failure;
    995     }
    996 
    997     // write out Starpar table
     992    if (!StarParToFtable (&ftable, &catalog[0].starpar[first], Nrows, catalog[0].catformat)) {
     993      fprintf (stderr, "trouble converting format\n");
     994      goto failure;
     995    }
     996
     997    // write out StarPar table
    998998    if (!dvo_catalog_save_subcat (catalog[0].starpar_catalog, &ftable, start, Nrows, catalog[0].Nstarpar_disk, Nstarpar_disk_new)) {
    999       fprintf (stderr, "trouble writing Starpar table\n");
     999      fprintf (stderr, "trouble writing StarPar table\n");
    10001000      goto failure;
    10011001    }
     
    10641064  }
    10651065  if (catalog[0].Nstarpar_off > 0) {
    1066     fprintf (stderr, "ERROR: only partial catalog (Starpar) was loaded\n");
     1066    fprintf (stderr, "ERROR: only partial catalog (StarPar) was loaded\n");
    10671067    goto failure;
    10681068  }
     
    12751275  }
    12761276
    1277   /*** Starpar Table ***/
    1278   if ((catalog[0].catflags & LOAD_STARPAR) && (catalog[0].lensobj != NULL)) {
     1277  /*** StarPar Table ***/
     1278  if ((catalog[0].catflags & LOAD_STARPAR) && (catalog[0].starpar != NULL)) {
    12791279
    12801280    first  = 0;                    // first row in memory to write
    1281     start  = catalog[0].Nlensobj_off; // first disk row to write
    1282     Nrows  = catalog[0].Nlensobj - first;
    1283 
    1284     assert (Nrows >= 0);
    1285     assert (first >= 0);
    1286     assert (first <= catalog[0].Nlensobj);
    1287     assert (catalog[0].Nlensobj_disk >= catalog[0].Nlensobj_off);
     1281    start  = catalog[0].Nstarpar_off; // first disk row to write
     1282    Nrows  = catalog[0].Nstarpar - first;
     1283
     1284    assert (Nrows >= 0);
     1285    assert (first >= 0);
     1286    assert (first <= catalog[0].Nstarpar);
     1287    assert (catalog[0].Nstarpar_disk >= catalog[0].Nstarpar_off);
    12881288
    12891289    // convert to external table format
    1290     if (!LensobjToFtable (&ftable, &catalog[0].lensobj[first], Nrows, catalog[0].catformat)) {
    1291       fprintf (stderr, "trouble converting format\n");
    1292       goto failure;
    1293     }
    1294 
    1295     // write out Lensobj table
    1296     if (!dvo_catalog_save_subcat (catalog[0].lensobj_catalog, &ftable, start, Nrows, catalog[0].Nlensobj_disk, Nlensobj_disk_new)) {
    1297       fprintf (stderr, "trouble writing Lensobj table\n");
     1290    if (!StarParToFtable (&ftable, &catalog[0].starpar[first], Nrows, catalog[0].catformat)) {
     1291      fprintf (stderr, "trouble converting format\n");
     1292      goto failure;
     1293    }
     1294
     1295    // write out StarPar table
     1296    if (!dvo_catalog_save_subcat (catalog[0].starpar_catalog, &ftable, start, Nrows, catalog[0].Nstarpar_disk, Nstarpar_disk_new)) {
     1297      fprintf (stderr, "trouble writing StarPar table\n");
    12981298      goto failure;
    12991299    }
     
    13271327  SecFilt *primary, *secfilt;
    13281328  int Nsecfilt;
    1329   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nlensobj_disk_new;
     1329  off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new;
    13301330  off_t first, start, Nrows;
    13311331
     
    13591359  Nlensing_disk_new = MAX (catalog[0].Nlensing_disk, catalog[0].Nlensing + catalog[0].Nlensing_off);
    13601360  Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off);
    1361   Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off);
     1361  Nstarpar_disk_new = MAX (catalog[0].Nstarpar_disk, catalog[0].Nstarpar + catalog[0].Nstarpar_off);
    13621362
    13631363  /* make sure header is consistent with data */
     
    13681368  gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1,  Nlensing_disk_new);
    13691369  gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  Nlensobj_disk_new);
    1370   gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1,  Nlensobj_disk_new);
     1370  gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1,  Nstarpar_disk_new);
    13711371  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
    13721372  gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
     
    15451545  }
    15461546
    1547   /*** Lensobj Table ***/
    1548   if (catalog[0].lensobj != NULL) {
    1549 
    1550     first  = catalog[0].Nlensobj_disk - catalog[0].Nlensobj_off;  // first row in memory to write
    1551     start  = catalog[0].Nlensobj_disk; // first disk row to write
    1552     Nrows  = catalog[0].Nlensobj - first;
    1553 
    1554     assert (Nrows >= 0);
    1555     assert (first >= 0);
    1556     assert (first <= catalog[0].Nlensobj);
    1557     assert (catalog[0].Nlensobj_disk >= catalog[0].Nlensobj_off);
     1547  /*** StarPar Table ***/
     1548  if (catalog[0].starpar != NULL) {
     1549
     1550    first  = catalog[0].Nstarpar_disk - catalog[0].Nstarpar_off;  // first row in memory to write
     1551    start  = catalog[0].Nstarpar_disk; // first disk row to write
     1552    Nrows  = catalog[0].Nstarpar - first;
     1553
     1554    assert (Nrows >= 0);
     1555    assert (first >= 0);
     1556    assert (first <= catalog[0].Nstarpar);
     1557    assert (catalog[0].Nstarpar_disk >= catalog[0].Nstarpar_off);
    15581558
    15591559    // convert to external table format
    1560     // XXX does catalog.lensobj have averef correctly set up?
    1561     if (!LensobjToFtable (&ftable, &catalog[0].lensobj[first], Nrows, catalog[0].catformat)) {
    1562       fprintf (stderr, "trouble converting format\n");
    1563       goto failure;
    1564     }
    1565 
    1566     // write out Lensobj table
    1567     if (!dvo_catalog_save_subcat (catalog[0].lensobj_catalog, &ftable, start, Nrows, catalog[0].Nlensobj_disk, Nlensobj_disk_new)) {
    1568       fprintf (stderr, "trouble writing Lensobj table\n");
     1560    // XXX does catalog.starpar have averef correctly set up?
     1561    if (!StarParToFtable (&ftable, &catalog[0].starpar[first], Nrows, catalog[0].catformat)) {
     1562      fprintf (stderr, "trouble converting format\n");
     1563      goto failure;
     1564    }
     1565
     1566    // write out StarPar table
     1567    if (!dvo_catalog_save_subcat (catalog[0].starpar_catalog, &ftable, start, Nrows, catalog[0].Nstarpar_disk, Nstarpar_disk_new)) {
     1568      fprintf (stderr, "trouble writing StarPar table\n");
    15691569      goto failure;
    15701570    }
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_convert.c

    r37377 r37390  
    585585    default:
    586586      fprintf (stderr, "table format unknown (lensobj)\n");
     587      return (FALSE);
     588  }
     589  return (TRUE);
     590}
     591
     592/*** StarPar / FTable conversion functions ***/
     593
     594StarPar *FtableToStarPar (FTable *ftable, off_t *Nstarpar, char *format) {
     595
     596  StarPar *starpar;
     597  char extname[80];
     598
     599  /* convert to the internal format */
     600  if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {
     601    fprintf (stderr, "EXTNAME missing for starpar table\n");
     602    return (FALSE);
     603  }
     604
     605# define CONVERT_FORMAT(NAME, FORMAT, TYPE)             \
     606  if (!strcmp (extname, NAME)) {                                        \
     607    StarPar_##TYPE *tmpStarPar;                                         \
     608    tmpStarPar = gfits_table_get_StarPar_##TYPE (ftable, Nstarpar, NULL); \
     609    if (!tmpStarPar) {                                                  \
     610      fprintf (stderr, "ERROR: failed to read starpar\n");              \
     611      exit (2);                                                         \
     612    }                                                                   \
     613    starpar = StarPar_##TYPE##_ToInternal (tmpStarPar, *Nstarpar); \
     614    free (tmpStarPar);                                                  \
     615    *format = DVO_FORMAT_##FORMAT;                                      \
     616    return (starpar); }
     617
     618  if (!strcmp (extname, "DVO_STARPAR")) {
     619    starpar = gfits_table_get_StarPar (ftable, Nstarpar, NULL);
     620    if (!starpar) {
     621      fprintf (stderr, "ERROR: failed to read starpar\n");
     622      exit (2);
     623    }
     624    *format = DVO_FORMAT_INTERNAL;
     625    return (starpar);
     626  }
     627
     628// CONVERT_FORMAT ("DVO_STARPAR_PS1_REF",         PS1_REF,         PS1_REF);
     629// CONVERT_FORMAT ("DVO_STARPAR_ELIXIR",          ELIXIR,          Elixir);
     630// CONVERT_FORMAT ("DVO_STARPAR_LONEOS",          LONEOS,          Loneos);
     631// CONVERT_FORMAT ("DVO_STARPAR_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0);
     632// CONVERT_FORMAT ("DVO_STARPAR_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1);
     633// CONVERT_FORMAT ("DVO_STARPAR_PS1_DEV_1",       PS1_DEV_1,       PS1_DEV_1);
     634// CONVERT_FORMAT ("DVO_STARPAR_PS1_DEV_2",       PS1_DEV_2,       PS1_DEV_2);
     635// CONVERT_FORMAT ("DVO_STARPAR_PS1_V1",          PS1_V1,          PS1_V1);
     636// CONVERT_FORMAT ("DVO_STARPAR_PS1_V2",          PS1_V2,          PS1_V2);
     637// CONVERT_FORMAT ("DVO_STARPAR_PS1_V3",          PS1_V3,          PS1_V3);
     638// CONVERT_FORMAT ("DVO_STARPAR_PS1_V4",          PS1_V4,          PS1_V4);
     639  CONVERT_FORMAT ("DVO_STARPAR_PS1_V5",          PS1_V5,          PS1_V5);
     640# undef CONVERT_FORMAT
     641
     642  fprintf (stderr, "table format unknown: %s\n", extname);
     643
     644  *Nstarpar = 0;
     645  return (NULL);
     646}
     647
     648// StarParToFtable needs the Average since old formats stored starpar.dR,dD only
     649int StarParToFtable (FTable *ftable, StarPar *starpar, off_t Nstarpar, char format) {
     650
     651# define FORMAT_CASE(FORMAT, TYPE)              \
     652    case DVO_FORMAT_##FORMAT: { \
     653      StarPar_##TYPE *tmpStarPar; \
     654      tmpStarPar = StarParInternalTo_##TYPE (starpar, Nstarpar); \
     655      gfits_table_set_StarPar_##TYPE (ftable, tmpStarPar, Nstarpar); \
     656      free (tmpStarPar); \
     657      break; }
     658
     659  /* convert from the internal format */
     660  switch (format) {
     661    case DVO_FORMAT_INTERNAL: {
     662      gfits_table_set_StarPar (ftable, starpar, Nstarpar);
     663      break; }
     664
     665//    FORMAT_CASE (PS1_REF,         PS1_REF);
     666//    FORMAT_CASE (ELIXIR,          Elixir);
     667//    FORMAT_CASE (LONEOS,          Loneos);
     668//    FORMAT_CASE (PANSTARRS_DEV_0, Panstarrs_DEV_0);
     669//    FORMAT_CASE (PANSTARRS_DEV_1, Panstarrs_DEV_1);
     670//    FORMAT_CASE (PS1_DEV_1,       PS1_DEV_1);
     671//    FORMAT_CASE (PS1_DEV_2,       PS1_DEV_2);
     672//    FORMAT_CASE (PS1_V1,          PS1_V1);
     673//    FORMAT_CASE (PS1_V2,          PS1_V2);
     674//    FORMAT_CASE (PS1_V3,          PS1_V3);
     675//    FORMAT_CASE (PS1_V4,          PS1_V4);
     676      FORMAT_CASE (PS1_V5,          PS1_V5);
     677# undef FORMAT_CASE
     678
     679    default:
     680      fprintf (stderr, "table format unknown (starpar)\n");
    587681      return (FALSE);
    588682  }
  • branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c

    r37386 r37390  
    663663}
    664664
     665StarPar *StarPar_PS1_V5_ToInternal (StarPar_PS1_V5 *in, off_t Nvalues) {
     666
     667  off_t i;
     668  StarPar *out;
     669
     670  ALLOCATE_ZERO (out, StarPar, Nvalues);
     671
     672  for (i = 0; i < Nvalues; i++) {
     673    dvo_starpar_init (&out[i]);
     674
     675    out[i].galLat  = in[i].galLat;     
     676    out[i].galLon  = in[i].galLon;     
     677
     678    out[i].MKtype  = in[i].MKtype;     
     679    out[i].Par     = in[i].Par   ;     
     680    out[i].dPar    = in[i].dPar  ;     
     681    out[i].uRA     = in[i].uRA   ;     
     682    out[i].uDEC    = in[i].uDEC  ;     
     683
     684    out[i].averef  = in[i].averef;
     685    out[i].objID   = in[i].objID ;
     686    out[i].catID   = in[i].catID ;
     687  }
     688  return (out);
     689}
     690
     691StarPar_PS1_V5 *StarParInternalTo_PS1_V5 (StarPar *in, off_t Nvalues) {
     692
     693  off_t i;
     694  StarPar_PS1_V5 *out;
     695
     696  ALLOCATE_ZERO (out, StarPar_PS1_V5, Nvalues);
     697
     698  for (i = 0; i < Nvalues; i++) {
     699
     700    out[i].galLat  = in[i].galLat;     
     701    out[i].galLon  = in[i].galLon;     
     702
     703    out[i].MKtype  = in[i].MKtype;     
     704    out[i].Par     = in[i].Par   ;     
     705    out[i].dPar    = in[i].dPar  ;     
     706    out[i].uRA     = in[i].uRA   ;     
     707    out[i].uDEC    = in[i].uDEC  ;     
     708
     709    out[i].averef  = in[i].averef;
     710    out[i].objID   = in[i].objID ;
     711    out[i].catID   = in[i].catID ;
     712  }
     713  return (out);
     714}
     715
    665716# define RAW_IMAGE_NAME_LEN 117
    666717
Note: See TracChangeset for help on using the changeset viewer.