IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 31, 2008, 10:31:29 AM (17 years ago)
Author:
eugene
Message:

conversion of psMaskType to psImageMaskType or psVectorMaskType as needed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20081230/psModules/src/objects/pmPSFtry.c

    r20937 r21075  
    55 *  @author EAM, IfA
    66 *
    7  *  @version $Revision: 1.67 $ $Name: not supported by cvs2svn $
    8  *  @date $Date: 2008-12-08 02:51:14 $
     7 *  @version $Revision: 1.67.4.1 $ $Name: not supported by cvs2svn $
     8 *  @date $Date: 2008-12-31 20:31:29 $
    99 *
    1010 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    115115    test->metricErr = psVectorAlloc (sources->n, PS_TYPE_F32);
    116116    test->fitMag    = psVectorAlloc (sources->n, PS_TYPE_F32);
    117     test->mask      = psVectorAlloc (sources->n, PS_TYPE_U8);
     117    test->mask      = psVectorAlloc (sources->n, PS_TYPE_VECTOR_MASK);
    118118
    119119    psVectorInit (test->mask,        0);
     
    148148
    149149// generate a pmPSFtry with a copy of the test PSF sources
    150 pmPSFtry *pmPSFtryModel (const psArray *sources, const char *modelName, pmPSFOptions *options, psMaskType maskVal, psMaskType markVal)
     150pmPSFtry *pmPSFtryModel (const psArray *sources, const char *modelName, pmPSFOptions *options, psImageMaskType maskVal, psImageMaskType markVal)
    151151{
    152152    bool status;
     
    189189
    190190        // clear object mask to define valid pixels
    191         psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
     191        psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_IMAGE_MASK(markVal));
    192192
    193193        // exclude the poor fits
    194194        if (!status) {
    195             psfTry->mask->data.U8[i] = PSFTRY_MASK_EXT_FAIL;
     195            psfTry->mask->data.PS_TYPE_IMAGE_MASK_DATA[i] = PSFTRY_MASK_EXT_FAIL;
    196196            psTrace ("psModules.objects", 4, "masking %d (%d,%d) : status is poor\n", i, source->peak->x, source->peak->y);
    197197            continue;
     
    222222
    223223        // masked for: bad model fit, outlier in parameters
    224         if (psfTry->mask->data.U8[i] & PSFTRY_MASK_ALL) {
     224        if (psfTry->mask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PSFTRY_MASK_ALL) {
    225225            psTrace ("psModules.objects", 4, "dropping %d (%d,%d) : source is masked\n", i, source->peak->x, source->peak->y);
    226226            continue;
     
    230230        source->modelPSF = pmModelFromPSF (source->modelEXT, psfTry->psf);
    231231        if (source->modelPSF == NULL) {
    232             psfTry->mask->data.U8[i] = PSFTRY_MASK_BAD_MODEL;
     232            psfTry->mask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PSFTRY_MASK_BAD_MODEL;
    233233            abort();
    234234            continue;
     
    244244        // skip poor fits
    245245        if (!status) {
    246             psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
    247             psfTry->mask->data.U8[i] = PSFTRY_MASK_PSF_FAIL;
     246            psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_IMAGE_MASK(markVal));
     247            psfTry->mask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PSFTRY_MASK_PSF_FAIL;
    248248            psTrace ("psModules.objects", 4, "dropping %d (%d,%d) : failed PSF fit\n", i, source->peak->x, source->peak->y);
    249249            continue;
     
    252252        status = pmSourceMagnitudes (source, psfTry->psf, PM_SOURCE_PHOT_INTERP, maskVal);
    253253        if (!status || isnan(source->apMag)) {
    254             psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
    255             psfTry->mask->data.U8[i] = PSFTRY_MASK_BAD_PHOT;
     254            psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_IMAGE_MASK(markVal));
     255            psfTry->mask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PSFTRY_MASK_BAD_PHOT;
    256256            psTrace ("psModules.objects", 4, "dropping %d (%d,%d) : poor photometry\n", i, source->peak->x, source->peak->y);
    257257            continue;
     
    259259
    260260        // clear object mask to define valid pixels
    261         psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
     261        psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_IMAGE_MASK(markVal));
    262262
    263263        psfTry->fitMag->data.F32[i] = source->psfMag;
     
    291291            flux->data.F32[i] = 0.0;
    292292            chisq->data.F32[i] = 0.0;
    293             mask->data.U8[i] = 0xff;
     293            mask->data.PS_TYPE_VECTOR_MASK_DATA[i] = 0xff;
    294294        } else {
    295295            flux->data.F32[i] = source->modelPSF->params->data.F32[PM_PAR_I0];
    296296            chisq->data.F32[i] = source->modelPSF->chisq / source->modelPSF->nDOF;
    297             mask->data.U8[i] = 0;
     297            mask->data.PS_TYPE_VECTOR_MASK_DATA[i] = 0;
    298298        }
    299299    }
     
    361361
    362362    for (int i = 0; i < psfTry->sources->n; i++) {
    363         if (psfTry->mask->data.U8[i] & PSFTRY_MASK_ALL)
     363        if (psfTry->mask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PSFTRY_MASK_ALL)
    364364            continue;
    365365        r2rflux->data.F32[i] = PS_SQR(RADIUS) * pow(10.0, 0.4*psfTry->fitMag->data.F32[i]);
     
    370370        FILE *f = fopen ("apresid.dat", "w");
    371371        for (int i = 0; i < psfTry->sources->n; i++) {
    372             int keep = (psfTry->mask->data.U8[i] & PSFTRY_MASK_ALL);
     372            int keep = (psfTry->mask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PSFTRY_MASK_ALL);
    373373
    374374            pmSource *source = psfTry->sources->data[i];
     
    418418        psVector *apfit = psPolynomial1DEvalVector (poly, r2rflux);
    419419        for (int i = 0; i < psfTry->sources->n; i++) {
    420             int keep = (psfTry->mask->data.U8[i] & PSFTRY_MASK_ALL);
     420            int keep = (psfTry->mask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PSFTRY_MASK_ALL);
    421421
    422422            pmSource *source = psfTry->sources->data[i];
     
    613613
    614614        psVector *dz = NULL;
    615         psVector *mask = psVectorAlloc (sources->n, PS_TYPE_U8);
     615        psVector *mask = psVectorAlloc (sources->n, PS_TYPE_VECTOR_MASK);
    616616
    617617        // check the fit residuals and increase Nx,Ny until the error is minimized
     
    647647        // copy mask back to srcMask
    648648        for (int i = 0; i < mask->n; i++) {
    649             srcMask->data.U8[i] = mask->data.U8[i];
     649            srcMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = mask->data.PS_TYPE_VECTOR_MASK_DATA[i];
    650650        }
    651651
     
    720720                     pmTrend2DEval (psf->params->data[PM_PAR_E1], x->data.F32[i], y->data.F32[i]),
    721721                     pmTrend2DEval (psf->params->data[PM_PAR_E2], x->data.F32[i], y->data.F32[i]),
    722                      srcMask->data.U8[i]);
     722                     srcMask->data.PS_TYPE_VECTOR_MASK_DATA[i]);
    723723        }
    724724        fclose (f);
     
    835835
    836836    // the mask marks the values not used to calculate the ApTrend
    837     psVector *fitMask = psVectorAlloc (x_fit->n, PS_TYPE_U8);
     837    psVector *fitMask = psVectorAlloc (x_fit->n, PS_TYPE_VECTOR_MASK);
    838838    psVectorInit (fitMask, 0);
    839839
     
    924924    // XXX copy fitMask values back to mask
    925925    for (int i = 0; i < fitMask->n; i++) {
    926         mask->data.U8[i] = fitMask->data.U8[i];
     926        mask->data.PS_TYPE_VECTOR_MASK_DATA[i] = fitMask->data.PS_TYPE_VECTOR_MASK_DATA[i];
    927927    }
    928928    psFree (fitMask);
     
    975975    psVector *dE1subset = psVectorAllocEmpty (nGroup, PS_TYPE_F32);
    976976    psVector *dE2subset = psVectorAllocEmpty (nGroup, PS_TYPE_F32);
    977     psVector *mkSubset  = psVectorAllocEmpty (nGroup, PS_TYPE_U8);
     977    psVector *mkSubset  = psVectorAllocEmpty (nGroup, PS_TYPE_VECTOR_MASK);
    978978
    979979    int n = 0;
     
    988988            dE2subset->data.F32[j] = e2res->data.F32[N];
    989989
    990             mkSubset->data.U8[j]   = mask->data.U8[N];
    991             if (!mask->data.U8[N]) nValid ++;
     990            mkSubset->data.PS_TYPE_VECTOR_MASK_DATA[j]   = mask->data.PS_TYPE_VECTOR_MASK_DATA[N];
     991            if (!mask->data.PS_TYPE_VECTOR_MASK_DATA[N]) nValid ++;
    992992        }
    993993        if (nValid < 3) continue;
Note: See TracChangeset for help on using the changeset viewer.