IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 23, 2015, 8:13:04 AM (11 years ago)
Author:
eugene
Message:

adding lensing ps1_v5_r2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/addstar/src/ReadStarsFITS.c

    r37967 r37992  
    44// (excluding SDSS data and reference database info, such as 2MASS)
    55// 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));
     6Stars     *Convert_SMPDATA           PROTO((FTable *table, unsigned int *nstars));
     7Stars     *Convert_PS1_DEV_0         PROTO((FTable *table, unsigned int *nstars));
     8Stars     *Convert_PS1_DEV_1         PROTO((FTable *table, unsigned int *nstars));
     9Stars     *Convert_PS1_V1            PROTO((FTable *table, unsigned int *nstars));
     10Stars     *Convert_PS1_V1_Alt        PROTO((FTable *table, unsigned int *nstars));
     11Stars     *Convert_PS1_V2            PROTO((FTable *table, unsigned int *nstars));
     12Stars     *Convert_PS1_V3            PROTO((FTable *table, unsigned int *nstars));
     13Stars     *Convert_PS1_V4            PROTO((FTable *table, unsigned int *nstars));
     14Stars     *Convert_PS1_V5            PROTO((FTable *table, unsigned int *nstars));
     15Stars     *Convert_PS1_V5_R0_Lensing PROTO((FTable *table, unsigned int *nstars));
     16Stars     *Convert_PS1_V5_R1_Lensing PROTO((FTable *table, unsigned int *nstars));
     17Stars     *Convert_PS1_V5_R2_Lensing PROTO((FTable *table, unsigned int *nstars));
     18Stars     *Convert_PS1_SV1           PROTO((FTable *table, unsigned int *nstars));
     19Stars     *Convert_PS1_SV1_Alt       PROTO((FTable *table, unsigned int *nstars));
     20Stars     *Convert_PS1_SV2           PROTO((FTable *table, unsigned int *nstars));
     21Stars     *Convert_PS1_SV3           PROTO((FTable *table, unsigned int *nstars));
     22Stars     *Convert_PS1_SV4           PROTO((FTable *table, unsigned int *nstars));
     23Stars     *Convert_PS1_DV3           PROTO((FTable *table, unsigned int *nstars));
     24Stars     *Convert_PS1_DV4           PROTO((FTable *table, unsigned int *nstars));
     25Stars     *Convert_PS1_DV5           PROTO((FTable *table, unsigned int *nstars));
    2526
    2627// given a file with the pointer at the start of the table block and the
     
    8687        break;
    8788      case 312:
    88         stars = Convert_PS1_V5_Lensing_Alt (&table, &Nstars);
     89        stars = Convert_PS1_V5_R0_Lensing (&table, &Nstars);
    8990        break;
    9091      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);
    9296        break;
    9397      default:
     
    864868}
    865869
    866 Stars *Convert_PS1_V5_Lensing (FTable *table, unsigned int *nstars) {
     870Stars *Convert_PS1_V5_R0_Lensing (FTable *table, unsigned int *nstars) {
    867871
    868872  off_t Nstars;
     
    870874  double ZeroPt;
    871875  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);
    875879  if (!ps1data) {
    876880    fprintf (stderr, "skipping inconsistent entry\n");
     
    989993}
    990994
    991 Stars *Convert_PS1_V5_Lensing_Alt (FTable *table, unsigned int *nstars) {
     995Stars *Convert_PS1_V5_R1_Lensing (FTable *table, unsigned int *nstars) {
    992996
    993997  off_t Nstars;
     
    995999  double ZeroPt;
    9961000  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);
    10001004  if (!ps1data) {
    10011005    fprintf (stderr, "skipping inconsistent entry\n");
     
    11141118}
    11151119
    1116 Stars *Convert_PS1_SV1 (FTable *table, unsigned int *nstars) {
     1120Stars *Convert_PS1_V5_R2_Lensing (FTable *table, unsigned int *nstars) {
    11171121
    11181122  off_t Nstars;
     
    11201124  double ZeroPt;
    11211125  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);
    11301129  if (!ps1data) {
    11311130    fprintf (stderr, "skipping inconsistent entry\n");
     
    11531152    stars[i].measure.dMcal      = ps1data[i].dMcal;
    11541153    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
     1245Stars *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;
    11551284    stars[i].measure.dMap       = ps1data[i].dM; // a proxy measure
    11561285                       
Note: See TracChangeset for help on using the changeset viewer.