IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 15, 2008, 10:30:59 AM (18 years ago)
Author:
eugene
Message:

completely deprecate config->where; make all command-line handling consistent; move nearly all sql into share/*.sql; ensure consistency between args supplied and used

File:
1 edited

Legend:

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

    r18336 r18561  
    4747    // -definebyquery
    4848    psMetadata *definebyqueryArgs = psMetadataAlloc();
    49     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0,
    50             "define workdir (required)", NULL);
    51     psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered",  0,
    52             "time detrend run was registered", now);
    53     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_skycell_id",  0,
    54             "search for skycell_id", NULL);
    55     psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_good_frac_min",  0,
    56             "define min good_frac", 0.0);
    57     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_type",  0,
    58             "search for exp_type", "object");
    59     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_inst",  0,
    60             "search for camera", NULL);
    61     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_telescope",  0,
    62             "search for telescope", NULL);
    63     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter",  0,
    64             "search for filter", NULL);
    65     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_uri",  0,
    66             "search for uri", NULL);
    67     psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0,
    68             "search for exposures by time (>=)", NULL);
    69     psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_end", 0,
    70             "search for exposures by time (<)", NULL);
    71     psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_min",  0,
    72             "define min airmass", NAN);
    73     psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_max",  0,
    74             "define max airmass", NAN);
    75     psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max",  0,
    76             "define max fraction of saturated pixels", NAN);
    77     psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_min",  0,
    78             "define min exposure time", NAN);
    79     psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_max",  0,
    80             "define max exposure time", NAN);
    81     psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_min",  0,
    82             "define min ccd tempature", NAN);
    83     psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_max",  0,
    84             "define max ccd tempature", NAN);
    85     psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min",  0,
    86             "define min rotator position angle", NAN);
    87     psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max",  0,
    88             "define max rotator position angle", NAN);
    89     psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min",  0,
    90             "define min solar angle", NAN);
    91     psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max",  0,
    92             "define max solar angle", NAN);
    93     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset",  0,
    94             "use a random subset of elements", false);
    95     psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit",  0,
    96             "use this number of random elements", 20);
    97 
    98     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-all",  0,
    99             "allow everything to be queued without search terms", false);
    100     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple",  0,
    101             "use the simple output format", false);
     49    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0,            "define workdir (required)", NULL);
     50    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered",  0,            "time detrend run was registered", now);
     51    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_skycell_id",  0,            "search for skycell_id", NULL);
     52    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_good_frac_min",  0,            "define min good_frac", 0.0);
     53    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_type",  0,            "search for exp_type", "object");
     54    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_inst",  0,            "search for camera", NULL);
     55    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_telescope",  0,            "search for telescope", NULL);
     56    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter",  0,            "search for filter", NULL);
     57    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_uri",  0,            "search for uri", NULL);
     58    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0,            "search for exposures by time (>=)", NULL);
     59    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_end", 0,            "search for exposures by time (<)", NULL);
     60    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_min",  0,            "define min airmass", NAN);
     61    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_max",  0,            "define max airmass", NAN);
     62    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max",  0,            "define max fraction of saturated pixels", NAN);
     63    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_min",  0,            "define min exposure time", NAN);
     64    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_max",  0,            "define max exposure time", NAN);
     65    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_min",  0,            "define min ccd tempature", NAN);
     66    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_max",  0,            "define max ccd tempature", NAN);
     67    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min",  0,            "define min rotator position angle", NAN);
     68    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max",  0,            "define max rotator position angle", NAN);
     69    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min",  0,            "define min solar angle", NAN);
     70    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max",  0,            "define max solar angle", NAN);
     71    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset",  0,            "use a random subset of elements", false);
     72    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit",  0,            "use this number of random elements", 20);
     73    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-all",  0,            "allow everything to be queued without search terms", false);
     74    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    10275
    10376    // -definerun
    10477    psMetadata *definerunArgs = psMetadataAlloc();
    105     psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-workdir", 0,
    106             "define workdir (required)", NULL);
    107     psMetadataAddTime(definerunArgs, PS_LIST_TAIL, "-registered",  0,
    108             "time detrend run was registered", now);
    109     psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-skycell_id",  0,
    110             "define skycell ID (required)", NULL);
    111     psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-tess_id",  0,
    112             "define tessellation ID (required)", NULL);
    113     psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-warp_id",
    114              PS_META_DUPLICATE_OK,
    115              "include this warp ID (multiple OK, required)", 0);
    116 
    117     psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-simple",  0,
    118             "use the simple output format", false);
     78    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-workdir", 0,            "define workdir (required)", NULL);
     79    psMetadataAddTime(definerunArgs, PS_LIST_TAIL, "-registered",  0,            "time detrend run was registered", now);
     80    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-skycell_id",  0,            "define skycell ID (required)", NULL);
     81    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-tess_id",  0,            "define tessellation ID (required)", NULL);
     82    psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-warp_id",             PS_META_DUPLICATE_OK,             "include this warp ID (multiple OK, required)", 0);
     83    psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    11984
    12085    // -updaterun
    12186    psMetadata *updaterunArgs = psMetadataAlloc();
    122     psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-stack_id", 0,
    123             "define stack ID (required)", 0);
    124     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0,
    125             "set state (required)", NULL);
    126 #if 0
    127     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-workdir", 0,
    128             "define workdir (required)", NULL);
    129     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-registered",  0,
    130             "time detrend run was registered", now);
    131 #endif
     87    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-stack_id", 0,            "define stack ID (required)", 0);
     88    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0,            "set state (required)", NULL);
    13289
    13390    // -addinputskyfile
    13491    psMetadata *addinputskyfileArgs = psMetadataAlloc();
    135     psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
    136             "define stack ID (required)", 0);
    137     psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,
    138             "define warp ID (required)", 0);
     92    psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "define stack ID (required)", 0);
     93    psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,            "define warp ID (required)", 0);
    13994
    14095    // -inputskyfile
    14196    psMetadata *inputskyfileArgs = psMetadataAlloc();
    142     psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
    143             "search by stack ID", 0);
    144     psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,
    145             "search by warp ID", 0);
    146     psMetadataAddU64(inputskyfileArgs, PS_LIST_TAIL, "-limit",  0,
    147             "limit result set to N items", 0);
    148     psMetadataAddBool(inputskyfileArgs, PS_LIST_TAIL, "-simple",  0,
    149             "use the simple output format", false);
     97    psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
     98    psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warp ID", 0);
     99    psMetadataAddU64(inputskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     100    psMetadataAddBool(inputskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    150101
    151102    // -tosum
    152103    psMetadata *tosumArgs = psMetadataAlloc();
    153     psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-stack_id", 0,
    154             "search by stack ID", 0);
    155     psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-warp_id", 0,
    156             "search by warp ID", 0);
    157     psMetadataAddU64(tosumArgs, PS_LIST_TAIL, "-limit",  0,
    158             "limit result set to N items", 0);
    159     psMetadataAddBool(tosumArgs, PS_LIST_TAIL, "-simple",  0,
    160             "use the simple output format", false);
     104    psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
     105    psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warp ID", 0);
     106    psMetadataAddU64(tosumArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     107    psMetadataAddBool(tosumArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    161108
    162109    // -addsumskyfile
    163110    psMetadata *addsumskyfileArgs = psMetadataAlloc();
    164     psMetadataAddS64(addsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
    165             "define stack ID (required)", 0);
    166     psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-uri", 0,
    167             "define URI of file", 0);
    168     psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-path_base", 0,
    169             "define base output location", 0);
    170     psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg",  0,
    171             "define exposue background", NAN);
    172     psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,
    173             "define exposue background mean stdev", NAN);
    174     psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-dtime_stack",  0,
    175             "define elapsed processing time", NAN);
    176     psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-hostname", 0,
    177             "define hostname", 0);
    178     psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-good_frac",  0,
    179             "define %% of good pixels", NAN);
    180     psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-code",  0,
    181             "set fault code", 0);
     111    psMetadataAddS64(addsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "define stack ID (required)", 0);
     112    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-uri", 0,            "define URI of file", 0);
     113    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-path_base", 0,            "define base output location", 0);
     114    psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg",  0,            "define exposue background", NAN);
     115    psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,            "define exposue background mean stdev", NAN);
     116    psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-dtime_stack",  0,            "define elapsed processing time", NAN);
     117    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-hostname", 0,            "define hostname", 0);
     118    psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-good_frac",  0,            "define %% of good pixels", NAN);
     119    psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-code",  0,            "set fault code", 0);
    182120
    183121    // -sumskyfile
    184122    psMetadata *sumskyfileArgs= psMetadataAlloc();
    185     psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
    186             "search by stack ID", 0);
    187     psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,
    188             "search by warp ID", 0);
    189     psMetadataAddU64(sumskyfileArgs, PS_LIST_TAIL, "-limit",  0,
    190             "limit result set to N items", 0);
    191     psMetadataAddBool(sumskyfileArgs, PS_LIST_TAIL, "-simple",  0,
    192             "use the simple output format", false);
     123    psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
     124    psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warp ID", 0);
     125    psMetadataAddU64(sumskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     126    psMetadataAddBool(sumskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    193127
    194128    // -revertsumskyfile
    195129    psMetadata *revertsumskyfileArgs= psMetadataAlloc();
    196     psMetadataAddS64(revertsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
    197             "search by stack ID (required)", 0);
    198     psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-code",  0,
    199             "search by fault code", 0);
     130    psMetadataAddS64(revertsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID (required)", 0);
     131    psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-code",  0,            "search by fault code", 0);
    200132
    201133    psFree(now);
     
    204136    psMetadata *modes   = psMetadataAlloc();
    205137
    206     PXOPT_ADD_MODE("-definebyquery", "Define a new stackRun by searching for warp IDs",
    207         STACKTOOL_MODE_DEFINEBYQUERY,  definebyqueryArgs);
     138    PXOPT_ADD_MODE("-definebyquery", "Define a new stackRun by searching for warp IDs", STACKTOOL_MODE_DEFINEBYQUERY,  definebyqueryArgs);
    208139    PXOPT_ADD_MODE("-definerun",       "", STACKTOOL_MODE_DEFINERUN,      definerunArgs);
    209140    PXOPT_ADD_MODE("-updaterun",       "", STACKTOOL_MODE_UPDATERUN,      updaterunArgs);
     
    226157    psFree(modes);
    227158
    228     // setup search criterion
    229 #define addWhereStr(name) \
    230 { \
    231     psString str = NULL; \
    232     bool status = false; \
    233     if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
    234         if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\
    235             psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
    236             psFree(config); \
    237             return NULL; \
    238         } \
    239     } \
    240 }
    241 
    242 #define addWhereS32(name) \
    243 { \
    244     psS32 s32 = 0; \
    245     bool status = false; \
    246     if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \
    247         if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \
    248             psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
    249             psFree(config); \
    250             return NULL; \
    251         } \
    252     } \
    253 }
    254 
    255 
    256     // generate SQL where clause
    257     config->where = psMetadataAlloc();
    258 
    259 {
    260     psString str = NULL;
    261     bool status = false;
    262     if ((str = psMetadataLookupStr(&status, config->args, "-warp_id"))) {
    263         if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "warp_id", 0, "==", (psS64)atoll(str))) {
    264             psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
    265             psFree(config);
    266             return NULL;
    267         }
    268     }
    269 }
    270 
    271 {
    272     psString str = NULL;
    273     bool status = false;
    274     if ((str = psMetadataLookupStr(&status, config->args, "-stack_id"))) {
    275         if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "stack_id", 0, "==", (psS64)atoll(str))) {
    276             psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
    277             psFree(config);
    278             return NULL;
    279         }
    280     }
    281 }
    282 
    283     addWhereStr(skycell_id);
    284     addWhereStr(tess_id);
    285 
    286     // convert '-code' to 'fault'
    287     {
    288         psS16 fault = 0;
    289         bool status = false;
    290         if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) {
    291             if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) {
    292                 psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
    293                 psFree(config);
    294                 return NULL;
    295             }
    296         }
    297     }
    298 
    299     if (config->where->list->n < 1) {
    300         psFree(config->where);
    301         config->where = NULL;
    302     }
    303 
    304159    // define Database handle, if used
    305160    // do this last so we don't setup a connection before CLI options are
Note: See TracChangeset for help on using the changeset viewer.