IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 23506 for trunk/ippTools/src


Ignore:
Timestamp:
Mar 24, 2009, 5:24:49 PM (17 years ago)
Author:
Paul Price
Message:

Adding restriction on good_frac for skycells of warp-warp diffs.

Location:
trunk/ippTools/src
Files:
2 edited

Legend:

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

    r23503 r23506  
    12621262    PS_ASSERT_PTR_NON_NULL(config, false);
    12631263
    1264     psMetadata *where = psMetadataAlloc();
    1265 
    1266     // Restrictions
    1267     PXOPT_COPY_S64(config->args, where, "-warp_id", "inputWarpRun.warp_id", "==");
    1268     PXOPT_COPY_S64(config->args, where, "-exp_id", "inputRawExp.exp_id", "==");
    1269     PXOPT_COPY_STR(config->args, where, "-filter", "inputRawExp.filter", "==");
    1270     PXOPT_COPY_STR(config->args, where, "-input_label", "inputWarpRun.label", "==");
    1271     PXOPT_COPY_STR(config->args, where, "-template_label", "templateWarpRun.label", "==");
    1272     PXOPT_COPY_F32(config->args, where, "-timediff",
     1264    psMetadata *selectWhere = psMetadataAlloc();
     1265    psMetadata *insertWhere = psMetadataAlloc();
     1266
     1267    // Restrictions for selecting warps
     1268    PXOPT_COPY_S64(config->args, selectWhere, "-warp_id", "inputWarpRun.warp_id", "==");
     1269    PXOPT_COPY_S64(config->args, selectWhere, "-exp_id", "inputRawExp.exp_id", "==");
     1270    PXOPT_COPY_STR(config->args, selectWhere, "-filter", "inputRawExp.filter", "==");
     1271    PXOPT_COPY_STR(config->args, selectWhere, "-input_label", "inputWarpRun.label", "==");
     1272    PXOPT_COPY_STR(config->args, selectWhere, "-template_label", "templateWarpRun.label", "==");
     1273    PXOPT_COPY_F32(config->args, selectWhere, "-timediff",
    12731274                   "ABS(TIME_TO_SEC(TIMEDIFF(inputRawExp.dateobs, templateRawExp.dateobs)))", "<=");
    1274     PXOPT_COPY_F32(config->args, where, "-rotdiff", "ABS(inputRawExp.posang - templateRawExp.posang)", "<=");
     1275    PXOPT_COPY_F32(config->args, selectWhere, "-rotdiff", "ABS(inputRawExp.posang - templateRawExp.posang)", "<=");
     1276
     1277    // Restrictions for inserting skycells
     1278    PXOPT_COPY_F32(config->args, insertWhere, "-good_frac", "inputWarpSkyfile.good_frac", ">=");
     1279    PXOPT_COPY_F32(config->args, insertWhere, "-good_frac", "templateWarpSkyfile.good_frac", ">=");
    12751280
    12761281    // Additional controls
     
    12941299    psString whereClause = NULL; // The WHERE part of the query
    12951300
    1296     if (psListLength(where->list)) {
    1297         psString new = psDBGenerateWhereConditionSQL(where, NULL);
     1301    if (psListLength(selectWhere->list)) {
     1302        psString new = psDBGenerateWhereConditionSQL(selectWhere, NULL);
    12981303        psStringAppend(&whereClause, "\n%s %s", whereClause ? "AND" : "WHERE", new);
    12991304        psFree(new);
    13001305    }
    1301     psFree(where);
     1306    psFree(selectWhere);
    13021307
    13031308    if (!rerun) {
     
    13131318        psFree(select);
    13141319        psFree(whereClause);
     1320        psFree(insertWhere);
    13151321        return false;
    13161322    }
     
    13221328        psFree(select);
    13231329        psFree(whereClause);
     1330        psFree(insertWhere);
    13241331        if (!psDBRollback(config->dbh)) {
    13251332            psError(PS_ERR_UNKNOWN, false, "database error");
     
    13471354            psError(PS_ERR_UNKNOWN, false, "database error");
    13481355        }
     1356        psFree(insertWhere);
    13491357        return false;
    13501358    }
     
    13521360        psTrace("difftool", 1, "no rows found");
    13531361        psFree(results);
     1362        psFree(insertWhere);
    13541363        if (!psDBCommit(config->dbh)) {
    13551364            psError(PS_ERR_UNKNOWN, false, "database error");
     
    13601369
    13611370    psString insert = pxDataGet("difftool_definewarpwarp_insert.sql"); // Insertion for each new run
     1371
     1372    if (psListLength(insertWhere->list)) {
     1373        psString whereClause = psDBGenerateWhereConditionSQL(insertWhere, NULL);
     1374        psStringAppend(&insert, "\n%s", whereClause);
     1375        psFree(whereClause);
     1376    }
     1377    psFree(insertWhere);
    13621378
    13631379    psArray *list = psArrayAllocEmpty(16); // List of runs defined, to print
  • trunk/ippTools/src/difftoolConfig.c

    r23502 r23506  
    174174    psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-input_label", 0, "search by warp label for input", NULL);
    175175    psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-template_label", 0, "search by warp label for template", NULL);
     176    psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-good_frac", 0, "minimum good fraction of skycell", NAN);
    176177    psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL);
    177178    psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-label",  0, "define label", NULL);
Note: See TracChangeset for help on using the changeset viewer.