IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 19621 for trunk/ippTools/src


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

Location:
trunk/ippTools/src
Files:
5 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
  • trunk/ippTools/src/dettoolConfig.c

    r19092 r19621  
    7878    psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-label",  0,            "define detrun label", NULL);
    7979    psMetadataAddBool(definebytagArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     80
     81    psMetadataAddS64(definebytagArgs, PS_LIST_TAIL, "-ref_det_id", 0,           "define reference detrend (verify mode only)", 0);
     82    psMetadataAddS32(definebytagArgs, PS_LIST_TAIL, "-ref_iter", 0,           "define reference detrend (verify mode only)", -1);
    8083
    8184    // -definebyquery
     
    129132    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset",  0,            "use a random subset of elements", false);
    130133    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit",  0,            "use this number of random elements", 20);
     134    psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-ref_det_id", 0,           "define reference detrend (verify mode only)", 0);
     135    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-ref_iter", 0,           "define reference detrend (verify mode only)", -1);
    131136
    132137    // -definebydetrun
     
    163168    // -makecorrection
    164169    psMetadata *makecorrectionArgs = psMetadataAlloc();
    165     psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id",  0,            "det ID to be corrected (required)", 0);
     170    psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id",  0,     "detRun det_id to be corrected (required)", 0);
     171    psMetadataAddS32(makecorrectionArgs, PS_LIST_TAIL, "-iteration",  0,  "detRun iteration to be corrected (required)", -1);;
    166172    psMetadataAddBool(makecorrectionArgs, PS_LIST_TAIL, "-simple", 0,            "use the simple output format", false);
    167173
     
    203209    psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-ccd_temp", 0,            "match ccd temp", NAN);
    204210    psMetadataAddF64(runsArgs, PS_LIST_TAIL, "-posang", 0,            "match posang", NAN);
     211    psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-mode", 0,            "search for det run by mode", NULL);
    205212    psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    206213    psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-active",  0,            "only return active detRuns", false);
     
    216223    psMetadata *inputArgs = psMetadataAlloc();
    217224    psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-det_id", 0,            "search for detrend ID", 0);
    218     psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration",  0,            "define iteration number", 0);
     225    psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration",  0,            "search for iteration number (default 0)", 0);
    219226    psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-exp_id",  0,            "search for exp ID", 0);
    220227    psMetadataAddBool(inputArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     
    591598
    592599    // -addresidimfile
     600    // XXX does a default value of 0 mean the entry is not instatiated? what about a supplied value of 0?
    593601    psMetadata *addresidimfileArgs = psMetadataAlloc();
    594602    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-det_id",  0,            "define detrend ID (required)", 0);
    595     psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration",  0,            "define iteration number", 0);
     603    psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration",  0,         "define iteration number", 0);
     604    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-ref_det_id",  0,        "define reference detrend ID (required)", 0);
     605    psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-ref_iter",  0,          "define reference iteration number (required)", -1);
    596606    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "define detrend ID (required)", 0);
    597     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id",  0,            "define class ID (required)", NULL);
    598     psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code",  0,            "set fault code", 0);
    599     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri",  0,            "define resid file URI", NULL);
    600     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip",  0,            "define recipe", NULL);
    601     psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg",  0,            "define exposure background", NAN);
     607    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id",  0,          "define class ID (required)", NULL);
     608    psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code",  0,              "set fault code", 0);
     609    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri",  0,               "define resid file URI", NULL);
     610    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip",  0,             "define recipe", NULL);
     611    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg",  0,                "define exposure background", NAN);
    602612    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,            "define exposure background stdev", NAN);
    603613    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,            "define exposure background mean stdev", NAN);
     
    815825    psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_begin",  0,            "start of detrend run applicable period", NULL);
    816826    psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_end",  0,            "end of detrend run applicable period", NULL);
    817     psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-parent",  0,            "define parent det_id", 0);
     827    psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-ref_det_id",  0,            "define reference det_id", 0);
     828    psMetadataAddS32(register_detrendArgs, PS_LIST_TAIL, "-ref_iter",  0,            "define reference iteration", -1);
    818829    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-label",  0,            "define detrun label", NULL);
    819830    psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
  • trunk/ippTools/src/dettool_correction.c

    r19092 r19621  
    2424    PS_ASSERT_PTR_NON_NULL(config, false);
    2525
    26     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
     26    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-det_id", true, false); // required
     27    PXOPT_LOOKUP_S32(ref_iter, config->args, "-iteration", true, false); // required
    2728    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); // optional
    2829
    2930    // build the needed where
    3031    psMetadata *where = psMetadataAlloc();
    31     psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", det_id);
     32    psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", ref_det_id);
     33    psMetadataAddS32(where, PS_LIST_TAIL, "iteration", 0, "==", ref_iter);
    3234    psArray *runs = detRunSelectRowObjects(config->dbh, where, 1);
    3335    psFree (where);
     
    7476         detRun->solang_max,
    7577         detRun->label,
    76          detRun->det_id // parent
     78         detRun->det_id, // ref_det_id
     79         detRun->iteration // ref_iter
    7780    );
    7881
  • trunk/ippTools/src/dettool_processedimfile.c

    r19092 r19621  
    165165    PS_ASSERT_PTR_NON_NULL(config, false);
    166166
    167     char *value = NULL;
     167    bool hasWhere = false;
    168168
    169169    PXOPT_LOOKUP_BOOL(included, config->args, "-included", false);
     
    173173
    174174    psMetadata *where = psMetadataAlloc();
    175     PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "==");
    176     PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "==");
    177     PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "==");
     175    PXOPT_COPY_S64(config->args, where, "-det_id", "detProcessedImfile.det_id", "==");
     176    PXOPT_COPY_S64(config->args, where, "-exp_id", "detProcessedImfile.exp_id", "==");
     177    PXOPT_COPY_STR(config->args, where, "-class_id", "detProcessedImfile.class_id", "==");
     178    PXOPT_COPY_STR(config->args, where, "-select_state", "detRun.state", "==");
     179    PXOPT_COPY_STR(config->args, where, "-select_mode", "detRun.mode", "==");
    178180
    179181    psString query = pxDataGet("dettool_processedimfile.sql");
     
    184186    }
    185187
    186     // add the two required restrictions: detRun.state and detRun.mode
    187     // NOTE the above query requires one of the following two WHERE statements
    188     {
    189         bool status;
    190         if ((value = psMetadataLookupStr(&status, config->args, "-select_state"))) {
    191             psStringAppend(&query, " WHERE detRun.state = '%s'", value);
    192         } else {
    193             psStringAppend(&query, " WHERE detRun.state = 'run'");
    194         }
    195         if ((value = psMetadataLookupStr(&status, config->args, "-select_mode"))) {
    196             psStringAppend(&query, " AND detRun.mode = '%s'", value);
    197         } else {
    198             psStringAppend(&query, " AND detRun.mode = 'master'");
    199         }
    200     }
    201 
    202188    if (psListLength(where->list)) {
    203         psString whereClause = psDBGenerateWhereConditionSQL(where, "detProcessedImfile");
    204         psStringAppend(&query, " AND %s", whereClause);
     189        psString whereClause = psDBGenerateWhereSQL(where, NULL);
     190        psStringAppend(&query, " %s", whereClause);
    205191        psFree(whereClause);
     192        hasWhere = true;
    206193    }
    207194    psFree (where);
     
    209196    // restrict search to included imfiles
    210197    if (included) {
    211         psStringAppend(&query, " AND detInputExp.include = 1");
     198        if (hasWhere) {
     199            psStringAppend(&query, " AND detInputExp.include = 1");
     200        } else {
     201            psStringAppend(&query, " WHERE detInputExp.include = 1");
     202        }
     203        hasWhere = true;
     204    }
     205
     206    if (hasWhere) {
     207        psStringAppend(&query, " AND");
     208    } else {
     209        psStringAppend(&query, " WHERE");
    212210    }
    213211
    214212    if (faulted) {
    215         // list only faulted rows
    216         psStringAppend(&query, " %s", "AND detProcessedImfile.fault != 0");
     213        psStringAppend(&query, " %s", " detProcessedImfile.fault != 0");
    217214    } else {
    218215        // don't list faulted rows
    219         psStringAppend(&query, " %s", "AND detProcessedImfile.fault = 0");
     216        psStringAppend(&query, " %s", " detProcessedImfile.fault = 0");
    220217    }
    221218
  • trunk/ippTools/src/dettool_residimfile.c

    r19092 r19621  
    7878    PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
    7979    PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false);
     80
     81    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false); // required
     82    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false);
     83
    8084    PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", true, false); // required
    8185    PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); // required
     
    106110            det_id,
    107111            iteration,
     112            ref_det_id,
     113            ref_iter,
    108114            exp_id,
    109115            class_id,
Note: See TracChangeset for help on using the changeset viewer.