Changeset 38510
- Timestamp:
- Jun 21, 2015, 8:50:22 PM (11 years ago)
- Location:
- branches/eam_branches/ipp-20150616/Ohana/src/addstar/src
- Files:
-
- 1 added
- 1 edited
-
loadgalphot_join.c (added)
-
loadgalphot_readstars.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20150616/Ohana/src/addstar/src/loadgalphot_readstars.c
r38501 r38510 2 2 # include "loadgalphot.h" 3 3 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); \ 6 6 myAssert (!strcmp(type, #TYPE), "wrong column type"); \ 7 7 if (firstCol) { Nrow = NrowNew; firstCol = FALSE; } \ … … 26 26 off_t NrowNew; 27 27 28 char type[16]; 29 int firstCol; 30 31 // load in PHU for astrometry 28 32 Header PHU; 29 Header header;30 FTable ftable;31 32 // load in PHU for astrometry33 33 if (!gfits_fread_header (f, &PHU)) { 34 34 if (VERBOSE) fprintf (stderr, "can't read image subset header\n"); … … 37 37 } 38 38 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")) { 78 54 if (VERBOSE) fprintf (stderr, "can't read galaxy photometry header\n"); 79 gfits_free_header (&header );55 gfits_free_header (&header_xfit); 80 56 gfits_free_header (&PHU); 81 57 fclose (f); … … 83 59 } 84 60 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)) { 88 64 if (VERBOSE) fprintf (stderr, "can't read galaxy photometry data\n"); 89 gfits_free_header (&header );65 gfits_free_header (&header_xfit); 90 66 gfits_free_header (&PHU); 91 67 fclose (f); … … 93 69 } 94 70 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); 112 79 113 80 // 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); 116 126 117 127 GalPhot_Stars *stars = NULL;
Note:
See TracChangeset
for help on using the changeset viewer.
