IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 33643


Ignore:
Timestamp:
Mar 30, 2012, 3:01:51 PM (14 years ago)
Author:
eugene
Message:

updates related to zero points from new reference catalogs & w-band mags

Location:
trunk/psastro/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psastro/src/psastroLoadRefstars.c

    r33028 r33643  
    180180    }
    181181
     182    // apply a color correction
     183    {
     184        // from Tonry
     185        // (w-r)_obs = 0.042 + 0.166 (r-i)_obs - 0.398 (r-i)_obs^2,  (r-i)_obs < 0.5
     186        // (w-r)_obs = 0.268 - 0.435 (r-i)_obs - 0.078 (r-i)_obs^2,  (r-i)_obs > 0.5
     187        // thus, for (r-i < 0.5):
     188        // (r - i < 0.5) : w = r + 0.042 + 0.166*(r-i) - 0.398(r-i)^2
     189        // (r - i > 0.5) : w = r + 0.268 - 0.435 (r-i) - 0.078(r-i)^2
     190
     191        // apply a color correction
     192        // XXX this is very GPC1 specific and hard-wired -- be very afraid!
     193        // select the filter; default to fixed photcode and mag limit otherwise
     194        pmFPAfile *input = psMetadataLookupPtr (NULL, config->files, source); // we've already done this before
     195        char *filter = psMetadataLookupStr (&status, input->fpa->concepts, "FPA.FILTERID");
     196        if (!strcmp(filter, "w")) {
     197            for (int i = 0; i < refstars->n; i++) {
     198                pmAstromObj *ref = refstars->data[i];
     199                float r = ref->Mag;
     200                float ri = ref->Color;
     201                // saturate at some valid range limits
     202                ri = PS_MAX (PS_MIN(ri, 2.0), -0.2);
     203                float w = NAN;
     204                if (ri < 0.5) {
     205                    w = r + 0.042 + 0.166*(ri) - 0.398*PS_SQR(ri);
     206                } else {
     207                    w = r + 0.268 - 0.435*(ri) - 0.078*PS_SQR(ri);
     208                }
     209                ref->Mag = w;
     210            }
     211        }
     212    }
     213
    182214    psLogMsg ("psastro", 3, "loaded %ld reference stars : %f sec\n", refstars->n, psTimerMark ("psastro"));
    183215
  • trunk/psastro/src/psastroZeroPoint.c

    r27034 r33643  
    189189      pmAstromObj *ref = refstars->data[match->ref];
    190190
     191      // XXX I should be applying the airmass term here or in psastroLoadRefstars
     192      // (ie, ref->Mag would be a prediction for a given star.
    191193      float value = ref->Mag - raw->Mag - 2.5*log10(exptime);
    192194      psVectorAppend (dMag, value);
     
    214216
    215217    psStats *stats = NULL;
     218    float zeroPtObs, zeroPtErr;
    216219    if (useMean) {
    217220        // stats structure and mask for use in measuring the clipping statistic
    218221        // this analysis has too few data points to use the robust median method
    219         stats = psStatsAlloc (PS_STAT_CLIPPED_MEAN | PS_STAT_CLIPPED_STDEV);
     222        stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV);
    220223        if (!psVectorStats (stats, dMag, NULL, NULL, 0)) {
    221224            psError(PS_ERR_UNKNOWN, false, "failure to measure zero point by mean");
    222225            return false;
    223226        }
     227        zeroPtObs = stats->robustMedian;
     228        zeroPtErr = stats->robustStdev;
    224229    } else {
    225230        stats = psastroStatsPercentile (dMag, recipe);
     
    228233            return false;
    229234        }
    230     }
    231     fprintf (stderr, "zero point %f +/- %f using %ld stars; transparency %f\n", stats->clippedMean, stats->clippedStdev, dMag->n, zeropt - stats->clippedMean);
    232 
    233     psMetadataAddF32 (header, PS_LIST_TAIL, "ZPT_OBS", PS_META_REPLACE, "measured zero point", stats->clippedMean);
     235        zeroPtObs = stats->clippedMean;
     236        zeroPtErr = stats->clippedStdev;
     237    }
     238    fprintf (stderr, "zero point %f +/- %f using %ld stars; transparency %f\n", zeroPtObs, zeroPtErr, dMag->n, zeropt - zeroPtObs);
     239
     240    psMetadataAddF32 (header, PS_LIST_TAIL, "ZPT_OBS", PS_META_REPLACE, "measured zero point", zeroPtObs);
    234241    psMetadataAddF32 (header, PS_LIST_TAIL, "ZPT_REF", PS_META_REPLACE, "reference zero point", zeropt);
    235     psMetadataAddF32 (header, PS_LIST_TAIL, "ZPT_ERR", PS_META_REPLACE, "error on zero point",  stats->clippedStdev);
    236     psMetadataAddF32 (header, PS_LIST_TAIL, "ZPT_OFF", PS_META_REPLACE, "zero point offset",    zeropt - stats->clippedMean);
     242    psMetadataAddF32 (header, PS_LIST_TAIL, "ZPT_ERR", PS_META_REPLACE, "error on zero point",  zeroPtErr);
     243    psMetadataAddF32 (header, PS_LIST_TAIL, "ZPT_OFF", PS_META_REPLACE, "zero point offset",    zeropt - zeroPtObs);
    237244
    238245    psFree (stats);
Note: See TracChangeset for help on using the changeset viewer.