IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 3, 2009, 12:20:59 PM (17 years ago)
Author:
eugene
Message:

add code to calculate norm separately from kernel coeffs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/20091201/psModules/src/imcombine/pmSubtractionMatch.c

    r26330 r26332  
    561561
    562562                // XXX step 1: calculate normalization
    563                 psTrace("psModules.imcombine", 3, "Calculating equation...\n");
    564                 if (!pmSubtractionCalculateEquation(stamps, kernels, true)) {
     563                psTrace("psModules.imcombine", 3, "Calculating equation for normalization...\n");
     564                // if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_NORM)) {
     565                if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_ALL)) {
    565566                    psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
    566567                    goto MATCH_ERROR;
    567568                }
    568569
    569                 // XXX step 2: calculate only other parameters
     570                psTrace("psModules.imcombine", 3, "Solving equation for normalization...\n");
     571                // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_NORM)) {
     572                if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) {
     573                    psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
     574                    goto MATCH_ERROR;
     575                }
     576                memCheck("  solve equation");
     577
    570578# if (0)
    571                 psTrace("psModules.imcombine", 3, "Calculating equation...\n");
    572                 if (!pmSubtractionCalculateEquation(stamps, kernels)) {
     579                // XXX step 2: calculate kernel parameters
     580                psTrace("psModules.imcombine", 3, "Calculating equation for kernels...\n");
     581                if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_KERNELS)) {
    573582                    psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
    574583                    goto MATCH_ERROR;
    575584                }
     585                memCheck("  calculate equation");
     586
     587                psTrace("psModules.imcombine", 3, "Solving equation for kernels...\n");
     588                if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) {
     589                    psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
     590                    goto MATCH_ERROR;
     591                }
     592                memCheck("  solve equation");
    576593# endif
    577 
    578                 memCheck("  calculate equation");
    579 
    580                 psTrace("psModules.imcombine", 3, "Solving equation...\n");
    581 
    582                 if (!pmSubtractionSolveEquation(kernels, stamps)) {
    583                     psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
    584                     goto MATCH_ERROR;
    585                 }
    586 
    587                 memCheck("  solve equation");
    588594
    589595                psVector *deviations = pmSubtractionCalculateDeviations(stamps, kernels); // Stamp deviations
     
    609615            // if we hit the max number of iterations and we have rejected stamps, re-solve
    610616            if (numRejected > 0) {
    611                 psTrace("psModules.imcombine", 3, "Solving equation...\n");
    612                 if (!pmSubtractionSolveEquation(kernels, stamps)) {
     617                // calculate kernel parameters
     618                psTrace("psModules.imcombine", 3, "Solving equation for kernels...\n");
     619                // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) {
     620                if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) {
    613621                    psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
    614622                    goto MATCH_ERROR;
    615623                }
     624                memCheck("  solve equation");
     625
    616626                psVector *deviations = pmSubtractionCalculateDeviations(stamps, kernels); // Stamp deviations
    617627                if (!deviations) {
     
    918928    assert(kernels);
    919929
    920     psTrace("psModules.imcombine", 3, "Calculating %s equation...\n", description);
    921     if (!pmSubtractionCalculateEquation(stamps, kernels)) {
     930    psTrace("psModules.imcombine", 3, "Calculating %s normalization equation...\n", description);
     931    // if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_NORM)) {
     932    if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_ALL)) {
    922933        psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
    923934        return false;
    924935    }
    925936
    926     psTrace("psModules.imcombine", 3, "Solving %s equation...\n", description);
    927     if (!pmSubtractionSolveEquation(kernels, stamps)) {
     937    psTrace("psModules.imcombine", 3, "Solving %s normalization equation...\n", description);
     938    // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_NORM)) {
     939    if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) {
    928940        psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
    929941        return false;
    930942    }
     943
     944# if (0)
     945    psTrace("psModules.imcombine", 3, "Calculating %s kernel coeffs equation...\n", description);
     946    if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_KERNELS)) {
     947        psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
     948        return false;
     949    }
     950
     951    psTrace("psModules.imcombine", 3, "Solving %s kernel coeffs equation...\n", description);
     952    if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) {
     953        psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
     954        return false;
     955    }
     956# endif
    931957
    932958    psTrace("psModules.imcombine", 3, "Calculate %s deviations...\n", description);
     
    949975        // Allow re-fit with reduced stamps set
    950976        psTrace("psModules.imcombine", 3, "Resolving %s equation...\n", description);
    951         if (!pmSubtractionSolveEquation(kernels, stamps)) {
     977        // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) {
     978        if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) {
    952979            psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation.");
    953980            return false;
    954981        }
    955982        psTrace("psModules.imcombine", 3, "Recalculate %s deviations...\n", description);
     983
    956984        psVector *deviations = pmSubtractionCalculateDeviations(stamps, kernels); // Stamp deviations
    957985        if (!deviations) {
Note: See TracChangeset for help on using the changeset viewer.