IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 9, 2007, 9:27:04 AM (19 years ago)
Author:
eugene
Message:

changed mask to coeffMask, define PS_POLY_MASK_FIT,SET; distinguish between coeffs masked for fitting (FIT) and masked for evaluation (SET)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/astrom/pmAstrometryDistortion.c

    r13653 r15254  
    77*  @author EAM, IfA
    88*
    9 *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2007-06-06 00:43:19 $
     9*  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2007-10-09 19:27:04 $
    1111*
    1212*  Copyright 2006 Institute for Astronomy, University of Hawaii
     
    6262
    6363    psPolynomial2D *local = psPolynomial2DAlloc (PS_POLYNOMIAL_ORD, 1, 1);
    64     local->mask[1][1] = 1;
     64    local->coeffMask[1][1] = PS_POLY_MASK_SET;
    6565
    6666    // measure gradient for fractional chip regions
     
    211211    for (int i = 0; i <= fpa->toTPA->x->nX; i++) {
    212212        for (int j = 0; j <= fpa->toTPA->x->nY; j++) {
    213             if (fpa->toTPA->x->mask[i][j]) {
    214                 if ((i > 0) && (i <= fpa->toTPA->x->nX)) {
    215                     localX->mask[i-1][j] = 1;
    216                 }
    217                 if ((j > 0) && (j <= fpa->toTPA->x->nY)) {
    218                     localY->mask[i][j-1] = 1;
    219                 }
    220             }
     213            if ((i > 0) && (i <= fpa->toTPA->x->nX)) {
     214                localX->coeffMask[i-1][j] = fpa->toTPA->x->coeffMask[i][j];
     215            }
     216            if ((j > 0) && (j <= fpa->toTPA->x->nY)) {
     217                localY->coeffMask[i][j-1] = fpa->toTPA->x->coeffMask[i][j];
     218            }
    221219        }
    222220    }
     
    240238    fpa->toTPA->x->coeff[0][0] = 0;
    241239    for (int i = 1; i <= fpa->toTPA->x->nX; i++) {
    242         if (!fpa->toTPA->x->mask[i][0]) {
    243             fpa->toTPA->x->coeff[i][0] = localX->coeff[i-1][0] / i;
    244         }
     240        if (fpa->toTPA->x->coeffMask[i][0] & PS_POLY_MASK_SET) {
     241            continue;
     242        }
     243        fpa->toTPA->x->coeff[i][0] = localX->coeff[i-1][0] / i;
    245244    }
    246245    for (int j = 1; j <= fpa->toTPA->x->nY; j++) {
    247         if (!fpa->toTPA->x->mask[0][j]) {
    248             fpa->toTPA->x->coeff[0][j] = localY->coeff[0][j-1] / j;
    249         }
     246        if (fpa->toTPA->x->coeffMask[0][j] & PS_POLY_MASK_SET) {
     247            continue;
     248        }
     249        fpa->toTPA->x->coeff[0][j] = localY->coeff[0][j-1] / j;
    250250    }
    251251    for (int i = 1; i <= fpa->toTPA->x->nX; i++) {
    252252        for (int j = 1; j <= fpa->toTPA->x->nY; j++) {
    253             if (!fpa->toTPA->x->mask[i][j]) {
    254                 fpa->toTPA->x->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
    255             }
     253            if (fpa->toTPA->x->coeffMask[i][j] & PS_POLY_MASK_SET) {
     254                continue;
     255            }
     256            fpa->toTPA->x->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
    256257        }
    257258    }
     
    268269    for (int i = 0; i < fpa->toTPA->y->nX; i++) {
    269270        for (int j = 0; j < fpa->toTPA->y->nY; j++) {
    270             if (fpa->toTPA->y->mask[i][j]) {
    271                 if ((i > 0) && (i <= fpa->toTPA->y->nX)) {
    272                     localX->mask[i-1][j] = 1;
    273                 }
    274                 if ((j > 0) && (j <= fpa->toTPA->y->nY)) {
    275                     localY->mask[i][j-1] = 1;
    276                 }
    277             }
     271            if ((i > 0) && (i <= fpa->toTPA->y->nX)) {
     272                localX->coeffMask[i-1][j] = fpa->toTPA->y->coeffMask[i][j];
     273            }
     274            if ((j > 0) && (j <= fpa->toTPA->y->nY)) {
     275                localY->coeffMask[i][j-1] = fpa->toTPA->y->coeffMask[i][j];
     276            }
    278277        }
    279278    }
     
    286285    fpa->toTPA->y->coeff[0][0] = 0;
    287286    for (int i = 1; i <= fpa->toTPA->y->nX; i++) {
    288         if (!fpa->toTPA->y->mask[i][0]) {
    289             fpa->toTPA->y->coeff[i][0] = localX->coeff[i-1][0] / i;
    290         }
     287        if (fpa->toTPA->y->coeffMask[i][0] & PS_POLY_MASK_SET) {
     288            continue;
     289        }
     290        fpa->toTPA->y->coeff[i][0] = localX->coeff[i-1][0] / i;
    291291    }
    292292    for (int j = 1; j <= fpa->toTPA->y->nY; j++) {
    293         if (!fpa->toTPA->y->mask[0][j]) {
    294             fpa->toTPA->y->coeff[0][j] = localY->coeff[0][j-1] / j;
    295         }
     293        if (fpa->toTPA->y->coeffMask[0][j] & PS_POLY_MASK_SET) {
     294            continue;
     295        }
     296        fpa->toTPA->y->coeff[0][j] = localY->coeff[0][j-1] / j;
    296297    }
    297298    for (int i = 1; i <= fpa->toTPA->y->nX; i++) {
    298299        for (int j = 1; j <= fpa->toTPA->y->nY; j++) {
    299             if (!fpa->toTPA->y->mask[i][j]) {
    300                 fpa->toTPA->y->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
     300            if (fpa->toTPA->y->coeffMask[i][j] & PS_POLY_MASK_SET) {
     301                continue;
    301302            }
     303            fpa->toTPA->y->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
    302304        }
    303305    }
Note: See TracChangeset for help on using the changeset viewer.