IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38510


Ignore:
Timestamp:
Jun 21, 2015, 8:50:22 PM (11 years ago)
Author:
eugene
Message:

working on loadgalphot

Location:
branches/eam_branches/ipp-20150616/Ohana/src/addstar/src
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20150616/Ohana/src/addstar/src/loadgalphot_readstars.c

    r38501 r38510  
    22# include "loadgalphot.h"
    33
    4 # define GET_COLUMN(OUT,NAME,TYPE) \
    5   TYPE *OUT = gfits_get_bintable_column_data (&header, &ftable, NAME, type, &NrowNew, &Ncol); \
     4# define GET_COLUMN(VER,OUT,NAME,TYPE)                                  \
     5  TYPE *OUT = gfits_get_bintable_column_data (&header_##VER, &ftable_##VER, NAME, type, &NrowNew, &Ncol); \
    66  myAssert (!strcmp(type, #TYPE), "wrong column type"); \
    77  if (firstCol) { Nrow = NrowNew; firstCol = FALSE; } \
     
    2626  off_t NrowNew;
    2727
     28  char type[16];
     29  int firstCol;
     30
     31  // load in PHU for astrometry
    2832  Header PHU;
    29   Header header;
    30   FTable ftable;
    31  
    32   // load in PHU for astrometry
    3333  if (!gfits_fread_header (f, &PHU)) {
    3434    if (VERBOSE) fprintf (stderr, "can't read image subset header\n");
     
    3737  }
    3838
    39   {
    40     Header header_xfit;
    41     FTable ftable_xfit;
    42 
    43     if (!gfits_find_Xheader (f, &header_xfit, "SkyChip.xfit")) {
    44       if (VERBOSE) fprintf (stderr, "can't read galaxy photometry header\n");
    45       gfits_free_header (&header_xfit);
    46       gfits_free_header (&PHU);
    47       fclose (f);
    48       return NULL;
    49     }
    50 
    51     ftable_xfit.header = &header_xfit;
    52 
    53     if (!gfits_fread_ftable_data (f, &ftable_xfit, FALSE)) {
    54       if (VERBOSE) fprintf (stderr, "can't read galaxy photometry data\n");
    55       gfits_free_header (&header_xfit);
    56       gfits_free_header (&PHU);
    57       fclose (f);
    58       return (NULL);
    59     }
    60 
    61     char type[16];
    62     int firstCol = TRUE;
    63 
    64     GET_COLUMN (ID_fit,        "IPP_IDET",      int);
    65     GET_COLUMN (MODEL_TYPE_fit,"MODEL_TYPE",    char); NcharModel = Ncol;.
    66     GET_COLUMN (EXT_WIDTH_MAJ, "EXT_WIDTH_MAJ", float);
    67     GET_COLUMN (EXT_WIDTH_MIN, "EXT_WIDTH_MIN", float);
    68     GET_COLUMN (EXT_THETA,     "EXT_THETA",     float);
    69     GET_COLUMN (EXT_THETA_ERR, "EXT_THETA_ERR", float);
    70     GET_COLUMN (INDEX,         "EXT_PAR_07",    float);
    71 
    72     // free the memory associated with the FITS files
    73     gfits_free_header (&header);
    74     gfits_free_table (&ftable);
    75   }
    76 
    77   if (!gfits_find_Xheader (f, &header, "SkyChip.xgal")) {
     39  // in xgal, we have numerical values to specify the model types
     40  // in xfit, we have strings.  these are listed with their numerical
     41  // match in the PHU.  I need to read the list of names and set up a string hash
     42
     43  if (!gfits_scan (PHU, "MTNUM", "%d", 1, &ModelTypeN)) { myAbort ("fail"); }
     44  for (i = 0; i < ModelTypeN; i++) {
     45    snprintf (name, 64, "MTNAM%02d", i);
     46    if (!gfits_scan (PHU, name, "%s", 1, ModelTypeTmp)) { myAbort ("fail"); }
     47    snprintf (name, 64, "MTVAL%02d", i);
     48    if (!gfits_scan (PHU, name, "%d", 1, &ModelTypeVal)) { myAbort ("fail"); }
     49  }
     50
     51  Header header_xfit;
     52  FTable ftable_xfit;
     53  if (!gfits_find_Xheader (f, &header_xfit, "SkyChip.xfit")) {
    7854    if (VERBOSE) fprintf (stderr, "can't read galaxy photometry header\n");
    79     gfits_free_header (&header);
     55    gfits_free_header (&header_xfit);
    8056    gfits_free_header (&PHU);
    8157    fclose (f);
     
    8359  }
    8460
    85   ftable.header = &header;
    86 
    87   if (!gfits_fread_ftable_data (f, &ftable, FALSE)) {
     61  ftable_xfit.header = &header_xfit;
     62
     63  if (!gfits_fread_ftable_data (f, &ftable_xfit, FALSE)) {
    8864    if (VERBOSE) fprintf (stderr, "can't read galaxy photometry data\n");
    89     gfits_free_header (&header);
     65    gfits_free_header (&header_xfit);
    9066    gfits_free_header (&PHU);
    9167    fclose (f);
     
    9369  }
    9470
    95   char type[16];
    96   int firstCol = TRUE;
    97 
    98   // GET_COLUMN (ID,           "IPP_IDET",     int);
    99   // GET_COLUMN (MODEL_TYPE,   "MODEL_TYPE",   int);
    100   GET_COLUMN (X_FIT,        "X_FIT",        float);
    101   GET_COLUMN (Y_FIT,        "Y_FIT",        float);
    102   // GET_COLUMN (NPIX,         "NPIX",              float);
    103   GET_COLUMN (GAL_FLUX,     "GAL_FLUX",     float); Nsample = Ncol;
    104   GET_COLUMN (GAL_FLUX_ERR, "GAL_FLUX_ERR", float); myAssert (Ncol == Nsample, "invalid table");
    105   GET_COLUMN (GAL_CHISQ,    "GAL_CHISQ",    float); myAssert (Ncol == Nsample, "invalid table");
    106   GET_COLUMN (FR_MAJOR_MIN, "FR_MAJOR_MIN", float);
    107   GET_COLUMN (FR_MAJOR_MAX, "FR_MAJOR_MAX", float);
    108   GET_COLUMN (FR_MAJOR_DEL, "FR_MAJOR_DEL", float);
    109   GET_COLUMN (FR_MINOR_MIN, "FR_MINOR_MIN", float);
    110   GET_COLUMN (FR_MINOR_MAX, "FR_MINOR_MAX", float);
    111   GET_COLUMN (FR_MINOR_DEL, "FR_MINOR_DEL", float);
     71  firstCol = TRUE;
     72  GET_COLUMN (xfit, ID_fit,         "IPP_IDET",      int);
     73  GET_COLUMN (xfit, MODEL_TYPE_fit, "MODEL_TYPE",    char); NcharModel = Ncol;
     74  GET_COLUMN (xfit, EXT_WIDTH_MAJ,  "EXT_WIDTH_MAJ", float);
     75  GET_COLUMN (xfit, EXT_WIDTH_MIN,  "EXT_WIDTH_MIN", float);
     76  GET_COLUMN (xfit, EXT_THETA,      "EXT_THETA",     float);
     77  GET_COLUMN (xfit, EXT_THETA_ERR,  "EXT_THETA_ERR", float);
     78  GET_COLUMN (xfit, INDEX,          "EXT_PAR_07",    float);
    11279
    11380  // free the memory associated with the FITS files
    114   gfits_free_header (&header);
    115   gfits_free_table (&ftable);
     81  gfits_free_header (&header_xfit);
     82  gfits_free_table (&ftable_xfit);
     83
     84  Header header_xgal;
     85  FTable ftable_xgal;
     86  if (!gfits_find_Xheader (f, &header_xgal, "SkyChip.xgal")) {
     87    if (VERBOSE) fprintf (stderr, "can't read galaxy photometry header\n");
     88    gfits_free_header (&header_xgal);
     89    gfits_free_header (&PHU);
     90    fclose (f);
     91    return NULL;
     92  }
     93
     94  ftable_xgal.header = &header_xgal;
     95
     96  if (!gfits_fread_ftable_data (f, &ftable_xgal, FALSE)) {
     97    if (VERBOSE) fprintf (stderr, "can't read galaxy photometry data\n");
     98    gfits_free_header (&header_xgal);
     99    gfits_free_header (&PHU);
     100    fclose (f);
     101    return (NULL);
     102  }
     103
     104  firstCol = TRUE;
     105  GET_COLUMN (xgal, ID_gal,        "IPP_IDET",     int);
     106  GET_COLUMN (xgal, MODEL_TYPE_gal,"MODEL_TYPE",   int);
     107  GET_COLUMN (xgal, NPIX,          "NPIX",         float);
     108  GET_COLUMN (xgal, X_FIT,         "X_FIT",        float);
     109  GET_COLUMN (xgal, Y_FIT,         "Y_FIT",        float);
     110  GET_COLUMN (xgal, GAL_FLUX,      "GAL_FLUX",     float); Nsample = Ncol;
     111  GET_COLUMN (xgal, GAL_FLUX_ERR,  "GAL_FLUX_ERR", float); myAssert (Ncol == Nsample, "invalid table");
     112  GET_COLUMN (xgal, GAL_CHISQ,     "GAL_CHISQ",    float); myAssert (Ncol == Nsample, "invalid table");
     113  GET_COLUMN (xgal, FR_MAJOR_MIN,  "FR_MAJOR_MIN", float);
     114  GET_COLUMN (xgal, FR_MAJOR_MAX,  "FR_MAJOR_MAX", float);
     115  GET_COLUMN (xgal, FR_MAJOR_DEL,  "FR_MAJOR_DEL", float);
     116  GET_COLUMN (xgal, FR_MINOR_MIN,  "FR_MINOR_MIN", float);
     117  GET_COLUMN (xgal, FR_MINOR_MAX,  "FR_MINOR_MAX", float);
     118  GET_COLUMN (xgal, FR_MINOR_DEL,  "FR_MINOR_DEL", float);
     119
     120  // i need to match the two lists based on (ID_gal == ID_fit), (MODEL_TYPE_gal == MODEL_TYPE_fit)
     121  join_IDs (ID_gal, ID_fit, index
     122
     123  // free the memory associated with the FITS files
     124  gfits_free_header (&header_xgal);
     125  gfits_free_table (&ftable_xgal);
    116126
    117127  GalPhot_Stars *stars = NULL;
Note: See TracChangeset for help on using the changeset viewer.