IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14242


Ignore:
Timestamp:
Jul 16, 2007, 3:23:56 PM (19 years ago)
Author:
jhoblitt
Message:

add dettool -normalizedstat
add dettool -revertnormalizedstat

Location:
trunk/ippTools
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/share/Makefile.am

    r14241 r14242  
    1414        detselect_select.sql \
    1515        dettool_find_completed_runs.sql \
     16        dettool_normalizedstat.sql
    1617        dettool_raw.sql \
    17         dettool_start_new_iteration.sql \
     18        dettool_revertnormalizedstat.sql \
    1819        dettool_revertprocessedexp.sql \
    1920        dettool_revertprocessedimfile.sql \
    2021        dettool_revertstacked.sql \
     22        dettool_start_new_iteration.sql \
    2123        dettool_todetrunsummary.sql \
    2224        dettool_tonormalizedexp.sql \
  • trunk/ippTools/src/dettool.c

    r14241 r14242  
    5151static bool processedexpMode(pxConfig *config);
    5252static bool revertprocessedexpMode(pxConfig *config);
    53 // stacked
     53// stacked[imfile]
    5454static bool tostackedMode(pxConfig *config);
    5555static bool addstackedMode(pxConfig *config);
    5656static bool stackedMode(pxConfig *config);
    5757static bool revertstackedMode(pxConfig *config);
    58 
     58// normalizedstat
     59static bool tonormalizedstatMode(pxConfig *config);
     60static bool addnormalizedstatMode(pxConfig *config);
     61static bool normalizedstatMode(pxConfig *config);
     62static bool revertnormalizedstatMode(pxConfig *config);
     63// normalizedimfile
    5964static bool tonormalizeMode(pxConfig *config);
    60 static bool addnormalizedstatMode(pxConfig *config);
    61 static bool tonormalizedstatMode(pxConfig *config);
    6265static bool addnormalizedimfileMode(pxConfig *config);
    6366static bool tonormalizedexpMode(pxConfig *config);
     
    135138        MODECASE(DETTOOL_MODE_STACKED,          stackedMode);
    136139        MODECASE(DETTOOL_MODE_REVERTSTACKED,    revertstackedMode);
    137 
     140        // normalizedstat
     141        MODECASE(DETTOOL_MODE_TONORMALIZEDSTAT, tonormalizedstatMode);
     142        MODECASE(DETTOOL_MODE_ADDNORMALIZEDSTAT,addnormalizedstatMode);
     143        MODECASE(DETTOOL_MODE_NORMALIZEDSTAT,   normalizedstatMode);
     144        MODECASE(DETTOOL_MODE_REVERTNORMALIZEDSTAT, revertnormalizedstatMode);
     145        // normalizedimfile
    138146        MODECASE(DETTOOL_MODE_TONORMALIZE,      tonormalizeMode);
    139         MODECASE(DETTOOL_MODE_ADDNORMALIZEDSTAT,addnormalizedstatMode);
    140         MODECASE(DETTOOL_MODE_TONORMALIZEDSTAT, tonormalizedstatMode);
    141147        MODECASE(DETTOOL_MODE_ADDNORMALIZEDIMFILE,addnormalizedimfileMode);
    142148        MODECASE(DETTOOL_MODE_NORMALIZEDIMFILE, normalizedimfileMode);
     
    35203526        code
    35213527    );
     3528}
     3529
     3530
     3531static bool normalizedstatMode(pxConfig *config)
     3532{
     3533    PS_ASSERT_PTR_NON_NULL(config, false);
     3534
     3535    bool status = false;
     3536    psU64 limit = psMetadataLookupU64(&status, config->args, "-limit");
     3537    if (!status) {
     3538        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -limit");
     3539        return false;
     3540    }
     3541
     3542    bool faulted = psMetadataLookupU64(&status, config->args, "-faulted");
     3543    if (!status) {
     3544        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -faulted");
     3545        return false;
     3546    }
     3547
     3548    psString query = pxDataGet("dettool_normalizedstat.sql");
     3549    if (!query) {
     3550        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     3551        return false;
     3552    }
     3553
     3554    if (faulted) {
     3555        // list only faulted rows
     3556        psStringAppend(&query, " %s", "WHERE fault != 0");
     3557    } else {
     3558        // don't list faulted rows
     3559        psStringAppend(&query, " %s", "WHERE fault = 0");
     3560    }
     3561
     3562    if (config->where) {
     3563        psString whereClause = psDBGenerateWhereConditionSQL(config->where, NULL);
     3564        psStringAppend(&query, " AND %s", whereClause);
     3565        psFree(whereClause);
     3566    }
     3567
     3568    // treat limit == 0 as "no limit"
     3569    if (limit) {
     3570        psString limitString = psDBGenerateLimitSQL(limit);
     3571        psStringAppend(&query, " %s", limitString);
     3572        psFree(limitString);
     3573    }
     3574
     3575    if (!p_psDBRunQuery(config->dbh, query)) {
     3576        psError(PS_ERR_UNKNOWN, false, "database error");
     3577        psFree(query);
     3578        return false;
     3579    }
     3580    psFree(query);
     3581
     3582    psArray *output = p_psDBFetchResult(config->dbh);
     3583    if (!output) {
     3584        psError(PS_ERR_UNKNOWN, false, "database error");
     3585        return false;
     3586    }
     3587    if (!psArrayLength(output)) {
     3588        psTrace("dettool", PS_LOG_INFO, "no rows found");
     3589        psFree(output);
     3590        return true;
     3591    }
     3592
     3593    bool simple = false;
     3594    {
     3595        bool status = false;
     3596        simple = psMetadataLookupBool(&status, config->args, "-simple");
     3597        if (!status) {
     3598            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple");
     3599            psFree(output);
     3600            return false;
     3601        }
     3602    }
     3603
     3604    // negative simple so the default is true
     3605    if (!ippdbPrintMetadatas(stdout, output, "detNormalizedStatImfile", !simple)) {
     3606        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     3607        psFree(output);
     3608        return false;
     3609    }
     3610
     3611    psFree(output);
     3612
     3613    return true;
     3614}
     3615
     3616static bool revertnormalizedstatMode(pxConfig *config)
     3617{
     3618    PS_ASSERT_PTR_NON_NULL(config, false);
     3619
     3620    psString query = pxDataGet("dettool_revertnormalizedstat.sql");
     3621    if (!query) {
     3622        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     3623        return false;
     3624    }
     3625
     3626    if (config->where) {
     3627        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detNormalizedStatImfile");
     3628        psStringAppend(&query, " AND %s", whereClause);
     3629        psFree(whereClause);
     3630    }
     3631
     3632    if (!p_psDBRunQuery(config->dbh, query)) {
     3633        psError(PS_ERR_UNKNOWN, false, "database error");
     3634        psFree(query);
     3635        return false;
     3636    }
     3637    psFree(query);
     3638
     3639    if (psDBAffectedRows(config->dbh) < 1) {
     3640        psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row");
     3641        return false;
     3642    }
     3643
     3644    return true;
    35223645}
    35233646
  • trunk/ippTools/src/dettool.h

    r14241 r14242  
    4545    DETTOOL_MODE_STACKED,
    4646    DETTOOL_MODE_REVERTSTACKED,
     47    DETTOOL_MODE_TONORMALIZEDSTAT,
     48    DETTOOL_MODE_ADDNORMALIZEDSTAT,
     49    DETTOOL_MODE_NORMALIZEDSTAT,
     50    DETTOOL_MODE_REVERTNORMALIZEDSTAT,
    4751    DETTOOL_MODE_TONORMALIZE,
    48     DETTOOL_MODE_ADDNORMALIZEDSTAT,
    49     DETTOOL_MODE_TONORMALIZEDSTAT,
    5052    DETTOOL_MODE_ADDNORMALIZEDIMFILE,
    5153    DETTOOL_MODE_NORMALIZEDIMFILE,
  • trunk/ippTools/src/dettoolConfig.c

    r14241 r14242  
    542542            "set fault code", 0);
    543543
     544    // -normalizedstat
     545    psMetadata *normalizedstatArgs = psMetadataAlloc();
     546    psMetadataAddStr(normalizedstatArgs, PS_LIST_TAIL, "-det_id",  0,
     547            "search by detrend ID", NULL);
     548    psMetadataAddS32(normalizedstatArgs, PS_LIST_TAIL, "-iteration",  0,
     549            "search by iteration number", 0);
     550    psMetadataAddStr(normalizedstatArgs, PS_LIST_TAIL, "-class_id",  0,
     551            "search by class ID", NULL);
     552    psMetadataAddU64(normalizedstatArgs, PS_LIST_TAIL, "-limit",  0,
     553            "limit result set to N items", 0);
     554    psMetadataAddBool(normalizedstatArgs, PS_LIST_TAIL, "-faulted",  0,
     555            "only return imfiles with a fault status set", false);
     556    psMetadataAddBool(normalizedstatArgs, PS_LIST_TAIL, "-simple",  0,
     557            "use the simple output format", false);
     558
     559    // -revertnormalizedstat
     560    psMetadata *revertnormalizedstatArgs= psMetadataAlloc();
     561    psMetadataAddStr(revertnormalizedstatArgs, PS_LIST_TAIL, "-det_id",  0,
     562            "search by detrend ID (required)", NULL);
     563    psMetadataAddS32(revertnormalizedstatArgs, PS_LIST_TAIL, "-iteration",  0,
     564            "search by iteration number", 0);
     565    psMetadataAddStr(revertnormalizedstatArgs, PS_LIST_TAIL, "-class_id",  0,
     566            "search by class ID", NULL);
     567    psMetadataAddS16(revertnormalizedstatArgs, PS_LIST_TAIL, "-code",  0,
     568            "search by fault code", 0);
     569
    544570    // -tonormstat
    545571    psMetadata *tonormstatArgs = psMetadataAlloc();
     
    9771003    PXTOOL_ADD_MODE("-tonormalize",     "", DETTOOL_MODE_TONORMALIZE,   tonormalizeArgs);
    9781004    PXTOOL_ADD_MODE("-addnormalizedstat",     "", DETTOOL_MODE_ADDNORMALIZEDSTAT,   addnormstatArgs);
     1005    PXTOOL_ADD_MODE("-normalizedstat",  "", DETTOOL_MODE_NORMALIZEDSTAT,   normalizedstatArgs);
     1006    PXTOOL_ADD_MODE("-revertnormalizedstat",  "", DETTOOL_MODE_REVERTNORMALIZEDSTAT,   revertnormalizedstatArgs);
     1007
    9791008    PXTOOL_ADD_MODE("-tonormalizedstat",      "", DETTOOL_MODE_TONORMALIZEDSTAT,    tonormstatArgs);
    9801009    PXTOOL_ADD_MODE("-addnormalizedimfile", "", DETTOOL_MODE_ADDNORMALIZEDIMFILE,addnormalizedimfileArgs);
Note: See TracChangeset for help on using the changeset viewer.