IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 18322


Ignore:
Timestamp:
Jun 25, 2008, 2:21:25 PM (18 years ago)
Author:
eugene
Message:

move argument defines to detselect.h, added addWhereStrAlias, added -type as alias for -det_type

Location:
trunk/ippTools/src
Files:
2 edited

Legend:

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

    r9392 r18322  
    3131pxConfig *detselectConfig(pxConfig *config, int argc, char **argv);
    3232
     33#define addWhereStr(name) \
     34{ \
     35    psString str = NULL; \
     36    bool status = false; \
     37    if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
     38        if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\
     39            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     40            psFree(config); \
     41            return NULL; \
     42        } \
     43    } \
     44}
     45
     46#define addWhereStrAlias(name,realname) \
     47{ \
     48    psString str = NULL; \
     49    bool status = false; \
     50    if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
     51        if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #realname, 0, "==", str)) {\
     52            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     53            psFree(config); \
     54            return NULL; \
     55        } \
     56    } \
     57}
     58
     59#define addWhereS32(name) \
     60{ \
     61    psS32 s32 = 0; \
     62    bool status = false; \
     63    if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \
     64        if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \
     65            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     66            psFree(config); \
     67            return NULL; \
     68        } \
     69    } \
     70}
     71
     72#define addWhereF32(name) \
     73{ \
     74    psF32 var = 0; \
     75    bool status = false; \
     76    if ((var = psMetadataLookupF32(&status, config->args, "-" #name))) { \
     77        if (!isnan(var)) { \
     78            if (!psMetadataAddF32(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \
     79                psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     80                psFree(config); \
     81                return NULL; \
     82            } \
     83        } \
     84    } \
     85}
     86
     87#define addWhereF64(name) \
     88{ \
     89    psF64 var = 0; \
     90    bool status = false; \
     91    if ((var = psMetadataLookupF64(&status, config->args, "-" #name))) { \
     92        if (!isnan(var))  { \
     93            if (!psMetadataAddF64(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \
     94                psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     95                psFree(config); \
     96                return NULL; \
     97            } \
     98        } \
     99    } \
     100}
     101
     102#define addWhereTimeStr(name) \
     103{ \
     104    psString str = NULL; \
     105    bool status = false; \
     106    if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
     107        psTime *time = psTimeFromISO(str, PS_TIME_UTC); \
     108        if (!time) { \
     109            psError(PS_ERR_UNKNOWN, false, "failed to convert " #name " into a psTime object"); \
     110            psFree(config); \
     111            return NULL; \
     112        } \
     113        psMetadataItem *item = psMetadataLookup(config->args, "-" #name); \
     114        if (item) { \
     115            str = item->comment; \
     116        } else { \
     117            str = NULL; \
     118        } \
     119        if (!psMetadataAddTime(config->where, PS_LIST_TAIL, #name, 0, str, time)) {\
     120            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     121            psFree(config); \
     122            return NULL; \
     123        } \
     124        psFree(time); \
     125    } \
     126}
     127
    33128#endif // DETSELECT_H
  • trunk/ippTools/src/detselectConfig.c

    r18172 r18322  
    4747    psMetadata *searchArgs = psMetadataAlloc();
    4848    psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-inst", 0,
    49             "search by camera", NULL);
     49                     "search by camera", NULL);
    5050    psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-telescope", 0,
    51             "search by telescope", NULL);
     51                     "search by telescope", NULL);
    5252    psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-det_type", 0,
    53             "search by detrend type", NULL);
     53                     "search by detrend type", NULL);
     54    psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-type", 0,
     55                     "search by detrend type (alias for -det_type)", NULL);
    5456    psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-filter", 0,
    55             "search by filter", NULL);
     57                     "search by filter", NULL);
    5658    psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-airmass", 0,
    57             "define airmass", NAN);
     59                     "define airmass", NAN);
    5860    psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-exp_time", 0,
    59             "search by exposure time", NAN);
     61                     "search by exposure time", NAN);
    6062    psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-ccd_temp", 0,
    61             "search by ccd tempature", NAN);
     63                     "search by ccd tempature", NAN);
    6264    psMetadataAddF64(searchArgs, PS_LIST_TAIL, "-posang", 0,
    63             "search by rotator position angle", NAN);
     65                     "search by rotator position angle", NAN);
    6466    psMetadataAddTime(searchArgs, PS_LIST_TAIL, "-time", 0,
    65             "define time for desired detrend data", NULL);
     67                      "define time for desired detrend data", NULL);
    6668    psMetadataAddBool(searchArgs, PS_LIST_TAIL, "-simple",  0,
    67             "use the simple output format", false);
     69                      "use the simple output format", false);
    6870    psMetadataAddBool(searchArgs, PS_LIST_TAIL, "-unlimit",  0,
    69             "list all possible detruns, not just the best match", false);
     71                      "list all possible detruns, not just the best match", false);
    7072 
    7173    // -select
    7274    psMetadata *selectArgs = psMetadataAlloc();
    7375    psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-det_id", 0,
    74             "search by detrend ID", NULL);
     76                     "search by detrend ID", NULL);
    7577    psMetadataAddS32(selectArgs, PS_LIST_TAIL, "-iteration", 0,
    76             "search by iteration number", 0);
     78                     "search by iteration number", 0);
    7779    psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-class_id", 0,
    78             "search by class ID", NULL);
     80                     "search by class ID", NULL);
    7981    psMetadataAddBool(selectArgs, PS_LIST_TAIL, "-simple",  0,
    80             "use the simple output format", false);
     82                      "use the simple output format", false);
    8183   
    8284    psMetadata *argSets = psMetadataAlloc();
     
    98100
    99101    // setup search criterion
    100 #define addWhereStr(name) \
    101 { \
    102     psString str = NULL; \
    103     bool status = false; \
    104     if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
    105         if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\
    106             psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
    107             psFree(config); \
    108             return NULL; \
    109         } \
    110     } \
    111 }
    112 
    113 #define addWhereS32(name) \
    114 { \
    115     psS32 s32 = 0; \
    116     bool status = false; \
    117     if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \
    118         if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \
    119             psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
    120             psFree(config); \
    121             return NULL; \
    122         } \
    123     } \
    124 }
    125 
    126 #define addWhereF32(name) \
    127 { \
    128     psF32 var = 0; \
    129     bool status = false; \
    130     if ((var = psMetadataLookupF32(&status, config->args, "-" #name))) { \
    131         if (!isnan(var)) { \
    132             if (!psMetadataAddF32(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \
    133                 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
    134                 psFree(config); \
    135                 return NULL; \
    136             } \
    137         } \
    138     } \
    139 }
    140 
    141 #define addWhereF64(name) \
    142 { \
    143     psF64 var = 0; \
    144     bool status = false; \
    145     if ((var = psMetadataLookupF64(&status, config->args, "-" #name))) { \
    146         if (!isnan(var))  { \
    147             if (!psMetadataAddF64(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \
    148                 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
    149                 psFree(config); \
    150                 return NULL; \
    151             } \
    152         } \
    153     } \
    154 }
    155 
    156 #define addWhereTimeStr(name) \
    157 { \
    158     psString str = NULL; \
    159     bool status = false; \
    160     if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
    161         psTime *time = psTimeFromISO(str, PS_TIME_UTC); \
    162         if (!time) { \
    163             psError(PS_ERR_UNKNOWN, false, "failed to convert " #name " into a psTime object"); \
    164             psFree(config); \
    165             return NULL; \
    166         } \
    167         psMetadataItem *item = psMetadataLookup(config->args, "-" #name); \
    168         if (item) { \
    169             str = item->comment; \
    170         } else { \
    171             str = NULL; \
    172         } \
    173         if (!psMetadataAddTime(config->where, PS_LIST_TAIL, #name, 0, str, time)) {\
    174             psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
    175             psFree(config); \
    176             return NULL; \
    177         } \
    178         psFree(time); \
    179     } \
    180 }
    181 
    182102    // generate SQL where clause
    183103    config->where = psMetadataAlloc();
     
    186106    addWhereS32(iteration);
    187107    addWhereStr(exp_id);
    188     // convert '-inst' to 'camera'
    189     {
    190         psString str = NULL;
    191         bool status = false;
    192         if ((str = psMetadataLookupStr(&status, config->args, "-inst"))) {
    193             if (!psMetadataAddStr(config->where, PS_LIST_TAIL, "camera", 0, "==", str)) {
    194                 psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    195                 psFree(config);
    196                 return NULL;
    197             }
    198         }
    199     }
     108    addWhereStrAlias(inst,camera);
     109
    200110    addWhereStr(telescope);
    201111    addWhereStr(det_type);
     112    addWhereStrAlias(type,det_type);
     113
    202114    addWhereStr(exp_type);
    203115    addWhereS32(imfiles);
     
    205117    addWhereStr(class_id);
    206118    addWhereStr(filter);
    207 //    addWhereF32(exp_time);
    208 //    addWhereF64(ccd_temp);
    209 //    addWhereF32(airmass);
    210 //    addWhereTimeStr(use_begin);
    211 //    addWhereTimeStr(use_end);
     119
     120    //    addWhereF32(exp_time);
     121    //    addWhereF64(ccd_temp);
     122    //    addWhereF32(airmass);
     123    //    addWhereTimeStr(use_begin);
     124    //    addWhereTimeStr(use_end);
    212125
    213126    if (config->where->list->n < 1) {
Note: See TracChangeset for help on using the changeset viewer.