IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 24, 2020, 4:08:17 PM (6 years ago)
Author:
eugene
Message:

distortions modeled with 3rd order polynomials may need a higher order model for the inverse transformation; bump the order up b 4

File:
1 edited

Legend:

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

    r39927 r41286  
    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
    520523    for (int i = 0; i < file->fpa->chips->n; i++) {
    521524        pmChip *chip = file->fpa->chips->data[i];
     
    523526        psRegion *region = pmChipPixels (chip);
    524527        psFree (chip->fromFPA);
    525         chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50);
     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);
    526531        psFree (region);
    527532    }
     
    582587    psRegion *region = pmAstromFPAExtent (file->fpa);
    583588    psFree (file->fpa->fromTPA);
    584     file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50);
     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);
    585592
    586593    psFree (model);
     
    711718    }
    712719   
     720    // EAM 20200208 note: the toTPA versions of the transformation are more fundamental (the are used for the WCS conversion)
     721    // we should rotate the toTPA transformation and not the fromFPA.  I believe the sign is reversed, so test this
     722
    713723    // XXX we've swapped the sign and parity of POS (add to model)
    714724    // apply true posangle = -(POS - POS_ZERO)
    715725    psLogMsg ("psModules.astrom", 4, "Position Angle: %f, Model Position Angle Zero Point: %f\n", POS, PosZero);
    716     psPlaneTransform *fromTPA = psPlaneTransformRotate (NULL, file->fpa->fromTPA, rotatorParity * (PosZero - POS));
     726
     727//    psPlaneTransform *fromTPA = psPlaneTransformRotate (NULL, file->fpa->fromTPA, rotatorParity * (PosZero - POS));
     728//    psFree (file->fpa->fromTPA);
     729//    file->fpa->fromTPA = fromTPA;
     730
     731    psPlaneTransform *toTPA = psPlaneTransformRotate (NULL, file->fpa->toTPA, rotatorParity * (POS - PosZero));
     732    psFree (file->fpa->toTPA);
     733    file->fpa->toTPA = toTPA;
     734
     735    // the inverse transformation requires a higher order model to fit the direct transformation sufficiently well
     736    psRegion *region = pmAstromFPAExtent (file->fpa);
    717737    psFree (file->fpa->fromTPA);
    718     file->fpa->fromTPA = fromTPA;
    719 
    720     psRegion *region = pmAstromFPAExtent (file->fpa);
    721     psFree (file->fpa->toTPA);
    722     file->fpa->toTPA = psPlaneTransformInvert(NULL, file->fpa->fromTPA, *region, 50);
     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);
    723741    psFree (region);
    724742
Note: See TracChangeset for help on using the changeset viewer.