- Timestamp:
- Mar 29, 2015, 6:14:05 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20150112/Ohana/src/addstar/src/ReadStarsFITS.c
r37729 r38059 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)); 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)); 24 26 25 27 // given a file with the pointer at the start of the table block and the … … 85 87 break; 86 88 case 312: 87 stars = Convert_PS1_V5_ Lensing_Alt(&table, &Nstars);89 stars = Convert_PS1_V5_R0_Lensing (&table, &Nstars); 88 90 break; 89 91 case 320: 90 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); 91 96 break; 92 97 default: … … 112 117 if (!strcmp (type, "PS1_DV4")) { 113 118 stars = Convert_PS1_DV4 (&table, &Nstars); 119 } 120 if (!strcmp (type, "PS1_DV5")) { 121 stars = Convert_PS1_DV5 (&table, &Nstars); 114 122 } 115 123 if (stars == NULL) { … … 860 868 } 861 869 862 Stars *Convert_PS1_V5_ Lensing (FTable *table, unsigned int *nstars) {870 Stars *Convert_PS1_V5_R0_Lensing (FTable *table, unsigned int *nstars) { 863 871 864 872 off_t Nstars; … … 866 874 double ZeroPt; 867 875 Stars *stars; 868 CMF_PS1_V5_ Lensing *ps1data;869 870 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); 871 879 if (!ps1data) { 872 880 fprintf (stderr, "skipping inconsistent entry\n"); … … 985 993 } 986 994 987 Stars *Convert_PS1_V5_ Lensing_Alt(FTable *table, unsigned int *nstars) {995 Stars *Convert_PS1_V5_R1_Lensing (FTable *table, unsigned int *nstars) { 988 996 989 997 off_t Nstars; … … 991 999 double ZeroPt; 992 1000 Stars *stars; 993 CMF_PS1_V5_ Lensing_Alt*ps1data;994 995 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); 996 1004 if (!ps1data) { 997 1005 fprintf (stderr, "skipping inconsistent entry\n"); … … 1110 1118 } 1111 1119 1112 Stars *Convert_PS1_ SV1(FTable *table, unsigned int *nstars) {1120 Stars *Convert_PS1_V5_R2_Lensing (FTable *table, unsigned int *nstars) { 1113 1121 1114 1122 off_t Nstars; … … 1116 1124 double ZeroPt; 1117 1125 Stars *stars; 1118 CMF_PS1_SV1 *ps1data; 1119 1120 if (table[0].header[0].Naxis[0] == 196) { 1121 stars = Convert_PS1_SV1_Alt (table, nstars); 1122 return (stars); 1123 } 1124 1125 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); 1126 1129 if (!ps1data) { 1127 1130 fprintf (stderr, "skipping inconsistent entry\n"); … … 1149 1152 stars[i].measure.dMcal = ps1data[i].dMcal; 1150 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->E1_psf = ps1data[i].E1_psf; 1220 stars[i].lensing->E2_psf = ps1data[i].E2_psf; 1221 1222 // stars[i].lensing->F_ApR5 = ps1data[i].F_ApR5; 1223 // stars[i].lensing->dF_ApR5 = ps1data[i].dF_ApR5; 1224 // stars[i].lensing->sF_ApR5 = ps1data[i].sF_ApR5; 1225 // stars[i].lensing->fF_ApR5 = ps1data[i].fF_ApR5; 1226 // 1227 // stars[i].lensing->F_ApR6 = ps1data[i].F_ApR6; 1228 // stars[i].lensing->dF_ApR6 = ps1data[i].dF_ApR6; 1229 // stars[i].lensing->sF_ApR6 = ps1data[i].sF_ApR6; 1230 // stars[i].lensing->fF_ApR6 = ps1data[i].fF_ApR6; 1231 1232 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 1233 stars[i].lensing->detID = ps1data[i].detID; 1234 1235 // the Average fields and the following Measure fields are set in FilterStars after 1236 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 1237 1238 // averef is set in find_matches 1239 1240 // dbFlags is zero on ingest. 1241 1242 // the following fields are currently not being set anywhere: t_msec 1243 } 1244 *nstars = Nstars; 1245 return (stars); 1246 } 1247 1248 Stars *Convert_PS1_SV1 (FTable *table, unsigned int *nstars) { 1249 1250 off_t Nstars; 1251 unsigned int i; 1252 double ZeroPt; 1253 Stars *stars; 1254 CMF_PS1_SV1 *ps1data; 1255 1256 if (table[0].header[0].Naxis[0] == 196) { 1257 stars = Convert_PS1_SV1_Alt (table, nstars); 1258 return (stars); 1259 } 1260 1261 ps1data = gfits_table_get_CMF_PS1_SV1 (table, &Nstars, NULL); 1262 if (!ps1data) { 1263 fprintf (stderr, "skipping inconsistent entry\n"); 1264 return (NULL); 1265 } 1266 ZeroPt = GetZeroPoint(); 1267 1268 ALLOCATE (stars, Stars, Nstars); 1269 for (i = 0; i < Nstars; i++) { 1270 InitStar (&stars[i]); 1271 stars[i].measure.Xccd = ps1data[i].X; 1272 stars[i].measure.Yccd = ps1data[i].Y; 1273 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 1274 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 1275 1276 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 1277 stars[i].measure.pltscale = ps1data[i].pltscale; 1278 1279 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 1280 stars[i].measure.M = NAN; 1281 } else { 1282 stars[i].measure.M = ps1data[i].M + ZeroPt; 1283 } 1284 stars[i].measure.dM = ps1data[i].dM; 1285 stars[i].measure.dMcal = ps1data[i].dMcal; 1286 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 1151 1287 stars[i].measure.dMap = ps1data[i].dM; // a proxy measure 1152 1288 … … 1695 1831 } 1696 1832 1697 1698 1833 Stars *Convert_PS1_DV5 (FTable *table, unsigned int *nstars) { 1834 1835 off_t Nstars; 1836 unsigned int i; 1837 double ZeroPt; 1838 Stars *stars; 1839 CMF_PS1_DV5 *ps1data; 1840 1841 ps1data = gfits_table_get_CMF_PS1_DV5 (table, &Nstars, NULL); 1842 if (!ps1data) { 1843 fprintf (stderr, "skipping inconsistent entry\n"); 1844 return (NULL); 1845 } 1846 ZeroPt = GetZeroPoint(); 1847 1848 ALLOCATE (stars, Stars, Nstars); 1849 for (i = 0; i < Nstars; i++) { 1850 InitStar (&stars[i]); 1851 stars[i].measure.Xccd = ps1data[i].X; 1852 stars[i].measure.Yccd = ps1data[i].Y; 1853 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 1854 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 1855 1856 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 1857 stars[i].measure.pltscale = ps1data[i].pltscale; 1858 1859 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 1860 stars[i].measure.M = NAN; 1861 } else { 1862 stars[i].measure.M = ps1data[i].M + ZeroPt; 1863 } 1864 stars[i].measure.dM = ps1data[i].dM; 1865 stars[i].measure.dMcal = ps1data[i].dMcal; 1866 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 1867 stars[i].measure.dMap = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN; 1868 1869 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 1870 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 1871 1872 // these fluxes are converted from counts to counts/sec in FilterStars.c 1873 stars[i].measure.FluxPSF = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M); 1874 stars[i].measure.dFluxPSF = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM); 1875 stars[i].measure.FluxKron = ps1data[i].kronFlux; 1876 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 1877 stars[i].measure.FluxAp = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map); 1878 stars[i].measure.dFluxAp = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap); 1879 1880 stars[i].measure.Sky = ps1data[i].sky; 1881 stars[i].measure.dSky = ps1data[i].dSky; 1882 1883 stars[i].measure.psfChisq = ps1data[i].psfChisq; 1884 stars[i].measure.psfQF = ps1data[i].psfQF; 1885 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 1886 stars[i].measure.psfNdof = ps1data[i].psfNdof; 1887 stars[i].measure.psfNpix = ps1data[i].psfNpix; 1888 stars[i].measure.extNsigma = ps1data[i].extNsigma; 1889 1890 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 1891 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 1892 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 1893 1894 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 1895 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 1896 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 1897 1898 stars[i].measure.photFlags = ps1data[i].flags; 1899 stars[i].measure.photFlags2 = ps1data[i].flags2; 1900 1901 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 1902 stars[i].measure.detID = ps1data[i].detID; 1903 1904 // the Average fields and the following Measure fields are set in FilterStars after 1905 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 1906 1907 // averef is set in find_matches 1908 1909 // dbFlags is zero on ingest. 1910 1911 // the following fields are currently not being set anywhere: t_msec 1912 } 1913 *nstars = Nstars; 1914 return (stars); 1915 } 1916 1917 1918
Note:
See TracChangeset
for help on using the changeset viewer.
