IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37131


Ignore:
Timestamp:
Jul 28, 2014, 2:25:02 PM (12 years ago)
Author:
bills
Message:

add releasetool -setrelstackcalibratedfromskycal which for a given release and skycal identifier
(label, data_group, or skycal_id)
copies the zero point information from the skycalResult into the corresponding relStack(s) identified
relStack.stack_id = skycalRun.stack_id
For now only do this if the relStacks are in state processed. May want to revisit this in the
future so that say, skycal can be rerun.

Location:
trunk/ippTools
Files:
1 added
4 edited

Legend:

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

    r37122 r37131  
    487487        releasetool_deleterelstack.sql \
    488488        releasetool_listrelstack.sql \
     489        releasetool_setrelstackcalibratedfromskycal.sql
    489490        releasetool_summary.sql \
    490491        releasetool_definerelgroup_select_lap.sql \
  • trunk/ippTools/src/releasetool.c

    r37122 r37131  
    4747static bool definerelstackMode(pxConfig *config);
    4848static bool updaterelstackMode(pxConfig *config);
     49static bool setrelstackcalibratedfromskycalMode(pxConfig *config);
    4950static bool listrelstackMode(pxConfig *config);
    5051static bool deleterelstackMode(pxConfig *config);
     
    8788        MODECASE(RELEASETOOL_MODE_DEFINERELSTACK,   definerelstackMode);
    8889        MODECASE(RELEASETOOL_MODE_UPDATERELSTACK,   updaterelstackMode);
     90        MODECASE(RELEASETOOL_MODE_SETRELSTACKCALIBRATEDFROMSKYCAL, setrelstackcalibratedfromskycalMode);
    8991        MODECASE(RELEASETOOL_MODE_LISTRELSTACK,     listrelstackMode);
    9092        MODECASE(RELEASETOOL_MODE_DELETERELSTACK,   deleterelstackMode);
     
    10901092    return false;
    10911093}
     1094static bool setrelstackcalibratedfromskycalMode(pxConfig *config)
     1095{
     1096    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1097
     1098    psMetadata *where = psMetadataAlloc();
     1099
     1100    PXOPT_COPY_STR(config->args, where, "-skycal_label", "skycalRun.label", "==");
     1101    PXOPT_COPY_STR(config->args, where, "-skycal_data_group", "skycalRun.data_group", "LIKE");
     1102    PXOPT_COPY_S64(config->args, where, "-skycal_id",  "skycalRun.skycal_id", "==");
     1103    if (!psListLength(where->list)) {
     1104        psError(PXTOOLS_ERR_CONFIG, false, "at least one of -skycal_label, -skycal_data_group, or -skycal_id is required");
     1105        return false;
     1106    }
     1107
     1108    PXOPT_COPY_STR(config->args, where, "-tess_id",    "stackRun.tess_id", "==");
     1109    PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "==");
     1110    pxskycellAddWhere(config, where);
     1111
     1112    // insure that at least one of these is supplied to select the release
     1113    PXOPT_LOOKUP_S64(rel_id, config->args,      "-rel_id", false, false);
     1114    PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     1115    if (!rel_id && !release_name) {
     1116        psError(PXTOOLS_ERR_CONFIG, true, "either -rel_id or -release_name is required");
     1117        return false;
     1118    }
     1119
     1120    // limit query to the target release. (Note: this will select nothing if release_name and rel_id don't match)
     1121    // note: we add these after above to insure that search args are supplied
     1122    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
     1123    PXOPT_COPY_S32(config->args, where, "-rel_id", "ippRelease.rel_id", "==");
     1124
     1125    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1126
     1127    psString query = pxDataGet("releasetool_setrelstackcalibratedfromskycal.sql");
     1128    if (!query) {
     1129        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1130        psFree(where);
     1131        return false;
     1132    }
     1133
     1134    // Add in the where conditions
     1135    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1136    psStringAppend(&query, "\nAND %s", whereClause);
     1137    psFree(whereClause);
     1138
     1139    if (limit) {
     1140        psString limitString = psDBGenerateLimitSQL(limit);
     1141        psStringAppend(&query, " %s", limitString);
     1142        psFree(limitString);
     1143    }
     1144
     1145    if (!p_psDBRunQuery(config->dbh, query)) {
     1146        psError(PS_ERR_UNKNOWN, false, "database error");
     1147        psFree(query);
     1148        return false;
     1149    }
     1150    psFree(query);
     1151
     1152    psU64 affected = psDBAffectedRows(config->dbh);
     1153    psLogMsg("releasetool", PS_LOG_INFO, "Updated %" PRIu64 " relStack rows", affected);
     1154
     1155    return true;
     1156}
     1157
    10921158static bool deleterelstackMode(pxConfig *config)
    10931159{
  • trunk/ippTools/src/releasetool.h

    r37122 r37131  
    3737    RELEASETOOL_MODE_DEFINERELSTACK,
    3838    RELEASETOOL_MODE_UPDATERELSTACK,
     39    RELEASETOOL_MODE_SETRELSTACKCALIBRATEDFROMSKYCAL,
    3940    RELEASETOOL_MODE_DELETERELSTACK,
    4041    RELEASETOOL_MODE_TOCALIBSTACK,
  • trunk/ippTools/src/releasetoolConfig.c

    r37122 r37131  
    262262    psMetadata *updaterelstackArgs = psMetadataAlloc();
    263263
     264    psMetadata *calibraterelstackArgs = psMetadataAlloc();
     265
     266        // set the target release and collection of relStacks (one of these is required)
     267    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-release_name", 0, "define release name", NULL);
     268    psMetadataAddS32(calibraterelstackArgs, PS_LIST_TAIL,  "-rel_id", 0,      "define release ID", 0);
     269
     270        // select the processing
     271    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-skycal_label",  0, "select by skycalRun.label", NULL);
     272    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-skycal_data_group", 0,  "select by skycalRun.data_group", NULL);
     273    psMetadataAddS64(calibraterelstackArgs, PS_LIST_TAIL,  "-skycal_id", 0,      "select by skycalRun.skycal_id", 0);
     274
     275    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-tess_id", 0,  "select by tess_id", NULL);
     276    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-skycell_id", 0,  "select by skycell_id", NULL);
     277    pxskycellAddArguments(calibraterelstackArgs);
     278
     279    psMetadataAddU64(calibraterelstackArgs, PS_LIST_TAIL,  "-limit",   0, "limit result set to N items", 0);
     280
    264281    // -deleterelstack
    265282    psMetadata *deleterelstackArgs = psMetadataAlloc();
     
    380397    PXOPT_ADD_MODE("-listrelstack",       "list released stacks",      RELEASETOOL_MODE_LISTRELSTACK,    listrelstackArgs);
    381398    PXOPT_ADD_MODE("-updaterelstack",     "update parameters of released stacks",      RELEASETOOL_MODE_LISTRELSTACK,    updaterelstackArgs);
     399    PXOPT_ADD_MODE("-setrelstackcalibratedfromskycal", "update parameters of using skycalResults",      RELEASETOOL_MODE_SETRELSTACKCALIBRATEDFROMSKYCAL,    calibraterelstackArgs);
    382400    PXOPT_ADD_MODE("-deleterelstack",     "update parameters of released stacks",      RELEASETOOL_MODE_DELETERELSTACK,  deleterelstackArgs);
    383401
Note: See TracChangeset for help on using the changeset viewer.