IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 9957


Ignore:
Timestamp:
Nov 13, 2006, 12:36:32 PM (20 years ago)
Author:
jhoblitt
Message:

fix lost -definebyquery options
first pass implementation of -definebydetrun input exp filtering

Location:
trunk/ippTools/src
Files:
2 edited

Legend:

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

    r9947 r9957  
    968968    }
    969969
     970    // create a metadata to restrict detInputExp's be in in the specified range
     971
     972    psMetadata *time_filter = psMetadataAlloc();
     973
     974    {
     975        psString timeStr = psMetadataLookupStr(&status, config->args, "-filter_exp_begin");
     976        if (!status) {
     977            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filter_exp_begin");
     978            return false;
     979        }
     980        // pass through NULL as this is an optional field
     981        if (timeStr) {
     982            psTime *time = psTimeFromISO(timeStr, PS_TIME_UTC);
     983            if (!psMetadataAddTime(time_filter, PS_LIST_TAIL, "dateobs", 0, "==", time)) {
     984                psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs");
     985                psFree(time);
     986                psFree(time_filter);
     987                return false;
     988            }
     989            psFree(time);
     990        }
     991    }
     992
     993    {
     994        psString timeStr = psMetadataLookupStr(&status, config->args, "-filter_exp_end");
     995        if (!status) {
     996            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filter_exp_end");
     997            return false;
     998        }
     999        // pass through NULL as this is an optional field
     1000        if (timeStr) {
     1001            psTime *time = psTimeFromISO(timeStr, PS_TIME_UTC);
     1002            if (!psMetadataAddTime(time_filter, PS_LIST_TAIL, "dateobs", 0, "==", time)) {
     1003                psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs");
     1004                psFree(time);
     1005                psFree(time_filter);
     1006                return false;
     1007            }
     1008            psFree(time);
     1009        }
     1010    }
     1011
     1012
    9701013    // start a transaction so we don't end up with orphaned det_ids
    9711014    if (!psDBTransaction(config->dbh)) {
    9721015        psError(PS_ERR_UNKNOWN, false, "database error");
     1016        psFree(time_filter);
    9731017        psFree(detRun);
    9741018        return false;
     
    9811025            psError(PS_ERR_UNKNOWN, false, "database error");
    9821026        }
     1027        psFree(time_filter);
    9831028        psFree(detRun);
    9841029        return false;
     
    9891034    long newDet_id = psDBLastInsertID(config->dbh);
    9901035
    991     char *query =
     1036    psString query = psStringCopy(
    9921037        "INSERT INTO detInputExp"
    9931038        "   SELECT"
     
    9971042        "       detResidExp.accept"
    9981043        "   FROM detResidExp"
    999         "   WHERE det_id = %d";
     1044        "   JOIN rawDetrendExp"
     1045        "       USING(exp_tag)"
     1046        "   WHERE det_id = %d"
     1047    );
     1048
     1049    if (time_filter->list->n) {
     1050        psString whereClause = psDBGenerateWhereConditionSQL(time_filter, "rawDetrendExp");
     1051        psStringAppend(&query, " AND %s", whereClause);
     1052        psFree(whereClause);
     1053    }
     1054    psFree(time_filter);
    10001055
    10011056    if (!p_psDBRunQuery(config->dbh, query, (psS32)newDet_id, (psS32)atoi(det_id))) {
    10021057        psError(PS_ERR_UNKNOWN, false, "database error");
    1003         return false;
    1004     }
     1058        psFree(query);
     1059        return false;
     1060    }
     1061    psFree(query);
    10051062
    10061063    // point of no return for det_id creation
  • trunk/ippTools/src/dettoolConfig.c

    r9946 r9957  
    9595    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-det_id",  0,
    9696            "det ID to base the new detrun on (required)", NULL);
     97    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-det_type",  0,
     98            "define the type of detrend run (required)", NULL);
     99    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_type",  0,
     100            "search for exp_type", NULL);
     101    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-inst",  0,
     102            "search for camera", NULL);
     103    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-telescope",  0,
     104            "search for telescope", NULL);
     105    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filter",  0,
     106            "search for filter", NULL);
     107    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-uri",  0,
     108            "search for uri", NULL);
    97109    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_exp_type",  0,
    98         "define exposure type", NULL);
     110            "define exposure type", NULL);
    99111    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_filter",  0,
    100         "define filter ", NULL);
     112            "define filter ", NULL);
    101113    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-set_airmass",  0,
    102         "define airmass", NAN);
     114            "define airmass", NAN);
    103115    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-set_exp_time",  0,
    104         "define exposure time", NAN);
     116            "define exposure time", NAN);
    105117    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-set_ccd_temp",  0,
    106         "define ccd tempature", NAN);
     118            "define ccd tempature", NAN);
    107119    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-set_posang",  0,
    108         "define rotator position angle", NAN);
     120            "define rotator position angle", NAN);
    109121    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_object",  0,
    110         "define exposure object", NULL);
     122            "define exposure object", NULL);
    111123    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_registered",  0,
    112         "time detrend run was registered", now);
     124            "time detrend run was registered", now);
    113125    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_use_begin",  0,
    114         "start of detrend run applicable peroid", NULL);
     126            "start of detrend run applicable peroid", NULL);
    115127    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_use_end",  0,
    116         "end of detrend run applicable peroid", NULL);
     128            "end of detrend run applicable peroid", NULL);
    117129    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple",  0,
    118130            "use the simple output format", false);
     
    142154    psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_use_end",  0,
    143155        "end of detrend run applicable peroid", NULL);
     156    psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-filter_exp_begin",  0,
     157        "filter input detrun exp to be in this peroid", NULL);
     158    psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-filter_exp_end",  0,
     159        "filter input detrun exp to be in this peroid", NULL);
    144160    psMetadataAddBool(definebydetrunArgs, PS_LIST_TAIL, "-simple",  0,
    145161            "use the simple output format", false);
Note: See TracChangeset for help on using the changeset viewer.