IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 19, 2008, 2:11:37 PM (18 years ago)
Author:
eugene
Message:

changing detrend verify mode to behave just like master mode in terms of processing and residual generation; adding ref_det_id, ref_iter to detRun and detResidImfile, modifying the foreign constraint; adding a simtest suite to test the detrend verify mode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/dettool.c

    r19092 r19621  
    234234    // optional
    235235    PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false);
    236     PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false);
     236
    237237    // check mode
    238     if (mode && !isValidMode(config, mode)) {
    239         psError(PS_ERR_UNKNOWN, false, "invalud mode");
    240         return false;
    241     }
     238    PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied
     239    if (!isValidMode(config, mode)) {
     240        psError(PS_ERR_UNKNOWN, false, "invalid mode");
     241        return false;
     242    }
     243
     244    // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise
     245    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false);
     246    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false);
     247    if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) {
     248        psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
     249        return false;
     250    }
     251    if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) {
     252        psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
     253        return false;
     254    }
     255       
    242256    PXOPT_LOOKUP_STR(camera, config->args, "-inst", false, false);
    243257    PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false);
     
    368382                 solang_max,
    369383                 label,
    370                  0       // parent
     384                 ref_det_id,
     385                 ref_iter
    371386        );
    372387    psS64 det_id = psDBLastInsertID(config->dbh);
     
    469484    PXOPT_LOOKUP_STR(camera, config->args, "-inst", true, false);
    470485
    471     // optional
    472     PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false);
    473486    // check mode
    474     if (mode && !isValidMode(config, mode)) {
     487    PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied
     488    if (!isValidMode(config, mode)) {
    475489        psError(PS_ERR_UNKNOWN, false, "invalid mode");
    476490        return false;
    477491    }
     492
     493    // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise
     494    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false);
     495    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false);
     496    if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) {
     497        psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
     498        return false;
     499    }
     500    if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) {
     501        psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
     502        return false;
     503    }
     504
    478505    PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false);
    479506    PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false);
     
    623650                 solang_max,
    624651                 label,
    625                  0       // parent
     652                 ref_det_id,
     653                 ref_iter
    626654        );
    627655    psS64 det_id = psDBLastInsertID(config->dbh);
     
    692720{
    693721    PS_ASSERT_PTR_NON_NULL(config, false);
    694 
    695722   
     723    // XXX this mode is not well-tested: probably need to specify iteration here
     724    // XXX pass the supplied det_id and iteration as ref_det_id, or get from command line?
    696725    PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
    697726    PXOPT_LOOKUP_STR(det_type, config->args, "-set_det_type", false, false); // optional
     
    745774
    746775    // pull the detRun object out the result array
     776    // XXX need to assign or re-assign the ref_det_id and ref_iter values
    747777    detRunRow *detRun = psMemIncrRefCounter(detRuns->data[0]);
    748778
     
    962992
    963993    PXOPT_COPY_STR(config->args, where, "-inst", "camera", "==");
     994    PXOPT_COPY_STR(config->args, where, "-mode", "mode", "==");
    964995    PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "==");
    965996    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
     
    15411572    PXOPT_LOOKUP_TIME(use_begin, config->args, "-use_begin", false, false);
    15421573    PXOPT_LOOKUP_TIME(use_end, config->args, "-use_end", false, false);
    1543     PXOPT_LOOKUP_S64(parent, config->args, "-parent", false, false);
     1574    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false);
     1575    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false);
    15441576    PXOPT_LOOKUP_STR(label, config->args, "-label", false, false);
    15451577    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     
    15781610                      solang_min,
    15791611                      solang_max,
    1580                       label,      // label
    1581                       parent
     1612                      label,
     1613                      ref_det_id,
     1614                      ref_iter
    15821615            )) {
    15831616        psError(PS_ERR_UNKNOWN, false, "database error");
     
    17511784
    17521785    // check that state is a valid string value
    1753     if (!(
    1754             (strncmp(mode, "master", 7) == 0)
    1755             || (strncmp(mode, "verify", 7) == 0)
    1756         )
    1757     ) {
    1758         psError(PS_ERR_UNKNOWN, false,
    1759                 "invalid detRun mode: %s", mode);
    1760         return false;
    1761     }
    1762 
    1763     return true;
     1786    if (!strncmp(mode, "master", 7)) return true;
     1787    if (!strncmp(mode, "verify", 7)) return true;
     1788
     1789    psError(PS_ERR_UNKNOWN, false, "invalid detRun mode: %s", mode);
     1790    return false;
    17641791}
    17651792
Note: See TracChangeset for help on using the changeset viewer.