IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 25620


Ignore:
Timestamp:
Sep 27, 2009, 11:19:22 AM (17 years ago)
Author:
eugene
Message:

various improvements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/20090715/psphot/src/psphotVisual.c

    r25527 r25620  
    982982            if (Xo == 0) {
    983983                // place source alone on this row
    984                 psphotAddWithTest (source, true, maskVal); // replace source if subtracted
     984                bool subtracted = (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
     985                if (subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    985986                psphotMosaicSubimage (outpos, source, Xo, Yo, DX, DY, true);
    986987
    987                 psphotSubWithTest (source, false, maskVal); // remove source (force)
     988                pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
    988989                psphotMosaicSubimage (outsub, source, Xo, Yo, DX, DY, true);
    989                 psphotSetState (source, false, maskVal); // reset source Add/Sub state to recorded
     990
     991                if (!subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    990992
    991993                Yo += DY;
     
    997999                Xo = 0;
    9981000
    999                 psphotAddWithTest (source, true, maskVal); // replace source if subtracted
     1001                bool subtracted = (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
     1002                if (subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    10001003                psphotMosaicSubimage (outpos, source, Xo, Yo, DX, DY, true);
    10011004
    1002                 psphotSubWithTest (source, false, maskVal); // remove source (force)
     1005                pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
    10031006                psphotMosaicSubimage (outsub, source, Xo, Yo, DX, DY, true);
    1004                 psphotSetState (source, false, maskVal); // replace source (has been subtracted)
     1007
     1008                if (!subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    10051009
    10061010                Xo = DX;
     
    10091013        } else {
    10101014            // extend this row
    1011             psphotAddWithTest (source, true, maskVal); // replace source if subtracted
     1015            bool subtracted = (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
     1016            if (subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    10121017            psphotMosaicSubimage (outpos, source, Xo, Yo, DX, DY, true);
    10131018
    1014             psphotSubWithTest (source, false, maskVal); // remove source (force)
     1019            pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
    10151020            psphotMosaicSubimage (outsub, source, Xo, Yo, DX, DY, true);
    1016             psphotSetState (source, false, maskVal); // replace source (has been subtracted)
     1021            if (!subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    10171022
    10181023            Xo += DX;
     
    11321137            if (Xo == 0) {
    11331138                // place source alone on this row
    1134                 psphotAddWithTest (source, true, maskVal); // replace source if subtracted
     1139                bool subtracted = (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
     1140                if (subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    11351141                psphotMosaicSubimage (outsat, source, Xo, Yo, DX, DY, false);
    1136                 psphotSetState (source, true, maskVal); // reset source Add/Sub state to recorded
     1142                if (subtracted) pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
    11371143
    11381144                Yo += DY;
     
    11431149                Yo += dY;
    11441150                Xo = 0;
    1145                 psphotAddWithTest (source, true, maskVal); // replace source if subtracted
     1151
     1152                bool subtracted = (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
     1153                if (subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    11461154                psphotMosaicSubimage (outsat, source, Xo, Yo, DX, DY, false);
    1147                 psphotSetState (source, true, maskVal); // replace source (has been subtracted)
     1155                if (subtracted) pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
    11481156
    11491157                Xo = DX;
     
    11521160        } else {
    11531161            // extend this row
    1154             psphotAddWithTest (source, true, maskVal); // replace source if subtracted
     1162            bool subtracted = (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
     1163            if (subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    11551164            psphotMosaicSubimage (outsat, source, Xo, Yo, DX, DY, false);
    1156             psphotSetState (source, true, maskVal); // replace source (has been subtracted)
     1165            if (subtracted) pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
    11571166
    11581167            Xo += DX;
     
    11791188    Graphdata graphdata;
    11801189
    1181     bool state = !(source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
    1182     psphotAddWithTest (source, true, maskVal); // replace source if subtracted
     1190    bool subtracted = (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED);
     1191    if (subtracted) pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
    11831192
    11841193    int nPts = source->pixels->numRows * source->pixels->numCols;
     
    12131222
    12141223    // reset source Add/Sub state to recorded
    1215     psphotSetState (source, state, maskVal);
     1224    if (subtracted) pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
    12161225
    12171226    KapaInitGraph (&graphdata);
     
    20172026}
    20182027
    2019 bool psphotVisualPlotApResid (psArray *sources) {
     2028bool psphotVisualPlotApResid (psArray *sources, float mean, float error) {
    20202029
    20212030    Graphdata graphdata;
    2022 
    2023     if (!pmVisualIsVisual()) return true;
     2031    float lineX[2], lineY[2];
     2032
     2033    // if (!pmVisualIsVisual()) return true;
    20242034
    20252035    int myKapa = psphotKapaChannel (2);
     
    20312041    psVector *x = psVectorAllocEmpty (sources->n, PS_TYPE_F32);
    20322042    psVector *y = psVectorAllocEmpty (sources->n, PS_TYPE_F32);
     2043    psVector *dy = psVectorAllocEmpty (sources->n, PS_TYPE_F32);
    20332044
    20342045    graphdata.xmin = +32.0;
     
    20482059        x->data.F32[n] = source->psfMag;
    20492060        y->data.F32[n] = source->apMag - source->psfMag;
     2061        dy->data.F32[n] = source->errMag;
    20502062        graphdata.xmin = PS_MIN(graphdata.xmin, x->data.F32[n]);
    20512063        graphdata.xmax = PS_MAX(graphdata.xmax, x->data.F32[n]);
     
    20552067        n++;
    20562068    }
    2057     x->n = y->n = n;
     2069    x->n = y->n = dy->n = n;
    20582070
    20592071    float range;
     
    20652077    graphdata.ymin -= 0.05*range;
    20662078
    2067     // XXX set the plot range to match the image
     2079    // XXX test
     2080    graphdata.xmin = -17.0;
     2081    graphdata.xmax =  -9.0;
     2082    graphdata.ymin = -0.31;
     2083    graphdata.ymax = +0.31;
     2084
    20682085    KapaSetLimits (myKapa, &graphdata);
    20692086
     
    20772094    graphdata.size = 0.5;
    20782095    graphdata.style = 2;
     2096    graphdata.etype |= 0x01;
    20792097    KapaPrepPlot (myKapa, n, &graphdata);
    20802098    KapaPlotVector (myKapa, n, x->data.F32, "x");
    20812099    KapaPlotVector (myKapa, n, y->data.F32, "y");
     2100    KapaPlotVector (myKapa, n, dy->data.F32, "dym");
     2101    KapaPlotVector (myKapa, n, dy->data.F32, "dyp");
     2102
     2103    graphdata.color = KapaColorByName ("blue");
     2104    graphdata.ptype = 0;
     2105    graphdata.size = 0.5;
     2106    graphdata.style = 0;
     2107    graphdata.etype = 0;
     2108    lineX[0] = graphdata.xmin;
     2109    lineX[1] = graphdata.xmax;
     2110    lineY[0] = lineY[1] = mean;
     2111    KapaPrepPlot (myKapa, 2, &graphdata);
     2112    KapaPlotVector (myKapa, 2, lineX, "x");
     2113    KapaPlotVector (myKapa, 2, lineY, "y");
     2114
     2115    graphdata.color = KapaColorByName ("red");
     2116    graphdata.ptype = 0;
     2117    graphdata.size = 0.5;
     2118    graphdata.style = 0;
     2119    graphdata.etype = 0;
     2120    lineX[0] = graphdata.xmin;
     2121    lineX[1] = graphdata.xmax;
     2122    lineY[0] = lineY[1] = mean + error;
     2123    KapaPrepPlot (myKapa, 2, &graphdata);
     2124    KapaPlotVector (myKapa, 2, lineX, "x");
     2125    KapaPlotVector (myKapa, 2, lineY, "y");
     2126
     2127    graphdata.color = KapaColorByName ("red");
     2128    graphdata.ptype = 0;
     2129    graphdata.size = 0.5;
     2130    graphdata.style = 0;
     2131    graphdata.etype = 0;
     2132    lineX[0] = graphdata.xmin;
     2133    lineX[1] = graphdata.xmax;
     2134    lineY[0] = lineY[1] = mean - error;
     2135    KapaPrepPlot (myKapa, 2, &graphdata);
     2136    KapaPlotVector (myKapa, 2, lineX, "x");
     2137    KapaPlotVector (myKapa, 2, lineY, "y");
    20822138
    20832139    psFree (x);
    20842140    psFree (y);
     2141    psFree (dy);
    20852142
    20862143    // pause and wait for user input:
Note: See TracChangeset for help on using the changeset viewer.