IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 41533


Ignore:
Timestamp:
Apr 3, 2021, 2:21:37 PM (5 years ago)
Author:
eugene
Message:

pass in additional orders to psPlaneTransformInvert

Location:
trunk/psModules/src/astrom
Files:
3 edited

Legend:

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

    r41496 r41533  
    340340    psRegion *region = pmAstromFPAExtent (fpa);
    341341
     342    // XXX psFree (fpa->fromTPA);
     343    // XXX psPlaneTransform *myPT = psPlaneTransformAlloc(fpa->toTPA->x->nX+4, fpa->toTPA->x->nY+4);
     344    // XXX fpa->fromTPA = psPlaneTransformInvert(myPT, fpa->toTPA, *region, 50);
     345    // XXX psFree (myPT);
     346
     347    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    342348    psFree (fpa->fromTPA);
    343     psPlaneTransform *myPT = psPlaneTransformAlloc(fpa->toTPA->x->nX+4, fpa->toTPA->x->nY+4);
    344     fpa->fromTPA = psPlaneTransformInvert(myPT, fpa->toTPA, *region, 50);
    345     psFree (myPT);
     349    fpa->fromTPA = psPlaneTransformInvert(NULL, fpa->toTPA, *region, 50, 4);
    346350    psFree (region);
    347351
  • trunk/psModules/src/astrom/pmAstrometryModel.c

    r41286 r41533  
    518518
    519519    // convert the toFPA transfomations to fromFPA transformations
    520     // we need a higher order transformation to model the inverse transformation
    521     // is +4 too large?
    522     // XXX EAM : hold off on high-order inverse chip fromFPA
    523520    for (int i = 0; i < file->fpa->chips->n; i++) {
    524521        pmChip *chip = file->fpa->chips->data[i];
    525522        if (!chip->toFPA) continue;
    526523        psRegion *region = pmChipPixels (chip);
     524
     525        // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    527526        psFree (chip->fromFPA);
    528 //      psPlaneTransform *myPT = psPlaneTransformAlloc(chip->toFPA->x->nX+4, chip->toFPA->x->nY+4);
    529         psPlaneTransform *myPT = NULL;
    530         chip->fromFPA = psPlaneTransformInvert(myPT, chip->toFPA, *region, 50);
     527        chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, 4);
     528
    531529        psFree (region);
    532530    }
     
    586584
    587585    psRegion *region = pmAstromFPAExtent (file->fpa);
     586
     587    // XXX psFree (file->fpa->fromTPA);
     588    // XXX psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
     589    // XXX file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
     590    // XXX psFree (myPT);
     591
     592    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    588593    psFree (file->fpa->fromTPA);
    589     psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
    590     file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
    591     psFree (myPT);
     594    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, 4);
    592595
    593596    psFree (model);
     
    735738    // the inverse transformation requires a higher order model to fit the direct transformation sufficiently well
    736739    psRegion *region = pmAstromFPAExtent (file->fpa);
     740
     741    // XXX psFree (file->fpa->fromTPA);
     742    // XXX psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
     743    // XXX file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
     744    // XXX psFree (myPT);
     745
    737746    psFree (file->fpa->fromTPA);
    738     psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
    739     file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
    740     psFree (myPT);
     747    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, 4);
     748
    741749    psFree (region);
    742750
  • trunk/psModules/src/astrom/pmAstrometryWCS.c

    r40553 r41533  
    606606    psRegion *region = pmChipPixels (chip);
    607607
     608    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    608609    psFree (chip->fromFPA);
    609     assert (chip->fromFPA == NULL);
    610     chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50);
     610    chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, 4);
    611611    psFree (region);
    612612
     
    666666    psRegion *region = pmChipPixels (chip);
    667667
     668    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    668669    psFree (chip->fromFPA);
    669     chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50);
     670    chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, 4);
    670671    psFree (region);
    671672
     
    691692        }
    692693    }
     694
     695    // XXX the way this is coded, updates will NOT have the same behavior as with the
     696    // original code: the if ADDITIONAL_WCS_ORDERS is not found, the default
     697    // should be 0 (or else we need some way to detect the update version)
    693698
    694699    // the transformation used the region to define the inversion grid
     
    701706      additional_orders = config_additional_orders;
    702707    }
    703    
    704     psPlaneTransform *myPT = psPlaneTransformAlloc(fpa->toTPA->x->nX+additional_orders, fpa->toTPA->x->nY+additional_orders);
    705 
    706     fpa->fromTPA = psPlaneTransformInvert(myPT, fpa->toTPA, region, 50);
    707     psFree (myPT);
     708    fpa->fromTPA = psPlaneTransformInvert(NULL, fpa->toTPA, region, 50, additional_orders);
    708709    return true;
    709710}
     
    10301031    }
    10311032
    1032     psPlaneTransform *outFromFPA = psPlaneTransformInvert(NULL, outToFPA, *outputBounds, 50);
     1033    // NOTE: the extraOrders value (4) should be ignored since outToFPA is specified to be linear
     1034    psPlaneTransform *outFromFPA = psPlaneTransformInvert(NULL, outToFPA, *outputBounds, 50, 4);
    10331035    if (!outFromFPA) {
    10341036        psFree(outToFPA);
     
    11471149
    11481150    // this is a linear transformation
    1149     psPlaneTransform *newFromFPA = psPlaneTransformInvert(NULL, newToFPA, *bounds, 1);
     1151    psPlaneTransform *newFromFPA = psPlaneTransformInvert(NULL, newToFPA, *bounds, 1, 0);
    11501152    if (!newFromFPA) {
    11511153        psFree(newToFPA);
Note: See TracChangeset for help on using the changeset viewer.