Changeset 19160
- Timestamp:
- Aug 21, 2008, 4:51:55 PM (18 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 1 added
- 4 edited
-
share/Makefile.am (modified) (1 diff)
-
share/warptool_definebyquery.sql (added)
-
src/warptool.c (modified) (3 diffs)
-
src/warptool.h (modified) (1 diff)
-
src/warptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/Makefile.am
r19092 r19160 145 145 stacktool_sumskyfile.sql \ 146 146 stacktool_tosum.sql \ 147 warptool_definebyquery.sql \ 147 148 warptool_donecleanup.sql \ 148 149 warptool_exp.sql \ -
trunk/ippTools/src/warptool.c
r19101 r19160 33 33 34 34 static psS64 definerunMode(pxConfig *config); 35 static bool definebyqueryMode(pxConfig *config); 35 36 static bool updaterunMode(pxConfig *config); 36 37 static bool expMode(pxConfig *config); … … 73 74 switch (config->mode) { 74 75 MODECASE(WARPTOOL_MODE_DEFINERUN, definerunMode); 76 MODECASE(WARPTOOL_MODE_DEFINEBYQUERY, definebyqueryMode); 75 77 MODECASE(WARPTOOL_MODE_UPDATERUN, updaterunMode); 76 78 MODECASE(WARPTOOL_MODE_EXP, expMode); … … 172 174 } 173 175 176 177 static bool definebyqueryMode(pxConfig *config) 178 { 179 PS_ASSERT_PTR_NON_NULL(config, NULL); 180 181 psMetadata *where = psMetadataAlloc(); 182 PXOPT_COPY_S64(config->args, where, "-fake_id", "fakeRun.fake_id", "=="); 183 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 184 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 185 PXOPT_COPY_S64(config->args, where, "-exp_id", "newExp.exp_id", "=="); 186 PXOPT_COPY_STR(config->args, where, "-exp_name", "exp_name", "=="); 187 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 188 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 189 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "dateobs", ">="); 190 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<="); 191 PXOPT_COPY_STR(config->args, where, "-exp_tag", "exp_tag", "=="); 192 PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "=="); 193 PXOPT_COPY_STR(config->args, where, "-filelevel", "filelevel", "=="); 194 PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "=="); 195 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 196 PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">="); 197 PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<"); 198 PXOPT_COPY_F64(config->args, where, "-ra_min", "ra", ">="); 199 PXOPT_COPY_F64(config->args, where, "-ra_max", "ra", "<"); 200 PXOPT_COPY_F64(config->args, where, "-decl_min", "decl", ">="); 201 PXOPT_COPY_F64(config->args, where, "-decl_max", "decl", "<"); 202 PXOPT_COPY_F32(config->args, where, "-exp_time_min", "exp_time", ">="); 203 PXOPT_COPY_F32(config->args, where, "-exp_time_max", "exp_time", "<"); 204 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "sat_pixel_frac", ">="); 205 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "sat_pixel_frac", "<"); 206 PXOPT_COPY_F64(config->args, where, "-bg_min", "bt", ">="); 207 PXOPT_COPY_F64(config->args, where, "-bg_max", "bt", "<"); 208 PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "bg_stdev", ">="); 209 PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "bg_stdev", "<"); 210 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "bg_mean_stdev", ">="); 211 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "bg_mean_stdev", "<"); 212 PXOPT_COPY_F64(config->args, where, "-alt_min", "alt", ">="); 213 PXOPT_COPY_F64(config->args, where, "-alt_max", "alt", "<"); 214 PXOPT_COPY_F64(config->args, where, "-az_min", "az", ">="); 215 PXOPT_COPY_F64(config->args, where, "-az_max", "az", "<"); 216 PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "ccd_temp", ">="); 217 PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "ccd_temp", "<"); 218 PXOPT_COPY_F64(config->args, where, "-posang_min", "posang", ">="); 219 PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<"); 220 PXOPT_COPY_STR(config->args, where, "-object", "object", "=="); 221 PXOPT_COPY_F32(config->args, where, "-solang_min", "solang", ">="); 222 PXOPT_COPY_F32(config->args, where, "-solang_max", "solang", "<"); 223 224 if (!psListLength(where->list) && 225 !psMetadataLookupBool(NULL, config->args, "-all")) { 226 psFree(where); 227 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 228 return false; 229 } 230 231 PXOPT_LOOKUP_STR(mode, config->args, "-set_mode", true, false); // required 232 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", false, false); 233 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 234 PXOPT_LOOKUP_STR(dvodb, config->args, "-set_dvodb", false, false); 235 PXOPT_LOOKUP_STR(tess_id, config->args, "-set_tess_id", false, false); 236 PXOPT_LOOKUP_STR(end_stage, config->args, "-set_end_stage", false, false); 237 238 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); 239 PXOPT_LOOKUP_BOOL(magiced, config->args, "-magiced", false); 240 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 241 242 // check mode 243 if (mode && !isValidMode(config, mode)) { 244 psError(PS_ERR_UNKNOWN, false, "invalid mode"); 245 return false; 246 } 247 248 // find the exp_id of all the exposures that we want to queue up. 249 psString query = pxDataGet("warptool_definebyquery.sql"); 250 if (!query) { 251 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 252 psFree(where); 253 return false; 254 } 255 256 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 257 if (where && psListLength(where->list)) { 258 psString whereClause = psDBGenerateWhereSQL(where, NULL); 259 psStringAppend(&query, "%s", whereClause); 260 psFree(whereClause); 261 } 262 psFree(where); 263 264 if (!p_psDBRunQuery(config->dbh, query)) { 265 psError(PS_ERR_UNKNOWN, false, "database error"); 266 psFree(query); 267 return false; 268 } 269 psFree(query); 270 271 psArray *output = p_psDBFetchResult(config->dbh); 272 if (!output) { 273 psError(PS_ERR_UNKNOWN, false, "database error"); 274 return false; 275 } 276 if (!psArrayLength(output)) { 277 psTrace("warptool", PS_LOG_INFO, "no rows found"); 278 psFree(output); 279 return true; 280 } 281 282 // would could do this "all in the database" if we didn't want the option 283 // of changing the label/reduction/expgroup/dvodb/etc. So we're pulling the 284 // data out so we have the option of changing these values or leaving the 285 // old values in place (i.e., passing the values through). 286 287 // loop over our list of fakeRun rows 288 for (long i = 0; i < psArrayLength(output); i++) { 289 psMetadata *md = output->data[i]; 290 291 fakeRunRow *row = fakeRunObjectFromMetadata(md); 292 if (!row) { 293 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into fakeRun"); 294 psFree(output); 295 return false; 296 } 297 298 // queue the exp 299 if (!pxwarpQueueByFakeID(config, 300 row->fake_id, 301 workdir ? workdir : row->workdir, 302 label ? label : row->label, 303 dvodb ? dvodb : row->dvodb, 304 tess_id ? tess_id : row->tess_id, 305 end_stage ? end_stage : row->end_stage)) 306 { 307 psError(PS_ERR_UNKNOWN, false, "failed to trying to queue fake_id: %" PRId64, row->fake_id); 308 psFree(row); 309 psFree(output); 310 return false; 311 } 312 psFree(row); 313 } 314 psFree(output); 315 316 if (!psDBCommit(config->dbh)) { 317 psError(PS_ERR_UNKNOWN, false, "database error"); 318 return false; 319 } 320 321 return true; 322 } 174 323 175 324 static bool updaterunMode(pxConfig *config) -
trunk/ippTools/src/warptool.h
r19092 r19160 25 25 typedef enum { 26 26 WARPTOOL_MODE_NONE = 0x0, 27 WARPTOOL_MODE_DEFINEBYQUERY, 27 28 WARPTOOL_MODE_DEFINERUN, 28 29 WARPTOOL_MODE_RUNONE, -
trunk/ippTools/src/warptoolConfig.c
r19092 r19160 46 46 47 47 psTime *now = psTimeGetNow(PS_TIME_TAI); 48 49 // -definebyquery 50 // XXX need to allow multiple chip_ids 51 // XXX need to allow multiple exp_ids 52 psMetadata *definebyqueryArgs = psMetadataAlloc(); 53 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-fake_id", 0, "search by fake_id", 0); 54 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0); 55 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0); 56 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0); 57 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exp_name", NULL); 58 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-inst", 0, "search for camera", NULL); 59 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-telescope", 0, "search for telescope", NULL); 60 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL); 61 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL); 62 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL); 63 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", NULL); 64 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL); 65 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "search by reduction class", NULL); 66 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filter", 0, "search for filter", NULL); 67 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-airmass_min", 0, "define min airmass", NAN); 68 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-airmass_max", 0, "define max airmass", NAN); 69 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ra_min", 0, "define min", NAN); 70 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ra_max", 0, "define max", NAN); 71 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-decl_min", 0, "define min", NAN); 72 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-decl_max", 0, "define max", NAN); 73 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_min", 0, "define min", NAN); 74 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_max", 0, "define max", NAN); 75 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, "define max fraction of saturated pixels", NAN); 76 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, "define min fraction of saturated pixels", NAN); 77 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_min", 0, "define max", NAN); 78 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_max", 0, "define max", NAN); 79 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, "define max", NAN); 80 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, "define max", NAN); 81 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, "define max", NAN); 82 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, "define max", NAN); 83 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-alt_min", 0, "define min", NAN); 84 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-alt_max", 0, "define max", NAN); 85 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-az_min", 0, "define min", NAN); 86 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-az_max", 0, "define max", NAN); 87 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "define min ccd tempature", NAN); 88 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "define max ccd tempature", NAN); 89 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 90 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 91 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 92 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-solang_min", 0, "define min solar angle", NAN); 93 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-solang_max", 0, "define max solar angle", NAN); 94 95 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_mode", 0, "define mode (warp, diff, stack, magic)", NULL); 96 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); 97 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_label", 0, "define label", NULL); 98 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_dvodb", 0, "define DVO db", NULL); 99 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_tess_id", 0, "define tess ID", NULL); 100 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_end_stage", 0, "define end stage", NULL); 101 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 102 103 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 104 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-magiced", 0, "has this exposure been magiced", false); 105 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 48 106 49 107 // -definerun … … 275 333 psMetadata *modes = psMetadataAlloc(); 276 334 335 PXOPT_ADD_MODE("-definebyquery", "", WARPTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs); 277 336 PXOPT_ADD_MODE("-definerun", "", WARPTOOL_MODE_DEFINERUN, definerunArgs); 278 337 PXOPT_ADD_MODE("-updaterun", "", WARPTOOL_MODE_UPDATERUN, updaterunArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
