Changeset 37992 for trunk/Ohana/src/addstar
- Timestamp:
- Mar 23, 2015, 8:13:04 AM (11 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/addstar/src/ReadStarsFITS.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/src/ReadStarsFITS.c
r37967 r37992 4 4 // (excluding SDSS data and reference database info, such as 2MASS) 5 5 // NOTE: these must also be listed in MatchHeaders.c (line ~ 62) 6 Stars *Convert_SMPDATA PROTO((FTable *table, unsigned int *nstars)); 7 Stars *Convert_PS1_DEV_0 PROTO((FTable *table, unsigned int *nstars)); 8 Stars *Convert_PS1_DEV_1 PROTO((FTable *table, unsigned int *nstars)); 9 Stars *Convert_PS1_V1 PROTO((FTable *table, unsigned int *nstars)); 10 Stars *Convert_PS1_V1_Alt PROTO((FTable *table, unsigned int *nstars)); 11 Stars *Convert_PS1_V2 PROTO((FTable *table, unsigned int *nstars)); 12 Stars *Convert_PS1_V3 PROTO((FTable *table, unsigned int *nstars)); 13 Stars *Convert_PS1_V4 PROTO((FTable *table, unsigned int *nstars)); 14 Stars *Convert_PS1_V5 PROTO((FTable *table, unsigned int *nstars)); 15 Stars *Convert_PS1_V5_Lensing PROTO((FTable *table, unsigned int *nstars)); 16 Stars *Convert_PS1_V5_Lensing_Alt PROTO((FTable *table, unsigned int *nstars)); 17 Stars *Convert_PS1_SV1 PROTO((FTable *table, unsigned int *nstars)); 18 Stars *Convert_PS1_SV1_Alt PROTO((FTable *table, unsigned int *nstars)); 19 Stars *Convert_PS1_SV2 PROTO((FTable *table, unsigned int *nstars)); 20 Stars *Convert_PS1_SV3 PROTO((FTable *table, unsigned int *nstars)); 21 Stars *Convert_PS1_SV4 PROTO((FTable *table, unsigned int *nstars)); 22 Stars *Convert_PS1_DV3 PROTO((FTable *table, unsigned int *nstars)); 23 Stars *Convert_PS1_DV4 PROTO((FTable *table, unsigned int *nstars)); 24 Stars *Convert_PS1_DV5 PROTO((FTable *table, unsigned int *nstars)); 6 Stars *Convert_SMPDATA PROTO((FTable *table, unsigned int *nstars)); 7 Stars *Convert_PS1_DEV_0 PROTO((FTable *table, unsigned int *nstars)); 8 Stars *Convert_PS1_DEV_1 PROTO((FTable *table, unsigned int *nstars)); 9 Stars *Convert_PS1_V1 PROTO((FTable *table, unsigned int *nstars)); 10 Stars *Convert_PS1_V1_Alt PROTO((FTable *table, unsigned int *nstars)); 11 Stars *Convert_PS1_V2 PROTO((FTable *table, unsigned int *nstars)); 12 Stars *Convert_PS1_V3 PROTO((FTable *table, unsigned int *nstars)); 13 Stars *Convert_PS1_V4 PROTO((FTable *table, unsigned int *nstars)); 14 Stars *Convert_PS1_V5 PROTO((FTable *table, unsigned int *nstars)); 15 Stars *Convert_PS1_V5_R0_Lensing PROTO((FTable *table, unsigned int *nstars)); 16 Stars *Convert_PS1_V5_R1_Lensing PROTO((FTable *table, unsigned int *nstars)); 17 Stars *Convert_PS1_V5_R2_Lensing PROTO((FTable *table, unsigned int *nstars)); 18 Stars *Convert_PS1_SV1 PROTO((FTable *table, unsigned int *nstars)); 19 Stars *Convert_PS1_SV1_Alt PROTO((FTable *table, unsigned int *nstars)); 20 Stars *Convert_PS1_SV2 PROTO((FTable *table, unsigned int *nstars)); 21 Stars *Convert_PS1_SV3 PROTO((FTable *table, unsigned int *nstars)); 22 Stars *Convert_PS1_SV4 PROTO((FTable *table, unsigned int *nstars)); 23 Stars *Convert_PS1_DV3 PROTO((FTable *table, unsigned int *nstars)); 24 Stars *Convert_PS1_DV4 PROTO((FTable *table, unsigned int *nstars)); 25 Stars *Convert_PS1_DV5 PROTO((FTable *table, unsigned int *nstars)); 25 26 26 27 // given a file with the pointer at the start of the table block and the … … 86 87 break; 87 88 case 312: 88 stars = Convert_PS1_V5_ Lensing_Alt(&table, &Nstars);89 stars = Convert_PS1_V5_R0_Lensing (&table, &Nstars); 89 90 break; 90 91 case 320: 91 stars = Convert_PS1_V5_Lensing (&table, &Nstars); 92 stars = Convert_PS1_V5_R1_Lensing (&table, &Nstars); 93 break; 94 case 328: 95 stars = Convert_PS1_V5_R2_Lensing (&table, &Nstars); 92 96 break; 93 97 default: … … 864 868 } 865 869 866 Stars *Convert_PS1_V5_ Lensing (FTable *table, unsigned int *nstars) {870 Stars *Convert_PS1_V5_R0_Lensing (FTable *table, unsigned int *nstars) { 867 871 868 872 off_t Nstars; … … 870 874 double ZeroPt; 871 875 Stars *stars; 872 CMF_PS1_V5_ Lensing *ps1data;873 874 ps1data = gfits_table_get_CMF_PS1_V5_ Lensing (table, &Nstars, NULL);876 CMF_PS1_V5_R0_Lensing *ps1data; 877 878 ps1data = gfits_table_get_CMF_PS1_V5_R0_Lensing (table, &Nstars, NULL); 875 879 if (!ps1data) { 876 880 fprintf (stderr, "skipping inconsistent entry\n"); … … 989 993 } 990 994 991 Stars *Convert_PS1_V5_ Lensing_Alt(FTable *table, unsigned int *nstars) {995 Stars *Convert_PS1_V5_R1_Lensing (FTable *table, unsigned int *nstars) { 992 996 993 997 off_t Nstars; … … 995 999 double ZeroPt; 996 1000 Stars *stars; 997 CMF_PS1_V5_ Lensing_Alt*ps1data;998 999 ps1data = gfits_table_get_CMF_PS1_V5_ Lensing_Alt(table, &Nstars, NULL);1001 CMF_PS1_V5_R1_Lensing *ps1data; 1002 1003 ps1data = gfits_table_get_CMF_PS1_V5_R1_Lensing (table, &Nstars, NULL); 1000 1004 if (!ps1data) { 1001 1005 fprintf (stderr, "skipping inconsistent entry\n"); … … 1114 1118 } 1115 1119 1116 Stars *Convert_PS1_ SV1(FTable *table, unsigned int *nstars) {1120 Stars *Convert_PS1_V5_R2_Lensing (FTable *table, unsigned int *nstars) { 1117 1121 1118 1122 off_t Nstars; … … 1120 1124 double ZeroPt; 1121 1125 Stars *stars; 1122 CMF_PS1_SV1 *ps1data; 1123 1124 if (table[0].header[0].Naxis[0] == 196) { 1125 stars = Convert_PS1_SV1_Alt (table, nstars); 1126 return (stars); 1127 } 1128 1129 ps1data = gfits_table_get_CMF_PS1_SV1 (table, &Nstars, NULL); 1126 CMF_PS1_V5_R2_Lensing *ps1data; 1127 1128 ps1data = gfits_table_get_CMF_PS1_V5_R2_Lensing (table, &Nstars, NULL); 1130 1129 if (!ps1data) { 1131 1130 fprintf (stderr, "skipping inconsistent entry\n"); … … 1153 1152 stars[i].measure.dMcal = ps1data[i].dMcal; 1154 1153 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 1154 stars[i].measure.dMap = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN; 1155 1156 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 1157 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 1158 1159 // these fluxes are converted from counts to counts/sec in FilterStars.c 1160 stars[i].measure.FluxPSF = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M); 1161 stars[i].measure.dFluxPSF = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM); 1162 stars[i].measure.FluxKron = ps1data[i].kronFlux; 1163 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 1164 stars[i].measure.FluxAp = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map); 1165 stars[i].measure.dFluxAp = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap); 1166 1167 stars[i].measure.Sky = ps1data[i].sky; 1168 stars[i].measure.dSky = ps1data[i].dSky; 1169 1170 stars[i].measure.psfChisq = ps1data[i].psfChisq; 1171 stars[i].measure.psfQF = ps1data[i].psfQF; 1172 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 1173 1174 stars[i].measure.psfNdof = ps1data[i].psfNdof; 1175 stars[i].measure.psfNpix = ps1data[i].psfNpix; 1176 stars[i].measure.extNsigma = ps1data[i].extNsigma; 1177 1178 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 1179 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 1180 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 1181 1182 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 1183 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 1184 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 1185 1186 stars[i].measure.photFlags = ps1data[i].flags; 1187 stars[i].measure.photFlags2 = ps1data[i].flags2; 1188 1189 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 1190 stars[i].measure.detID = ps1data[i].detID; 1191 1192 ALLOCATE (stars[i].lensing, Lensing, 1); 1193 dvo_lensing_init (stars[i].lensing); 1194 1195 stars[i].lensing->X11_sm_obj = ps1data[i].X11_sm_obj; 1196 stars[i].lensing->X12_sm_obj = ps1data[i].X12_sm_obj; 1197 stars[i].lensing->X22_sm_obj = ps1data[i].X22_sm_obj; 1198 stars[i].lensing->E1_sm_obj = ps1data[i].E1_sm_obj; 1199 stars[i].lensing->E2_sm_obj = ps1data[i].E2_sm_obj; 1200 1201 stars[i].lensing->X11_sh_obj = ps1data[i].X11_sh_obj; 1202 stars[i].lensing->X12_sh_obj = ps1data[i].X12_sh_obj; 1203 stars[i].lensing->X22_sh_obj = ps1data[i].X22_sh_obj; 1204 stars[i].lensing->E1_sh_obj = ps1data[i].E1_sh_obj; 1205 stars[i].lensing->E2_sh_obj = ps1data[i].E2_sh_obj; 1206 1207 stars[i].lensing->X11_sm_psf = ps1data[i].X11_sm_psf; 1208 stars[i].lensing->X12_sm_psf = ps1data[i].X12_sm_psf; 1209 stars[i].lensing->X22_sm_psf = ps1data[i].X22_sm_psf; 1210 stars[i].lensing->E1_sm_psf = ps1data[i].E1_sm_psf; 1211 stars[i].lensing->E2_sm_psf = ps1data[i].E2_sm_psf; 1212 1213 stars[i].lensing->X11_sh_psf = ps1data[i].X11_sh_psf; 1214 stars[i].lensing->X12_sh_psf = ps1data[i].X12_sh_psf; 1215 stars[i].lensing->X22_sh_psf = ps1data[i].X22_sh_psf; 1216 stars[i].lensing->E1_sh_psf = ps1data[i].E1_sh_psf; 1217 stars[i].lensing->E2_sh_psf = ps1data[i].E2_sh_psf; 1218 1219 // stars[i].lensing->F_ApR5 = ps1data[i].F_ApR5; 1220 // stars[i].lensing->dF_ApR5 = ps1data[i].dF_ApR5; 1221 // stars[i].lensing->sF_ApR5 = ps1data[i].sF_ApR5; 1222 // stars[i].lensing->fF_ApR5 = ps1data[i].fF_ApR5; 1223 // 1224 // stars[i].lensing->F_ApR6 = ps1data[i].F_ApR6; 1225 // stars[i].lensing->dF_ApR6 = ps1data[i].dF_ApR6; 1226 // stars[i].lensing->sF_ApR6 = ps1data[i].sF_ApR6; 1227 // stars[i].lensing->fF_ApR6 = ps1data[i].fF_ApR6; 1228 1229 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 1230 stars[i].lensing->detID = ps1data[i].detID; 1231 1232 // the Average fields and the following Measure fields are set in FilterStars after 1233 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 1234 1235 // averef is set in find_matches 1236 1237 // dbFlags is zero on ingest. 1238 1239 // the following fields are currently not being set anywhere: t_msec 1240 } 1241 *nstars = Nstars; 1242 return (stars); 1243 } 1244 1245 Stars *Convert_PS1_SV1 (FTable *table, unsigned int *nstars) { 1246 1247 off_t Nstars; 1248 unsigned int i; 1249 double ZeroPt; 1250 Stars *stars; 1251 CMF_PS1_SV1 *ps1data; 1252 1253 if (table[0].header[0].Naxis[0] == 196) { 1254 stars = Convert_PS1_SV1_Alt (table, nstars); 1255 return (stars); 1256 } 1257 1258 ps1data = gfits_table_get_CMF_PS1_SV1 (table, &Nstars, NULL); 1259 if (!ps1data) { 1260 fprintf (stderr, "skipping inconsistent entry\n"); 1261 return (NULL); 1262 } 1263 ZeroPt = GetZeroPoint(); 1264 1265 ALLOCATE (stars, Stars, Nstars); 1266 for (i = 0; i < Nstars; i++) { 1267 InitStar (&stars[i]); 1268 stars[i].measure.Xccd = ps1data[i].X; 1269 stars[i].measure.Yccd = ps1data[i].Y; 1270 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 1271 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 1272 1273 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 1274 stars[i].measure.pltscale = ps1data[i].pltscale; 1275 1276 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 1277 stars[i].measure.M = NAN; 1278 } else { 1279 stars[i].measure.M = ps1data[i].M + ZeroPt; 1280 } 1281 stars[i].measure.dM = ps1data[i].dM; 1282 stars[i].measure.dMcal = ps1data[i].dMcal; 1283 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 1155 1284 stars[i].measure.dMap = ps1data[i].dM; // a proxy measure 1156 1285
Note:
See TracChangeset
for help on using the changeset viewer.
