IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 23998


Ignore:
Timestamp:
Apr 29, 2009, 11:26:47 AM (17 years ago)
Author:
eugene
Message:

detRuns with NULL values for exp_time_min, etc should not constrain the selection (exp_time_min is NULL means no min exp_time limit)

File:
1 edited

Legend:

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

    r18561 r23998  
    7171}
    7272
     73# define PXOPT_COPY_NULLTEST_F32(from, to, oldname, newname, comment) \
     74{ \
     75    bool status = false; \
     76    psF32 var = psMetadataLookupF32(&status, from, oldname); \
     77    if (!status) { \
     78        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for " oldname); \
     79        return false; \
     80    } \
     81    if (!isnan(var)) { \
     82        if (!psMetadataAddF32(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, var)) { \
     83            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
     84            psFree(to); \
     85            return false; \
     86        } \
     87        if (!psMetadataAddTime(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, "==", NULL)) { \
     88            psError(PS_ERR_UNKNOWN, false, "failed to add NULL test " newname); \
     89            psFree(to); \
     90            return false; \
     91        } \
     92    } \
     93}
     94
    7395static bool searchMode(pxConfig *config)
    7496{
     
    89111
    90112    // airmass_min  < airmass  < airmass_max
    91     PXOPT_COPY_F32(config->args, where, "-airmass", "airmass_min", "<=");
    92     PXOPT_COPY_F32(config->args, where, "-airmass", "airmass_max", ">=");
     113    PXOPT_COPY_NULLTEST_F32(config->args, where, "-airmass", "airmass_min", "<=");
     114    PXOPT_COPY_NULLTEST_F32(config->args, where, "-airmass", "airmass_max", ">=");
    93115
    94116    // exp_time_min < exp_time < exp_time_max
    95     PXOPT_COPY_F32(config->args, where, "-exp_time", "exp_time_min", "<=");
    96     PXOPT_COPY_F32(config->args, where, "-exp_time", "exp_time_max", ">=");
     117    PXOPT_COPY_NULLTEST_F32(config->args, where, "-exp_time", "exp_time_min", "<=");
     118    PXOPT_COPY_NULLTEST_F32(config->args, where, "-exp_time", "exp_time_max", ">=");
    97119
    98120    // ccd_temp_min < ccd_temp < ccd_temp_max
    99     PXOPT_COPY_F32(config->args, where, "-ccd_temp", "ccd_temp_min", "<=");
    100     PXOPT_COPY_F32(config->args, where, "-ccd_temp", "ccd_temp_max", ">=");
     121    PXOPT_COPY_NULLTEST_F32(config->args, where, "-ccd_temp", "ccd_temp_min", "<=");
     122    PXOPT_COPY_NULLTEST_F32(config->args, where, "-ccd_temp", "ccd_temp_max", ">=");
    101123
    102124    PXOPT_COPY_F64(config->args, where, "-posang", "posang_min", "<=");
Note: See TracChangeset for help on using the changeset viewer.