- Timestamp:
- Jan 11, 2015, 2:02:45 PM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140904/Ohana
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/addstar/src/ReadStarsFITS.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140904/Ohana
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20140904/Ohana/src/addstar/src/ReadStarsFITS.c
r37246 r37803 14 14 Stars *Convert_PS1_V5 PROTO((FTable *table, unsigned int *nstars)); 15 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)); 16 17 Stars *Convert_PS1_SV1 PROTO((FTable *table, unsigned int *nstars)); 17 18 Stars *Convert_PS1_SV1_Alt PROTO((FTable *table, unsigned int *nstars)); 18 19 Stars *Convert_PS1_SV2 PROTO((FTable *table, unsigned int *nstars)); 19 20 Stars *Convert_PS1_SV3 PROTO((FTable *table, unsigned int *nstars)); 21 Stars *Convert_PS1_SV4 PROTO((FTable *table, unsigned int *nstars)); 20 22 Stars *Convert_PS1_DV3 PROTO((FTable *table, unsigned int *nstars)); 21 23 Stars *Convert_PS1_DV4 PROTO((FTable *table, unsigned int *nstars)); … … 78 80 } 79 81 if (!strcmp (type, "PS1_V5")) { 80 if (table.header[0].Naxis[0] == 312) { 81 stars = Convert_PS1_V5_Lensing (&table, &Nstars); 82 } else { 83 stars = Convert_PS1_V5 (&table, &Nstars); 82 switch (table.header[0].Naxis[0]) { 83 case 232: 84 stars = Convert_PS1_V5 (&table, &Nstars); 85 break; 86 case 312: 87 stars = Convert_PS1_V5_Lensing_Alt (&table, &Nstars); 88 break; 89 case 320: 90 stars = Convert_PS1_V5_Lensing (&table, &Nstars); 91 break; 92 default: 93 fprintf (stderr, "invalid PS1_V5 table size %d\n", (int) table.header[0].Naxis[0]); 94 return NULL; 84 95 } 85 96 } … … 92 103 if (!strcmp (type, "PS1_SV3")) { 93 104 stars = Convert_PS1_SV3 (&table, &Nstars); 105 } 106 if (!strcmp (type, "PS1_SV4")) { 107 stars = Convert_PS1_SV4 (&table, &Nstars); 94 108 } 95 109 if (!strcmp (type, "PS1_DV3")) { … … 971 985 } 972 986 987 Stars *Convert_PS1_V5_Lensing_Alt (FTable *table, unsigned int *nstars) { 988 989 off_t Nstars; 990 unsigned int i; 991 double ZeroPt; 992 Stars *stars; 993 CMF_PS1_V5_Lensing_Alt *ps1data; 994 995 ps1data = gfits_table_get_CMF_PS1_V5_Lensing_Alt (table, &Nstars, NULL); 996 if (!ps1data) { 997 fprintf (stderr, "skipping inconsistent entry\n"); 998 return (NULL); 999 } 1000 ZeroPt = GetZeroPoint(); 1001 1002 ALLOCATE (stars, Stars, Nstars); 1003 for (i = 0; i < Nstars; i++) { 1004 InitStar (&stars[i]); 1005 stars[i].measure.Xccd = ps1data[i].X; 1006 stars[i].measure.Yccd = ps1data[i].Y; 1007 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 1008 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 1009 1010 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 1011 stars[i].measure.pltscale = ps1data[i].pltscale; 1012 1013 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 1014 stars[i].measure.M = NAN; 1015 } else { 1016 stars[i].measure.M = ps1data[i].M + ZeroPt; 1017 } 1018 stars[i].measure.dM = ps1data[i].dM; 1019 stars[i].measure.dMcal = ps1data[i].dMcal; 1020 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 1021 stars[i].measure.dMap = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN; 1022 1023 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 1024 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 1025 1026 // these fluxes are converted from counts to counts/sec in FilterStars.c 1027 stars[i].measure.FluxPSF = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M); 1028 stars[i].measure.dFluxPSF = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM); 1029 stars[i].measure.FluxKron = ps1data[i].kronFlux; 1030 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 1031 stars[i].measure.FluxAp = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map); 1032 stars[i].measure.dFluxAp = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap); 1033 1034 stars[i].measure.Sky = ps1data[i].sky; 1035 stars[i].measure.dSky = ps1data[i].dSky; 1036 1037 stars[i].measure.psfChisq = ps1data[i].psfChisq; 1038 stars[i].measure.psfQF = ps1data[i].psfQF; 1039 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 1040 1041 stars[i].measure.psfNdof = ps1data[i].psfNdof; 1042 stars[i].measure.psfNpix = ps1data[i].psfNpix; 1043 stars[i].measure.extNsigma = ps1data[i].extNsigma; 1044 1045 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 1046 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 1047 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 1048 1049 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 1050 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 1051 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 1052 1053 stars[i].measure.photFlags = ps1data[i].flags; 1054 stars[i].measure.photFlags2 = ps1data[i].flags2; 1055 1056 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 1057 stars[i].measure.detID = ps1data[i].detID; 1058 1059 ALLOCATE (stars[i].lensing, Lensing, 1); 1060 dvo_lensing_init (stars[i].lensing); 1061 1062 stars[i].lensing->X11_sm_obj = ps1data[i].X11_sm_obj; 1063 stars[i].lensing->X12_sm_obj = ps1data[i].X12_sm_obj; 1064 stars[i].lensing->X22_sm_obj = ps1data[i].X22_sm_obj; 1065 stars[i].lensing->E1_sm_obj = ps1data[i].E1_sm_obj; 1066 stars[i].lensing->E2_sm_obj = ps1data[i].E2_sm_obj; 1067 1068 stars[i].lensing->X11_sh_obj = ps1data[i].X11_sh_obj; 1069 stars[i].lensing->X12_sh_obj = ps1data[i].X12_sh_obj; 1070 stars[i].lensing->X22_sh_obj = ps1data[i].X22_sh_obj; 1071 stars[i].lensing->E1_sh_obj = ps1data[i].E1_sh_obj; 1072 stars[i].lensing->E2_sh_obj = ps1data[i].E2_sh_obj; 1073 1074 stars[i].lensing->X11_sm_psf = ps1data[i].X11_sm_psf; 1075 stars[i].lensing->X12_sm_psf = ps1data[i].X12_sm_psf; 1076 stars[i].lensing->X22_sm_psf = ps1data[i].X22_sm_psf; 1077 stars[i].lensing->E1_sm_psf = ps1data[i].E1_sm_psf; 1078 stars[i].lensing->E2_sm_psf = ps1data[i].E2_sm_psf; 1079 1080 stars[i].lensing->X11_sh_psf = ps1data[i].X11_sh_psf; 1081 stars[i].lensing->X12_sh_psf = ps1data[i].X12_sh_psf; 1082 stars[i].lensing->X22_sh_psf = ps1data[i].X22_sh_psf; 1083 stars[i].lensing->E1_sh_psf = ps1data[i].E1_sh_psf; 1084 stars[i].lensing->E2_sh_psf = ps1data[i].E2_sh_psf; 1085 1086 // stars[i].lensing->F_ApR5 = ps1data[i].F_ApR5; 1087 // stars[i].lensing->dF_ApR5 = ps1data[i].dF_ApR5; 1088 // stars[i].lensing->sF_ApR5 = ps1data[i].sF_ApR5; 1089 // stars[i].lensing->fF_ApR5 = ps1data[i].fF_ApR5; 1090 // 1091 // stars[i].lensing->F_ApR6 = ps1data[i].F_ApR6; 1092 // stars[i].lensing->dF_ApR6 = ps1data[i].dF_ApR6; 1093 // stars[i].lensing->sF_ApR6 = ps1data[i].sF_ApR6; 1094 // stars[i].lensing->fF_ApR6 = ps1data[i].fF_ApR6; 1095 1096 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 1097 stars[i].lensing->detID = ps1data[i].detID; 1098 1099 // the Average fields and the following Measure fields are set in FilterStars after 1100 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 1101 1102 // averef is set in find_matches 1103 1104 // dbFlags is zero on ingest. 1105 1106 // the following fields are currently not being set anywhere: t_msec 1107 } 1108 *nstars = Nstars; 1109 return (stars); 1110 } 1111 973 1112 Stars *Convert_PS1_SV1 (FTable *table, unsigned int *nstars) { 974 1113 … … 1304 1443 } 1305 1444 1306 Stars *Convert_PS1_ DV3(FTable *table, unsigned int *nstars) {1445 Stars *Convert_PS1_SV4 (FTable *table, unsigned int *nstars) { 1307 1446 1308 1447 off_t Nstars; … … 1310 1449 double ZeroPt; 1311 1450 Stars *stars; 1312 CMF_PS1_ DV3*ps1data;1313 1314 ps1data = gfits_table_get_CMF_PS1_ DV3(table, &Nstars, NULL);1451 CMF_PS1_SV4 *ps1data; 1452 1453 ps1data = gfits_table_get_CMF_PS1_SV4 (table, &Nstars, NULL); 1315 1454 if (!ps1data) { 1316 1455 fprintf (stderr, "skipping inconsistent entry\n"); … … 1342 1481 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 1343 1482 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 1344 1483 1345 1484 // these fluxes are converted from counts to counts/sec in FilterStars.c 1346 1485 stars[i].measure.FluxPSF = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M); … … 1357 1496 stars[i].measure.psfQF = ps1data[i].psfQF; 1358 1497 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 1498 1359 1499 stars[i].measure.psfNdof = ps1data[i].psfNdof; 1360 1500 stars[i].measure.psfNpix = ps1data[i].psfNpix; … … 1376 1516 1377 1517 // the Average fields and the following Measure fields are set in FilterStars after 1378 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 1379 1380 // averef is set in find_matches 1381 1382 // dbFlags is zero on ingest. 1518 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID, 1519 // averef is set in find_matches, dbFlags is zero on ingest. 1383 1520 1384 1521 // the following fields are currently not being set anywhere: t_msec … … 1388 1525 } 1389 1526 1390 Stars *Convert_PS1_DV 4(FTable *table, unsigned int *nstars) {1527 Stars *Convert_PS1_DV3 (FTable *table, unsigned int *nstars) { 1391 1528 1392 1529 off_t Nstars; … … 1394 1531 double ZeroPt; 1395 1532 Stars *stars; 1396 CMF_PS1_DV 4*ps1data;1397 1398 ps1data = gfits_table_get_CMF_PS1_DV 4(table, &Nstars, NULL);1533 CMF_PS1_DV3 *ps1data; 1534 1535 ps1data = gfits_table_get_CMF_PS1_DV3 (table, &Nstars, NULL); 1399 1536 if (!ps1data) { 1400 1537 fprintf (stderr, "skipping inconsistent entry\n"); … … 1402 1539 } 1403 1540 ZeroPt = GetZeroPoint(); 1404 1405 fprintf (stderr, "WARNING: Convert_PS1_DV4 not yet updated to match real format\n");1406 1541 1407 1542 ALLOCATE (stars, Stars, Nstars); … … 1474 1609 } 1475 1610 1476 1477 1611 Stars *Convert_PS1_DV4 (FTable *table, unsigned int *nstars) { 1612 1613 off_t Nstars; 1614 unsigned int i; 1615 double ZeroPt; 1616 Stars *stars; 1617 CMF_PS1_DV4 *ps1data; 1618 1619 ps1data = gfits_table_get_CMF_PS1_DV4 (table, &Nstars, NULL); 1620 if (!ps1data) { 1621 fprintf (stderr, "skipping inconsistent entry\n"); 1622 return (NULL); 1623 } 1624 ZeroPt = GetZeroPoint(); 1625 1626 fprintf (stderr, "WARNING: Convert_PS1_DV4 not yet updated to match real format\n"); 1627 1628 ALLOCATE (stars, Stars, Nstars); 1629 for (i = 0; i < Nstars; i++) { 1630 InitStar (&stars[i]); 1631 stars[i].measure.Xccd = ps1data[i].X; 1632 stars[i].measure.Yccd = ps1data[i].Y; 1633 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 1634 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 1635 1636 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 1637 stars[i].measure.pltscale = ps1data[i].pltscale; 1638 1639 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 1640 stars[i].measure.M = NAN; 1641 } else { 1642 stars[i].measure.M = ps1data[i].M + ZeroPt; 1643 } 1644 stars[i].measure.dM = ps1data[i].dM; 1645 stars[i].measure.dMcal = ps1data[i].dMcal; 1646 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 1647 stars[i].measure.dMap = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN; 1648 1649 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 1650 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 1651 1652 // these fluxes are converted from counts to counts/sec in FilterStars.c 1653 stars[i].measure.FluxPSF = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M); 1654 stars[i].measure.dFluxPSF = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM); 1655 stars[i].measure.FluxKron = ps1data[i].kronFlux; 1656 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 1657 stars[i].measure.FluxAp = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map); 1658 stars[i].measure.dFluxAp = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap); 1659 1660 stars[i].measure.Sky = ps1data[i].sky; 1661 stars[i].measure.dSky = ps1data[i].dSky; 1662 1663 stars[i].measure.psfChisq = ps1data[i].psfChisq; 1664 stars[i].measure.psfQF = ps1data[i].psfQF; 1665 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 1666 stars[i].measure.psfNdof = ps1data[i].psfNdof; 1667 stars[i].measure.psfNpix = ps1data[i].psfNpix; 1668 stars[i].measure.extNsigma = ps1data[i].extNsigma; 1669 1670 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 1671 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 1672 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 1673 1674 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 1675 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 1676 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 1677 1678 stars[i].measure.photFlags = ps1data[i].flags; 1679 stars[i].measure.photFlags2 = ps1data[i].flags2; 1680 1681 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 1682 stars[i].measure.detID = ps1data[i].detID; 1683 1684 // the Average fields and the following Measure fields are set in FilterStars after 1685 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 1686 1687 // averef is set in find_matches 1688 1689 // dbFlags is zero on ingest. 1690 1691 // the following fields are currently not being set anywhere: t_msec 1692 } 1693 *nstars = Nstars; 1694 return (stars); 1695 } 1696 1697 1698
Note:
See TracChangeset
for help on using the changeset viewer.
