IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 25986


Ignore:
Timestamp:
Nov 1, 2009, 4:00:09 PM (17 years ago)
Author:
eugene
Message:

add psphotVisualPlotChisq

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphotVisual.c

    r25852 r25986  
    106106}
    107107
    108 bool psphotVisualScaleImage (int kapaFD, psImage *inImage, const char *name, int channel) {
     108bool psphotVisualScaleImage (int kapaFD, psImage *inImage, psImage *inMask, const char *name, int channel) {
    109109
    110110    KiiImage image;
     
    116116    psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV);
    117117    psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS);
    118     if (!psImageBackground(stats, NULL, inImage, NULL, 0, rng)) {
     118    if (!psImageBackground(stats, NULL, inImage, inMask, 0xffff, rng)) {
    119119        fprintf (stderr, "failed to get background values\n");
    120120        return false;
     
    172172
    173173    // psphotVisualShowMask (kapa, readout->mask, "mask", 2);
    174     psphotVisualScaleImage (kapa, readout->variance, "variance", 1);
    175     psphotVisualScaleImage (kapa, readout->image, "image", 0);
     174    psphotVisualScaleImage (kapa, readout->variance, readout->mask, "variance", 1);
     175    psphotVisualScaleImage (kapa, readout->image, readout->mask, "image", 0);
    176176
    177177    pmVisualAskUser(NULL);
     
    197197    }
    198198
    199     psphotVisualScaleImage (kapa, backgnd->image, "backgnd", 2);
    200     psphotVisualScaleImage (kapa, readout->image, "backsub", 0);
     199    psphotVisualScaleImage (kapa, backgnd->image, readout->mask, "backgnd", 2);
     200    psphotVisualScaleImage (kapa, readout->image, readout->mask, "backsub", 0);
    201201
    202202    pmVisualAskUser(NULL);
     
    495495    Ymin = PS_MAX(Ymin, -0.1);
    496496
     497    // XXX test: hardwire plot limits
     498    // Xmin = -0.1; Ymin = -0.1;
     499    // Xmax = 20.1; Ymax = 20.1;
     500
    497501    // storage vectors for data to be plotted
    498502    psVector *xBright = psVectorAllocEmpty (sources->n, PS_TYPE_F32);
     
    654658
    655659        int nRegions = psMetadataLookupS32 (&status, analysis, "PSF.CLUMP.NREGIONS");
    656         float PSF_CLUMP_NSIGMA = psMetadataLookupF32 (&status, analysis, "PSF_CLUMP_NSIGMA");
     660        float PSF_CLUMP_NSIGMA = psMetadataLookupF32 (&status, recipe, "PSF_CLUMP_NSIGMA");
    657661
    658662        graphdata.color = KapaColorByName ("blue");
     
    11071111    }
    11081112
    1109     psphotVisualScaleImage (myKapa, outsat, "satstar", 2);
     1113    psphotVisualScaleImage (myKapa, outsat, NULL, "satstar", 2);
    11101114
    11111115    pmVisualAskUser(NULL);
     
    18621866
    18631867        int nRegions = psMetadataLookupS32 (&status, analysis, "PSF.CLUMP.NREGIONS");
    1864         float PSF_CLUMP_NSIGMA = psMetadataLookupF32 (&status, analysis, "PSF_CLUMP_NSIGMA");
     1868        float PSF_CLUMP_NSIGMA = psMetadataLookupF32 (&status, recipe, "PSF_CLUMP_NSIGMA");
    18651869
    18661870        graphdata.color = KapaColorByName ("blue");
     
    19291933    if (myKapa == -1) return false;
    19301934
    1931     psphotVisualScaleImage (myKapa, readout->image, "resid", 1);
     1935    psphotVisualScaleImage (myKapa, readout->image, readout->mask, "resid", 1);
    19321936
    19331937    pmVisualAskUser(NULL);
     
    20492053    psFree (y);
    20502054    psFree (dy);
     2055
     2056    pmVisualAskUser(NULL);
     2057    return true;
     2058}
     2059
     2060bool psphotVisualPlotChisq (psArray *sources) {
     2061
     2062    Graphdata graphdata;
     2063
     2064    // XXX TEST if (!pmVisualIsVisual()) return true;
     2065
     2066    int myKapa = psphotKapaChannel (2);
     2067    if (myKapa == -1) return false;
     2068
     2069    KapaClearPlots (myKapa);
     2070    KapaInitGraph (&graphdata);
     2071
     2072    psVector *x = psVectorAllocEmpty (sources->n, PS_TYPE_F32);
     2073    psVector *y = psVectorAllocEmpty (sources->n, PS_TYPE_F32);
     2074
     2075    graphdata.xmin = +32.0;
     2076    graphdata.xmax = -32.0;
     2077    graphdata.ymin = +32.0;
     2078    graphdata.ymax = -32.0;
     2079
     2080    FILE *f = fopen ("chisq.dat", "w");
     2081
     2082    // construct the plot vectors
     2083    int n = 0;
     2084    for (int i = 0; i < sources->n; i++) {
     2085        pmSource *source = sources->data[i];
     2086        if (!source) continue;
     2087        if (source->type != PM_SOURCE_TYPE_STAR) continue;
     2088        if (!source->moments) continue;
     2089        if (!isfinite(source->moments->Sum)) continue;
     2090        if (!source->modelPSF) continue;
     2091        if (!isfinite(source->modelPSF->chisq)) continue;
     2092
     2093        x->data.F32[n] = -2.5*log10(source->moments->Sum);
     2094        y->data.F32[n] = source->modelPSF->chisq / source->modelPSF->nDOF;
     2095        graphdata.xmin = PS_MIN(graphdata.xmin, x->data.F32[n]);
     2096        graphdata.xmax = PS_MAX(graphdata.xmax, x->data.F32[n]);
     2097        graphdata.ymin = PS_MIN(graphdata.ymin, y->data.F32[n]);
     2098        graphdata.ymax = PS_MAX(graphdata.ymax, y->data.F32[n]);
     2099
     2100        fprintf (f, "%d %d %f %f\n", i, n, x->data.F32[n], y->data.F32[n]);
     2101
     2102        n++;
     2103    }
     2104    x->n = y->n = n;
     2105    fclose (f);
     2106
     2107    float range;
     2108    range = graphdata.xmax - graphdata.xmin;
     2109    graphdata.xmax += 0.05*range;
     2110    graphdata.xmin -= 0.05*range;
     2111    range = graphdata.ymax - graphdata.ymin;
     2112    graphdata.ymax += 0.05*range;
     2113    graphdata.ymin -= 0.05*range;
     2114
     2115    // XXX test
     2116    graphdata.xmin = -17.0;
     2117    graphdata.xmax =  -3.0;
     2118    graphdata.ymin =  -0.1;
     2119    graphdata.ymax = +10.1;
     2120
     2121    KapaSetLimits (myKapa, &graphdata);
     2122
     2123    KapaSetFont (myKapa, "helvetica", 14);
     2124    KapaBox (myKapa, &graphdata);
     2125    KapaSendLabel (myKapa, "PSF Mag", KAPA_LABEL_XM);
     2126    KapaSendLabel (myKapa, "ChiSq", KAPA_LABEL_YM);
     2127
     2128    graphdata.color = KapaColorByName ("black");
     2129    graphdata.ptype = 2;
     2130    graphdata.size = 0.5;
     2131    graphdata.style = 2;
     2132    KapaPrepPlot (myKapa, n, &graphdata);
     2133    KapaPlotVector (myKapa, n, x->data.F32, "x");
     2134    KapaPlotVector (myKapa, n, y->data.F32, "y");
     2135
     2136    psFree (x);
     2137    psFree (y);
    20512138
    20522139    pmVisualAskUser(NULL);
Note: See TracChangeset for help on using the changeset viewer.