IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 1, 2021, 9:50:01 AM (5 years ago)
Author:
eugene
Message:

add method to set the extra orders for inverse transformations

Location:
branches/eam_branches/ipp-dev-20210817/psModules/src/astrom
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-dev-20210817/psModules/src/astrom/pmAstrometryDistortion.c

    r41823 r41826  
    2929#include "pmAstrometryRegions.h"
    3030#include "pmAstrometryDistortion.h"
     31#include "pmAstrometryUtils.h"
    3132#include "pmKapaPlots.h"
    3233
     
    183184    PS_ASSERT_PTR_NON_NULL(fpa, false);
    184185    PS_ASSERT_ARRAY_NON_NULL(gradients, false);
     186
     187    int ExtraOrders = pmAstrometryGetExtraOrders();
    185188
    186189    psPolynomial2D *localX = NULL;
     
    342345    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    343346    psFree (fpa->fromTPA);
    344     fpa->fromTPA = psPlaneTransformInvert(NULL, fpa->toTPA, *region, 50, EXTRA_ORDERS);
     347    fpa->fromTPA = psPlaneTransformInvert(NULL, fpa->toTPA, *region, 50, ExtraOrders);
    345348    psFree (region);
    346349
  • branches/eam_branches/ipp-dev-20210817/psModules/src/astrom/pmAstrometryModel.c

    r41823 r41826  
    461461    bool status;
    462462
     463    int ExtraOrders = pmAstrometryGetExtraOrders();
     464
    463465    // set FITS cursor
    464466    if (!psFitsMoveExtName (file->fits, "CHIPS")) {
     
    525527        // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    526528        psFree (chip->fromFPA);
    527         chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, EXTRA_ORDERS);
     529        chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, ExtraOrders);
    528530
    529531        psFree (region);
     
    539541
    540542    bool status;
     543
     544    int ExtraOrders = pmAstrometryGetExtraOrders();
    541545
    542546    if (!psFitsMoveExtName (file->fits, "FP")) {
     
    587591    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    588592    psFree (file->fpa->fromTPA);
    589     file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, EXTRA_ORDERS);
     593    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, ExtraOrders);
    590594
    591595    psFree (model);
     
    684688    bool status;
    685689
     690    int ExtraOrders = pmAstrometryGetExtraOrders();
     691
    686692    // these externally supplied values are used to set the final transformation terms
    687693    double RA  = psMetadataLookupF64 (&status, concepts, "FPA.RA"); REQUIRE (status, "missing FPA.RA");
     
    731737
    732738    psFree (file->fpa->fromTPA);
    733     file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, EXTRA_ORDERS);
     739    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, ExtraOrders);
    734740
    735741    psFree (region);
  • branches/eam_branches/ipp-dev-20210817/psModules/src/astrom/pmAstrometryRegions.h

    r41823 r41826  
    1212
    1313// used by pmAstrometryDistortion.c, pmAstrometryWCS.c, pmAstrometryModel.c
    14 # define EXTRA_ORDERS 6
     14// # define EXTRA_ORDERS 6
    1515
    1616/// @addtogroup Astrometry
  • branches/eam_branches/ipp-dev-20210817/psModules/src/astrom/pmAstrometryUtils.c

    r35768 r41826  
    2323#include "pmAstrometryUtils.h"
    2424
     25static int transform_extra_orders = 4;
     26
     27int pmAstrometryGetExtraOrders (void) {
     28  return transform_extra_orders;
     29}
     30
     31int pmAstrometrySetExtraOrders (int orders) {
     32  transform_extra_orders = orders;
     33  return transform_extra_orders;
     34}
     35
    2536// this is used by the test output block
    2637static int Nout = 0;
  • branches/eam_branches/ipp-dev-20210817/psModules/src/astrom/pmAstrometryUtils.h

    r15884 r41826  
    2525bool psPlaneDistortIsDiagonal (psPlaneDistort *distort);
    2626
     27int pmAstrometryGetExtraOrders (void);
     28int pmAstrometrySetExtraOrders (int orders);
     29
    2730/// @}
    2831#endif
  • branches/eam_branches/ipp-dev-20210817/psModules/src/astrom/pmAstrometryWCS.c

    r41823 r41826  
    501501    psPlaneTransform *toFPA;
    502502
     503    int ExtraOrders = pmAstrometryGetExtraOrders();
     504
    503505    // create transformation with 0,0 reference pixel and units of degrees/pixel
    504506    toFPA = psPlaneTransformSetCenter (NULL, wcs->trans, -wcs->crpix1, -wcs->crpix2);
     
    608610    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    609611    psFree (chip->fromFPA);
    610     chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, EXTRA_ORDERS);
     612    chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, ExtraOrders);
    611613    psFree (region);
    612614
     
    648650     */
    649651
     652    int ExtraOrders = pmAstrometryGetExtraOrders();
     653
    650654    psFree (chip->toFPA);
    651655    if ((fabs(wcs->crpix1) > 0.01) || (fabs(wcs->crpix2) > 0.01)) {
     
    668672    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
    669673    psFree (chip->fromFPA);
    670     chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, EXTRA_ORDERS);
     674    chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, ExtraOrders);
    671675    psFree (region);
    672676
     
    700704    // the region defines the FPA pixels covered by the tranformation
    701705    psFree (fpa->fromTPA);
    702     int additional_orders = EXTRA_ORDERS;  // This is the number of orders that should be added.
     706    int additional_orders = pmAstrometryGetExtraOrders();  // This is the number of orders that should be added.
    703707    bool status = false;
    704708    int config_additional_orders = psMetadataLookupS32(&status,fpa->analysis, "ADDITIONAL_WCS_ORDERS");
     
    9971001    PS_ASSERT_PTR_NON_NULL(inChip, NULL);
    9981002
     1003    int ExtraOrders = pmAstrometryGetExtraOrders();
     1004
    9991005    if (outFPA == NULL) {
    10001006        outFPA = inFPA;
     
    10321038
    10331039    // NOTE: the extraOrders value (4) should be ignored since outToFPA is specified to be linear
    1034     psPlaneTransform *outFromFPA = psPlaneTransformInvert(NULL, outToFPA, *outputBounds, 50, EXTRA_ORDERS);
     1040    psPlaneTransform *outFromFPA = psPlaneTransformInvert(NULL, outToFPA, *outputBounds, 50, ExtraOrders);
    10351041    if (!outFromFPA) {
    10361042        psFree(outToFPA);
Note: See TracChangeset for help on using the changeset viewer.