IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36977


Ignore:
Timestamp:
Jul 7, 2014, 10:59:59 AM (12 years ago)
Author:
eugene
Message:

set dMap based on either dM psf or apFlux, apFluxErr if provided; set flux for PSF and AP from flux if available or from mag if necessary

Location:
branches/eam_branches/ipp-20140610/Ohana/src/addstar/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20140610/Ohana/src/addstar/src/ReadStarsFITS.c

    r36934 r36977  
    110110}
    111111
     112float GetFluxFromFluxOrMag (float flux, float mag) {
     113
     114  if (isnan(mag) && isnan(flux)) return NAN;
     115
     116  if (isnan(flux)) return pow(10.0,-0.4*mag);
     117  return flux;
     118}
     119
     120float GetFluxErrFromFluxOrMag (float dFlux, float flux, float dMag) {
     121
     122  if (isnan(dMag) && isnan(dFlux)) return NAN;
     123  if (isnan(dFlux) && isnan(flux)) return NAN;
     124
     125  if (isnan(dFlux)) return (fabs(dMag * flux));
     126  return dFlux;
     127}
     128
    112129Stars *Convert_SMPDATA (FTable *table, unsigned int *nstars) {
    113130
     
    377394    stars[i].measure.dMcal      = ps1data[i].dMcal;
    378395    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     396    stars[i].measure.dMap       = ps1data[i].dM; // a proxy measure
    379397                       
    380398    stars[i].measure.Mkron      = NAN; // not provided by PS1_V1:
     
    462480    stars[i].measure.dMcal      = ps1data[i].dMcal;
    463481    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     482    stars[i].measure.dMap       = ps1data[i].dM; // a proxy measure
    464483                       
    465484    stars[i].measure.Mkron      = NAN; // not provided by PS1_V1_Alt:
     
    539558    stars[i].measure.dMcal      = ps1data[i].dMcal;
    540559    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     560    stars[i].measure.dMap       = ps1data[i].dM; // a proxy measure
    541561                       
    542562    stars[i].measure.Mkron      = NAN; // not provided by PS1_V2:
     
    612632    stars[i].measure.dMcal      = ps1data[i].dMcal;
    613633    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     634    stars[i].measure.dMap       = ps1data[i].dM; // a proxy measure
    614635                       
    615636    stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     
    617638                       
    618639    // these fluxes are converted from counts to counts/sec in FilterStars.c
    619     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    620     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     640    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     641    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    621642    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    622643    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
     644    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (NAN, ps1data[i].Map);
     645    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (NAN, stars[i].measure.FluxAp, stars[i].measure.dMap);
    623646
    624647    stars[i].measure.Sky        = ps1data[i].sky;
     
    693716    stars[i].measure.dMcal      = ps1data[i].dMcal;
    694717    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     718    stars[i].measure.dMap       = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN;
    695719                       
    696720    stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     
    698722                       
    699723    // these fluxes are converted from counts to counts/sec in FilterStars.c
    700     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    701     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     724    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     725    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    702726    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    703727    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
     728    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map);
     729    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap);
    704730
    705731    stars[i].measure.Sky        = ps1data[i].sky;
     
    780806    stars[i].measure.dMkron     = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN;
    781807                       
    782     // instrumental fluxes: these fluxes are converted from counts to counts/sec in
    783     // FilterStars.c
    784     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    785     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     808    // these fluxes are converted from counts to counts/sec in FilterStars.c
     809    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     810    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    786811    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    787812    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
    788     stars[i].measure.FluxAp     = ps1data[i].apFlux;
    789     stars[i].measure.dFluxAp    = ps1data[i].apFluxErr;
     813    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map);
     814    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap);
    790815
    791816    stars[i].measure.Sky        = ps1data[i].sky;
     
    866891    stars[i].measure.dMkron     = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN;
    867892                       
    868     // instrumental fluxes: these fluxes are converted from counts to counts/sec in
    869     // FilterStars.c
    870     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    871     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     893    // these fluxes are converted from counts to counts/sec in FilterStars.c
     894    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     895    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    872896    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    873897    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
    874     stars[i].measure.FluxAp     = ps1data[i].apFlux;
    875     stars[i].measure.dFluxAp    = ps1data[i].apFluxErr;
     898    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map);
     899    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap);
    876900
    877901    stars[i].measure.Sky        = ps1data[i].sky;
     
    9921016    stars[i].measure.dMcal      = ps1data[i].dMcal;
    9931017    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     1018    stars[i].measure.dMap       = ps1data[i].dM; // a proxy measure
    9941019                       
    9951020    stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     
    9971022
    9981023    // these fluxes are converted from counts to counts/sec in FilterStars.c
    999     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    1000     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     1024    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     1025    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    10011026    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    10021027    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
     1028    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (NAN, ps1data[i].Map);
     1029    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (NAN, stars[i].measure.FluxAp, stars[i].measure.dMap);
    10031030
    10041031    stars[i].measure.Sky        = ps1data[i].sky;
     
    10731100    stars[i].measure.dMcal      = ps1data[i].dMcal;
    10741101    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     1102    stars[i].measure.dMap       = ps1data[i].dM; // a proxy measure
    10751103                       
    10761104    stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     
    10781106
    10791107    // these fluxes are converted from counts to counts/sec in FilterStars.c
    1080     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    1081     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     1108    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     1109    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    10821110    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    10831111    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
     1112    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (NAN, ps1data[i].Map);
     1113    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (NAN, stars[i].measure.FluxAp, stars[i].measure.dMap);
    10841114
    10851115    stars[i].measure.Sky        = ps1data[i].sky;
     
    11501180    stars[i].measure.dMcal      = ps1data[i].dMcal;
    11511181    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     1182    stars[i].measure.dMap       = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN;
    11521183                       
    11531184    stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     
    11551186
    11561187    // these fluxes are converted from counts to counts/sec in FilterStars.c
    1157     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    1158     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     1188    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     1189    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    11591190    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    11601191    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
     1192    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map);
     1193    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap);
    11611194
    11621195    stars[i].measure.Sky        = ps1data[i].sky;
     
    12351268
    12361269    // these fluxes are converted from counts to counts/sec in FilterStars.c
    1237     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    1238     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     1270    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     1271    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    12391272    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    12401273    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
    1241     stars[i].measure.FluxAp     = ps1data[i].apFlux;
    1242     stars[i].measure.dFluxAp    = ps1data[i].apFluxErr;
     1274    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map);
     1275    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap);
    12431276
    12441277    stars[i].measure.Sky        = ps1data[i].sky;
     
    13111344    stars[i].measure.dMcal      = ps1data[i].dMcal;
    13121345    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     1346    stars[i].measure.dMap       = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN;
    13131347                       
    13141348    stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     
    13161350                       
    13171351    // these fluxes are converted from counts to counts/sec in FilterStars.c
    1318     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    1319     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     1352    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     1353    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    13201354    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    13211355    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
     1356    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map);
     1357    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap);
    13221358
    13231359    stars[i].measure.Sky        = ps1data[i].sky;
     
    13941430    stars[i].measure.dMcal      = ps1data[i].dMcal;
    13951431    stars[i].measure.Map        = ps1data[i].Map + ZeroPt;
     1432    stars[i].measure.dMap       = (ps1data[i].apFlux > 0.0) ? fabs(ps1data[i].apFluxErr / ps1data[i].apFlux) : NAN;
    13961433                       
    13971434    stars[i].measure.Mkron      = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN;
     
    13991436                       
    14001437    // these fluxes are converted from counts to counts/sec in FilterStars.c
    1401     stars[i].measure.FluxPSF    = ps1data[i].Flux;
    1402     stars[i].measure.dFluxPSF   = ps1data[i].dFlux;
     1438    stars[i].measure.FluxPSF    = GetFluxFromFluxOrMag (ps1data[i].Flux, ps1data[i].M);
     1439    stars[i].measure.dFluxPSF   = GetFluxErrFromFluxOrMag (ps1data[i].dFlux, stars[i].measure.FluxPSF, ps1data[i].dM);
    14031440    stars[i].measure.FluxKron   = ps1data[i].kronFlux;
    14041441    stars[i].measure.dFluxKron  = ps1data[i].kronFluxErr;
     1442    stars[i].measure.FluxAp     = GetFluxFromFluxOrMag (ps1data[i].apFlux, ps1data[i].Map);
     1443    stars[i].measure.dFluxAp    = GetFluxErrFromFluxOrMag (ps1data[i].apFluxErr, stars[i].measure.FluxAp, stars[i].measure.dMap);
    14051444
    14061445    stars[i].measure.Sky        = ps1data[i].sky;
  • branches/eam_branches/ipp-20140610/Ohana/src/addstar/src/fakeimage.c

    r36485 r36977  
    66  double pltscale, pixscale;
    77  double Rmin, Rmax, Dmin, Dmax;
    8   // double Xmin, Xmax, Ymin, Ymax;
    98  double dX, dY, r, d;
    109  char chipname[80], chipdata[256], name[80];
     
    168167  image[0].cerror = 0.0;
    169168   
    170   // RD_to_XY (&Xmax, &Ymax, Rmax, Dmax, MOSAIC);
    171   // RD_to_XY (&Xmin, &Ymin, Rmin, Dmin, MOSAIC);
    172169  image[0].NX = Rmax - Rmin;
    173170  image[0].NY = Dmax - Dmin;
Note: See TracChangeset for help on using the changeset viewer.