IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20307


Ignore:
Timestamp:
Oct 21, 2008, 4:11:36 PM (18 years ago)
Author:
Paul Price
Message:

Propagating changes to psImageInterpolate.h

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/camera/pmFPAMaskWeight.c

    r20095 r20307  
    453453    psImage *weight = readout->weight;  // Weight map
    454454
    455     psImageInterpolateOptions *interp = psImageInterpolateOptionsAlloc(mode, image, weight, mask, maskVal,
    456                                                                        NAN, NAN, maskBad, maskPoor, poorFrac);
     455    psImageInterpolation *interp = psImageInterpolationAlloc(mode, image, weight, mask, maskVal,
     456                                                             NAN, NAN, maskBad, maskPoor, poorFrac, 0);
    457457    interp->shifting = false;           // Turn off "exact shifts" so we get proper interpolation
    458458
  • trunk/psModules/src/objects/pmModel.c

    r15977 r20307  
    66 *  @author EAM, IfA
    77 *
    8  *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2008-01-02 20:36:36 $
     8 *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2008-10-22 02:11:08 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    222222    psImage *myRx = NULL;
    223223    psImage *myRy = NULL;
    224     psImageInterpolateOptions *Ro = NULL;
    225     psImageInterpolateOptions *Rx = NULL;
    226     psImageInterpolateOptions *Ry = NULL;
     224    psImageInterpolation *Ro = NULL;
     225    psImageInterpolation *Rx = NULL;
     226    psImageInterpolation *Ry = NULL;
    227227    if (model->residuals && (mode & (PM_MODEL_OP_RES0 | PM_MODEL_OP_RES1))) {
    228228        // if the residual image and object image don't match,
     
    274274        }
    275275
    276         Ro = psImageInterpolateOptionsAlloc(PS_INTERPOLATE_BILINEAR, myRo, NULL, mask, 0, 0.0, 0.0, 1, 0, 0.0);
    277         Rx = psImageInterpolateOptionsAlloc(PS_INTERPOLATE_BILINEAR, myRx, NULL, NULL, 0, 0.0, 0.0, 1, 0, 0.0);
    278         Ry = psImageInterpolateOptionsAlloc(PS_INTERPOLATE_BILINEAR, myRy, NULL, NULL, 0, 0.0, 0.0, 1, 0, 0.0);
     276        Ro = psImageInterpolationAlloc(PS_INTERPOLATE_BILINEAR, myRo, NULL, mask, 0, 0.0, 0.0, 1, 0, 0.0, 0);
     277        Rx = psImageInterpolationAlloc(PS_INTERPOLATE_BILINEAR, myRx, NULL, NULL, 0, 0.0, 0.0, 1, 0, 0.0, 0);
     278        Ry = psImageInterpolationAlloc(PS_INTERPOLATE_BILINEAR, myRy, NULL, NULL, 0, 0.0, 0.0, 1, 0, 0.0, 0);
    279279
    280280    }
  • trunk/psModules/src/objects/pmSourcePhotometry.c

    r20077 r20307  
    33 *  @author EAM, IfA; GLG, MHPCC
    44 *
    5  *  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
    6  *  @date $Date: 2008-10-13 01:59:05 $
     5 *  @version $Revision: 1.46 $ $Name: not supported by cvs2svn $
     6 *  @date $Date: 2008-10-22 02:11:08 $
    77 *
    88 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    122122    if (source->modelFits) {
    123123      for (int i = 0; i < source->modelFits->n; i++) {
    124         pmModel *model = source->modelFits->data[i];
    125         status = pmSourcePhotometryModel (&model->mag, model);
     124        pmModel *model = source->modelFits->data[i];
     125        status = pmSourcePhotometryModel (&model->mag, model);
    126126      }
    127127      if (source->modelEXT) {
    128         source->extMag = source->modelEXT->mag;
     128        source->extMag = source->modelEXT->mag;
    129129      }
    130130    } else {
    131131      if (source->modelEXT) {
    132         status = pmSourcePhotometryModel (&source->extMag, source->modelEXT);
     132        status = pmSourcePhotometryModel (&source->extMag, source->modelEXT);
    133133      }
    134134    }
     
    177177
    178178        if (!psImageShiftMask(&flux, &mask, source->pixels, source->maskObj, maskVal, dx, dy,
    179                               NAN, 0xff, PS_INTERPOLATE_BICUBE)) {
     179                              NAN, 0xff, PS_INTERPOLATE_BIQUADRATIC)) {
    180180            // Not much we can do about it
    181181            psErrorClear();
     
    256256        }
    257257        if (mode & PM_SOURCE_PHOT_APCORR) {
    258             rflux   = pow (10.0, 0.4*source->psfMag);
    259             source->apMag -= PS_SQR(model->radiusFit)*rflux * psf->skyBias + psf->skySat / rflux;
     258            rflux   = pow (10.0, 0.4*source->psfMag);
     259            source->apMag -= PS_SQR(model->radiusFit)*rflux * psf->skyBias + psf->skySat / rflux;
    260260        }
    261261    }
     
    333333    }
    334334    if (apSum <= 0) {
    335         *apMag = NAN;
     335        *apMag = NAN;
    336336        return true;
    337337    }
  • trunk/psphot/src/psphotMakeResiduals.c

    r18583 r20307  
    105105        // we will interpolate the image and weight - include the mask or not?
    106106        // XXX consider better values for the mask bits
    107         psImageInterpolateOptions *interp =
    108             psImageInterpolateOptionsAlloc(mode, image, weight, NULL, 0xff, 0.0, 0.0, badMask, poorMask, 0.0);
     107        psImageInterpolation *interp =
     108            psImageInterpolationAlloc(mode, image, weight, NULL, 0xff, 0.0, 0.0, badMask, poorMask, 0.0, 0);
    109109        psArrayAdd (input,  100, interp);
    110110
     
    149149        for (int ox = 0; ox < resid->Ro->numCols; ox++) {
    150150
    151             int nGoodPixel = 0;              // pixel is off the image
    152    
     151            int nGoodPixel = 0;              // pixel is off the image
     152
    153153            // build the vector of data values for this output pixel
    154154            for (int i = 0; i < input->n; i++) {
    155155
    156                 psImageInterpolateOptions *interp = input->data[i];
     156                psImageInterpolation *interp = input->data[i];
    157157
    158158                // fractional image position
     
    165165                    // This pixel is off the image
    166166                    offImage = true;
    167                     fmasks->data.U8[i] = 1;
    168                     // fprintf (stderr, "off image: %f %f : %f %f\n", ix, iy, flux, dflux);
    169                 } 
     167                    fmasks->data.U8[i] = 1;
     168                    // fprintf (stderr, "off image: %f %f : %f %f\n", ix, iy, flux, dflux);
     169                }
    170170                fluxes->data.F32[i] = flux;
    171171                dfluxes->data.F32[i] = dflux;
    172172                fmasks->data.U8[i] = mflux;
    173                 if (isnan(flux)) {
    174                     fmasks->data.U8[i] = 1;
    175                 }
    176                 if (fmasks->data.U8[i] == 0) {
    177                     nGoodPixel ++;
    178                 }           
    179             }
    180 
    181             // skip pixels which are off the image...
    182             bool validPixel = (SPATIAL_ORDER == 0) ? (nGoodPixel > 1) : (nGoodPixel > 3);
     173                if (isnan(flux)) {
     174                    fmasks->data.U8[i] = 1;
     175                }
     176                if (fmasks->data.U8[i] == 0) {
     177                    nGoodPixel ++;
     178                }
     179            }
     180
     181            // skip pixels which are off the image...
     182            bool validPixel = (SPATIAL_ORDER == 0) ? (nGoodPixel > 1) : (nGoodPixel > 3);
    183183            if (!validPixel) {
    184184                resid->Ro->data.F32[oy][ox] = 0.0;
    185185                resid->Rx->data.F32[oy][ox] = 0.0;
    186                 resid->Ry->data.F32[oy][ox] = 0.0;
    187                 resid->mask->data.U8[oy][ox] = 1;
    188                 continue;
     186                resid->Ry->data.F32[oy][ox] = 0.0;
     187                resid->mask->data.U8[oy][ox] = 1;
     188                continue;
    189189            }
    190190
     
    216216                //resid->weight->data.F32[oy][ox] = fluxStats->sampleStdev;
    217217
    218                 if (resid->Ro->data.F32[oy][ox] < pixelSN*fluxStats->sampleStdev) {
    219                   resid->mask->data.U8[oy][ox] = 1;
    220                 }
     218                if (resid->Ro->data.F32[oy][ox] < pixelSN*fluxStats->sampleStdev) {
     219                  resid->mask->data.U8[oy][ox] = 1;
     220                }
    221221
    222222            } else {
     
    254254                resid->Ry->data.F32[oy][ox] = B->data.F64[2];
    255255
    256                 float dRo = sqrt(A->data.F32[0][0]);
    257                 if (resid->Ro->data.F32[oy][ox] < pixelSN*dRo) {
    258                   resid->mask->data.U8[oy][ox] = 1;
    259                 }
     256                float dRo = sqrt(A->data.F32[0][0]);
     257                if (resid->Ro->data.F32[oy][ox] < pixelSN*dRo) {
     258                  resid->mask->data.U8[oy][ox] = 1;
     259                }
    260260                //resid->weight->data.F32[oy][ox] = XXX;
    261261            }
  • trunk/pswarp/src/pswarp.h

    r19395 r20307  
    4343    pmReadout *output;
    4444    pswarpMapGrid *grid;
    45     psImageInterpolateOptions *interp;
     45    psImageInterpolation *interp;
    4646    psImage *region;
    4747
  • trunk/pswarp/src/pswarpTransformReadout.c

    r19395 r20307  
    6464
    6565    // Interpolation options : move these from the arguments to explicit assignments
    66     psImageInterpolateOptions *interp = psImageInterpolateOptionsAlloc(interpolationMode, input->image,
    67                                                                        input->weight, input->mask, maskIn,
    68                                                                        NAN, NAN, maskBad, maskPoor, poorFrac);
     66    psImageInterpolation *interp = psImageInterpolationAlloc(interpolationMode, input->image,
     67                                                             input->weight, input->mask, maskIn,
     68                                                             NAN, NAN, maskBad, maskPoor, poorFrac, 0);
    6969
    7070    if (input->weight && !output->weight) {
     
    143143        float varFactor = psImageInterpolateVarianceFactor(input->image->numCols / 2.0 + input->image->col0,
    144144                                                           input->image->numRows / 2.0 + input->image->row0,
    145                                                            interp);
     145                                                           interp->mode);
    146146        psMetadataItem *vfItem = psMetadataLookup(output->analysis, PSWARP_ANALYSIS_VARFACTOR);
    147147        if (vfItem) {
Note: See TracChangeset for help on using the changeset viewer.