IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 21, 2013, 1:44:26 PM (13 years ago)
Author:
bills
Message:

tweaks to release tables. Further progress on releasetool

File:
1 edited

Legend:

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

    r35152 r35196  
    201201        return false;
    202202    }
    203     PXOPT_LOOKUP_STR(release_state,       config->args, "-set_release_state",  true, false);
     203    PXOPT_LOOKUP_STR(release_state,    config->args, "-set_release_state",  false, false);
     204    PXOPT_LOOKUP_S32(priority,         config->args, "-set_priority",  false, false);
     205    if (!release_state && !priority) {
     206        psError(PXTOOLS_ERR_CONFIG, true, "at least one of -set_release_staate and -set_priority is required\n");
     207        return false;
     208    }
    204209
    205210    psMetadata *where = psMetadataAlloc();
     
    208213    PXOPT_COPY_STR(config->args, where, "-releaseName", "releaseName", "==");
    209214
    210     psString query = NULL;
    211     psStringAppend(&query, "UPDATE ippRelease SET release_state = '%s'", release_state);
     215    psString sep = "";
     216    psString comma = ", ";
     217    psString query = psStringCopy("UPDATE ippRelease SET");
     218    if (release_state) {
     219        psStringAppend(&query, "%s release_state = '%s'", sep, release_state);
     220        sep = comma;
     221    }
     222    if (priority != 0) {
     223        psStringAppend(&query, "%s priority = %d", sep, priority);
     224        sep = comma;
     225    }
    212226
    213227    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     
    334348    PXOPT_LOOKUP_STR(state, config->args,     "-set_state", true, false);
    335349    PXOPT_LOOKUP_U32(flags, config->args,     "-set_flags", false, false);
     350    PXOPT_LOOKUP_F32(zpt_obs, config->args,   "-set_zpt_obs", false, false);
     351    PXOPT_LOOKUP_F32(zpt_stdev, config->args, "-set_zpt_stdev", false, false);
    336352    PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false);
     353    PXOPT_LOOKUP_S16(fault, config->args,     "-set_fault", false, false);
    337354
    338355    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     
    398415        psS64 chip_id = psMetadataLookupS64(&status, md, "chip_id");
    399416        psS64 cam_id = psMetadataLookupS64(&status, md, "cam_id");
    400         psF32 zpt_obs = psMetadataLookupF32(&status, md, "zpt_obs");
    401         psF32 zpt_stdev = psMetadataLookupF32(&status, md, "zpt_stdev");
     417        // if zpt_obs or zpt_stdev were not supplied use the results from the camRun
     418        if (!isfinite(zpt_obs)) {
     419            zpt_obs = psMetadataLookupF32(&status, md, "zpt_obs");
     420        }
     421        if (!isfinite(zpt_stdev)) {
     422            zpt_stdev = psMetadataLookupF32(&status, md, "zpt_stdev");
     423        }
    402424
    403425        if (!relExpInsert(config->dbh,
     
    412434            zpt_stdev,
    413435            path_base,
     436            fault,
    414437            now,       // registered
    415438            now        // time_stamp
     
    546569    psMetadata *where = psMetadataAlloc();
    547570
    548     PXOPT_COPY_STR(config->args, where, "-label",      "skycalRun.label", "==");
    549     PXOPT_COPY_STR(config->args, where, "-data_group", "skycalRun.data_group", "==");
    550     PXOPT_COPY_S64(config->args, where, "-skycal_id",  "skcalRun.skycal_id", "==");
    551 
    552     // Insure that at least one of the skcalRun selectors is supplied
     571    bool includeSkycal = false;
     572
     573    PXOPT_COPY_S64(config->args, where, "-skycal_id",  "skycalRun.skycal_id", "==");
     574    PXOPT_COPY_STR(config->args, where, "-skycal_label", "skycalRun.label", "==");
     575    PXOPT_COPY_STR(config->args, where, "-skycal_data_group", "skycalRun.data_group", "==");
     576    if (psListLength(where->list)) {
     577        includeSkycal = true;
     578    }
     579
     580    PXOPT_COPY_STR(config->args, where, "-label",      "stackRun.label", "==");
     581    PXOPT_COPY_STR(config->args, where, "-data_group", "stackRun.data_group", "==");
     582    PXOPT_COPY_S64(config->args, where, "-stack_id",   "stackRun.stack_id", "==");
     583
     584    // Insure that at least one of the skycalRun selectors is supplied
    553585    if (!psListLength(where->list)) {
    554586        psFree(where);
     
    557589    }
    558590
    559     PXOPT_COPY_S64(config->args, where, "-stack_id",   "stackRun.stack_id", "==");
    560     PXOPT_COPY_STR(config->args, where, "-tess_id",    "stackRun.tess_id", "==");
    561     PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "==");
     591    // PXOPT_COPY_STR(config->args, where, "-tess_id",    "stackRun.tess_id", "==");
     592    // PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "==");
    562593
    563594    // insure that at least one of these is supplied to select the release
     
    580611    PXOPT_LOOKUP_F32(zpt_obs, config->args,   "-set_zpt_obs", false, false);
    581612    PXOPT_LOOKUP_F32(zpt_stdev, config->args, "-set_zpt_stdev", false, false);
    582     PXOPT_LOOKUP_F32(fwhm_major, config->args, "-set_fwhm_major", false, false);
    583613    PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false);
     614    PXOPT_LOOKUP_S16(fault, config->args,     "-set_fault", false, false);
    584615
    585616    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     
    587618
    588619    // find the parameters of all the exposures that we want to add to the release
    589     psString query = pxDataGet("releasetool_definerelstack.sql");
     620    psString query;
     621   
     622    if (includeSkycal) {
     623        query = pxDataGet("releasetool_definerelstack_with_skycal.sql");
     624    } else {
     625        query = pxDataGet("releasetool_definerelstack.sql");
     626    }
    590627    if (!query) {
    591628        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     
    620657    if (pretend) {
    621658        // negative simple so the default is true
    622         if (!ippdbPrintMetadatas(stdout, output, "chipRun", !simple)) {
     659        if (!ippdbPrintMetadatas(stdout, output, "relstack", !simple)) {
    623660            psError(PS_ERR_UNKNOWN, false, "failed to print array");
    624661            psFree(output);
     
    642679        bool status = true;
    643680        psS32 rel_id = psMetadataLookupS32(&status, md, "rel_id");
     681        psS64 stack_id = psMetadataLookupS64(&status, md, "stack_id");
    644682        psS64 skycal_id = psMetadataLookupS64(&status, md, "skycal_id");
    645683        psString skycell_id = psMetadataLookupStr(&status, md, "skycell_id");
    646684        psString tess_id = psMetadataLookupStr(&status, md, "tess_id");
    647         psString state = psMetadataLookupStr(&status, md, "state");
     685        psString filter = psMetadataLookupStr(&status, md, "filter");
    648686
    649687        // use skycal zero point measurement if not supplied with arguments
    650688        psF32 sc_zpt_obs = psMetadataLookupF32(&status, md, "zpt_obs");
    651689        psF32 sc_zpt_stdev = psMetadataLookupF32(&status, md, "zpt_stdev");
     690        psF32 stack_mjd_obs = psMetadataLookupF32(&status, md, "mjd_obs");
     691
     692        psU32 mjd_obs = 0;
     693        if (!strcmp(stack_type, "nightly")) {
     694            // only for nightly stacks do we set mjd_obs to a non zero value
     695            // We use integer day because this is part of the key that is used
     696            // to make sure entries are unique
     697            //      KEY (rel_id, tess_id, skycell_id, filter, mjd_obs),
     698            // 1 entry per release, skycell, filter and mjd_obs.
     699            // mjd_obs is zero for deep and reference stacks
     700            mjd_obs = (psU32) stack_mjd_obs;
     701        }
    652702
    653703        if (!relStackInsert(config->dbh,
    654704            0,          // relstack_id (auto increment)
    655705            rel_id,
     706            stack_id,
    656707            skycal_id,
    657708            skycell_id,
    658709            tess_id,
     710            filter,
    659711            state,
    660712            flags,
    661713            stack_type,
    662             isfinite(zpt_obs)  ? zpt_obs : sc_zpt_obs,
     714            isfinite(zpt_obs)   ? zpt_obs  : sc_zpt_obs,
    663715            isfinite(zpt_stdev) ? zpt_stdev : sc_zpt_stdev,
    664             fwhm_major,
     716            mjd_obs,
    665717            path_base,
     718            fault,
    666719            now,       // registered
    667720            now        // time_stamp
     
    671724            }
    672725            psError(PS_ERR_UNKNOWN, false,
    673                     "failed to trying to insert relExp for skycal_id %" PRId64, skycal_id);
     726                    "failed to trying to insert relStack for stack_id %" PRId64, stack_id);
    674727            psFree(output);
    675728            psFree(now);
     
    705758    PXOPT_COPY_TIME(config->args, where, "-dateobs_begin","rawExp.dateobs", ">=");
    706759    PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<=");
    707     PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "camProcessedExp.fwhm_major", ">=");
    708     PXOPT_COPY_F32(config->args, where, "-fwhm_max",    "camProcessedExp.fwhm_major", "<=");
    709     PXOPT_COPY_STR(config->args, where, "-exp_name",    "rawExp.exp_name", "==");
     760    PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "skycalResult.fwhm_major", ">=");
     761    PXOPT_COPY_F32(config->args, where, "-fwhm_max",    "skycalresult.fwhm_major", "<=");
     762    PXOPT_COPY_STR(config->args, where, "-exp_name",    "rawExp.exp_ame", "==");
    710763    PXOPT_COPY_S64(config->args, where, "-exp_id",      "relExp.exp_id", "==");
    711764    PXOPT_COPY_S64(config->args, where, "-chip_id",     "relExp.chip_id", "==");
Note: See TracChangeset for help on using the changeset viewer.