Changeset 25022 for branches/eam_branches/20090715/ippTools/src
- Timestamp:
- Aug 7, 2009, 12:45:24 PM (17 years ago)
- Location:
- branches/eam_branches/20090715
- Files:
-
- 22 edited
-
. (modified) (1 prop)
-
ippTools/src/dettool.c (modified) (5 diffs)
-
ippTools/src/dettoolConfig.c (modified) (5 diffs)
-
ippTools/src/difftool.c (modified) (3 diffs)
-
ippTools/src/difftoolConfig.c (modified) (2 diffs)
-
ippTools/src/faketool.c (modified) (3 diffs)
-
ippTools/src/faketoolConfig.c (modified) (3 diffs)
-
ippTools/src/magicdstool.c (modified) (12 diffs)
-
ippTools/src/magicdstoolConfig.c (modified) (2 diffs)
-
ippTools/src/magictool.c (modified) (10 diffs)
-
ippTools/src/magictool.h (modified) (1 diff)
-
ippTools/src/magictoolConfig.c (modified) (3 diffs)
-
ippTools/src/pstamptool.c (modified) (17 diffs)
-
ippTools/src/pstamptoolConfig.c (modified) (2 diffs)
-
ippTools/src/pxcam.c (modified) (2 diffs)
-
ippTools/src/pxchip.c (modified) (2 diffs)
-
ippTools/src/regtool.c (modified) (1 diff)
-
ippTools/src/regtoolConfig.c (modified) (2 diffs)
-
ippTools/src/stacktool.c (modified) (3 diffs)
-
ippTools/src/stacktoolConfig.c (modified) (3 diffs)
-
ippTools/src/warptool.c (modified) (2 diffs)
-
ippTools/src/warptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20090715
- Property svn:mergeinfo changed
/trunk (added) merged: 24801-24824,24827-24834,24836-24859,24861-24901,24903-24912,24914-24950,24953-24971,24973-24977,24986-24989,24993-25017
- Property svn:mergeinfo changed
-
branches/eam_branches/20090715/ippTools/src/dettool.c
r24779 r25022 276 276 PXOPT_LOOKUP_F64(posang_min, config->args, "-posang_min", false, false); 277 277 PXOPT_LOOKUP_F64(posang_max, config->args, "-posang_max", false, false); 278 PXOPT_LOOKUP_F64(solang_min, config->args, "-s olang_min", false, false);279 PXOPT_LOOKUP_F64(solang_max, config->args, "-s olang_max", false, false);278 PXOPT_LOOKUP_F64(solang_min, config->args, "-sun_angle_min", false, false); 279 PXOPT_LOOKUP_F64(solang_max, config->args, "-sun_angle_max", false, false); 280 280 PXOPT_LOOKUP_TIME(time_begin, config->args, "-time_begin", false, false); 281 281 PXOPT_LOOKUP_TIME(time_end, config->args, "-time_end", false, false); … … 521 521 PXOPT_LOOKUP_F64(posang_min, config->args, "-posang_min", false, false); 522 522 PXOPT_LOOKUP_F64(posang_max, config->args, "-posang_max", false, false); 523 PXOPT_LOOKUP_F64(solang_min, config->args, "-s olang_min", false, false);524 PXOPT_LOOKUP_F64(solang_max, config->args, "-s olang_max", false, false);523 PXOPT_LOOKUP_F64(solang_min, config->args, "-sun_angle_min", false, false); 524 PXOPT_LOOKUP_F64(solang_max, config->args, "-sun_angle_max", false, false); 525 525 526 526 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); … … 557 557 PXOPT_COPY_F64(config->args, where, "-select_posang_min", "posang", ">="); 558 558 PXOPT_COPY_F64(config->args, where, "-select_posang_max", "posang", "<="); 559 PXOPT_COPY_F64(config->args, where, "-select_solang_min", "solang", ">="); 560 PXOPT_COPY_F64(config->args, where, "-select_solang_max", "solang", "<="); 559 PXOPT_COPY_F64(config->args, where, "-select_sun_angle_min", "sun_angle", ">="); 560 PXOPT_COPY_F64(config->args, where, "-select_sun_angle_max", "sun_angle", "<="); 561 PXOPT_COPY_F64(config->args, where, "-select_sun_alt_min", "sun_alt", ">="); 562 PXOPT_COPY_F64(config->args, where, "-select_sun_alt_max", "sun_alt", "<="); 561 563 562 564 PXOPT_COPY_F64(config->args, where, "-select_moon_angle_min", "moon_angle", ">="); … … 775 777 PXOPT_LOOKUP_F64(posang_min, config->args, "-set_posang_min", false, false); 776 778 PXOPT_LOOKUP_F64(posang_max, config->args, "-set_posang_max", false, false); 777 PXOPT_LOOKUP_F64(solang_min, config->args, "-set_s olang_min", false, false);778 PXOPT_LOOKUP_F64(solang_max, config->args, "-set_s olang_max", false, false);779 PXOPT_LOOKUP_F64(solang_min, config->args, "-set_sun_angle_min", false, false); 780 PXOPT_LOOKUP_F64(solang_max, config->args, "-set_sun_angle_max", false, false); 779 781 PXOPT_LOOKUP_TIME(registered, config->args, "-set_registered", false, false); 780 782 PXOPT_LOOKUP_TIME(time_begin, config->args, "-set_time_begin", false, false); … … 1613 1615 PXOPT_LOOKUP_F64(posang_min, config->args, "-posang_min", false, false); 1614 1616 PXOPT_LOOKUP_F64(posang_max, config->args, "-posang_max", false, false); 1615 PXOPT_LOOKUP_F64(solang_min, config->args, "-s olang_min", false, false);1616 PXOPT_LOOKUP_F64(solang_max, config->args, "-s olang_max", false, false);1617 PXOPT_LOOKUP_F64(solang_min, config->args, "-sun_angle_min", false, false); 1618 PXOPT_LOOKUP_F64(solang_max, config->args, "-sun_angle_max", false, false); 1617 1619 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); 1618 1620 PXOPT_LOOKUP_TIME(time_begin, config->args, "-time_begin", false, false); -
branches/eam_branches/20090715/ippTools/src/dettoolConfig.c
r24779 r25022 68 68 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 69 69 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 70 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-s olang_min", 0, "define min solar angle", NAN);71 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-s olang_max", 0, "define max solar angle", NAN);70 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 71 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 72 72 73 73 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); … … 100 100 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 101 101 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 102 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-s olang_min", 0, "define min solar angle", NAN);103 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-s olang_max", 0, "define max solar angle", NAN);102 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 103 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 104 104 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 105 105 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-time_begin", 0, "detrend applies to exposures taken during this period", NULL); … … 125 125 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min", 0, "define min rotator position angle", NAN); 126 126 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max", 0, "define max rotator position angle", NAN); 127 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min", 0, "define min solar angle", NAN); 128 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max", 0, "define max solar angle", NAN); 127 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_sun_angle_min", 0, "define min solar angle", NAN); 128 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_sun_angle_max", 0, "define max solar angle", NAN); 129 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_sun_alt_min", 0, "define min solar altitude", NAN); 130 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_sun_alt_max", 0, "define max solar altitude", NAN); 129 131 130 132 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_moon_angle_min", 0, "define min moon angle", NAN); … … 164 166 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_posang_min", 0, "define rotator position angle", NAN); 165 167 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_posang_max", 0, "define rotator position angle", NAN); 166 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_s olang_min", 0, "define solar angle", NAN);167 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_s olang_max", 0, "define solar angle", NAN);168 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_sun_angle_min", 0, "define solar angle", NAN); 169 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_sun_angle_max", 0, "define solar angle", NAN); 168 170 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_registered", 0, "time detrend run was registered", now); 169 171 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_time_begin", 0, "start of period to apply detrend too", NULL); … … 840 842 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 841 843 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 842 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-s olang_min", 0, "define min solar angle", NAN);843 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-s olang_max", 0, "define max solar angle", NAN);844 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 845 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 844 846 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 845 847 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-time_begin", 0, "detrend applies to exposures taken during this period", NULL); -
branches/eam_branches/20090715/ippTools/src/difftool.c
r24676 r25022 582 582 PXOPT_COPY_STR(config->args, where, "-skycell_id", "diffInputSkyfile.skycell_id", "=="); 583 583 PXOPT_COPY_S64(config->args, where, "-diff_skyfile_id", "diffInputSkyfile.diff_skyfile_id", "=="); 584 PXOPT_COPY_STR(config->args, where, "-tess_id", "diff Skyfile.tess_id", "==");584 PXOPT_COPY_STR(config->args, where, "-tess_id", "diffRun.tess_id", "=="); 585 585 PXOPT_COPY_S16(config->args, where, "-fault", "diffSkyfile.fault", "=="); 586 586 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); … … 661 661 PXOPT_COPY_STR(config->args, where, "-label", "diffRun.label", "=="); 662 662 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 663 664 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 665 psFree(where); 666 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 667 return false; 668 } 663 669 664 670 if (!psDBTransaction(config->dbh)) { … … 1288 1294 "ABS(TIME_TO_SEC(TIMEDIFF(inputRawExp.dateobs, templateRawExp.dateobs)))", "<="); 1289 1295 1296 // other where restrictions: 1297 PXOPT_COPY_TIME(config->args, selectWhere, "-dateobs_begin", "inputRawExp.dateobs", ">="); 1298 PXOPT_COPY_TIME(config->args, selectWhere, "-dateobs_end", "inputRawExp.dateobs", "<="); 1299 PXOPT_COPY_RADEC(config->args, selectWhere, "-ra_min", "inputRawExp.ra", ">="); 1300 PXOPT_COPY_RADEC(config->args, selectWhere, "-ra_max", "inputRawExp.ra", "<"); 1301 PXOPT_COPY_RADEC(config->args, selectWhere, "-decl_min", "inputRawExp.decl", ">="); 1302 PXOPT_COPY_RADEC(config->args, selectWhere, "-decl_max", "inputRawExp.decl", "<"); 1303 PXOPT_COPY_F32(config->args, selectWhere, "-sat_pixel_frac_min", "inputRawExp.sat_pixel_frac", ">="); 1304 PXOPT_COPY_F32(config->args, selectWhere, "-sat_pixel_frac_max", "inputRawExp.sat_pixel_frac", "<"); 1305 PXOPT_COPY_F64(config->args, selectWhere, "-airmass_min", "inputRawExp.airmass", ">="); 1306 PXOPT_COPY_F64(config->args, selectWhere, "-airmass_max", "inputRawExp.airmass", "<"); 1307 PXOPT_COPY_F32(config->args, selectWhere, "-exp_time_min", "inputRawExp.exp_time", ">="); 1308 PXOPT_COPY_F32(config->args, selectWhere, "-exp_time_max", "inputRawExp.exp_time", "<"); 1309 PXOPT_COPY_F64(config->args, selectWhere, "-bg_min", "inputRawExp.bg", ">="); 1310 PXOPT_COPY_F64(config->args, selectWhere, "-bg_max", "inputRawExp.bg", "<"); 1311 PXOPT_COPY_F64(config->args, selectWhere, "-bg_stdev_min", "inputRawExp.bg_stdev", ">="); 1312 PXOPT_COPY_F64(config->args, selectWhere, "-bg_stdev_max", "inputRawExp.bg_stdev", "<"); 1313 PXOPT_COPY_F64(config->args, selectWhere, "-bg_mean_stdev_min", "inputRawExp.bg_mean_stdev", ">="); 1314 PXOPT_COPY_F64(config->args, selectWhere, "-bg_mean_stdev_max", "inputRawExp.bg_mean_stdev", "<"); 1315 PXOPT_COPY_F64(config->args, selectWhere, "-alt_min", "inputRawExp.alt", ">="); 1316 PXOPT_COPY_F64(config->args, selectWhere, "-alt_max", "inputRawExp.alt", "<"); 1317 PXOPT_COPY_F64(config->args, selectWhere, "-az_min", "inputRawExp.az", ">="); 1318 PXOPT_COPY_F64(config->args, selectWhere, "-az_max", "inputRawExp.az", "<"); 1319 PXOPT_COPY_F32(config->args, selectWhere, "-ccd_temp_min", "inputRawExp.ccd_temp", ">="); 1320 PXOPT_COPY_F32(config->args, selectWhere, "-ccd_temp_max", "inputRawExp.ccd_temp", "<"); 1321 PXOPT_COPY_F64(config->args, selectWhere, "-posang_min", "inputRawExp.posang", ">="); 1322 PXOPT_COPY_F64(config->args, selectWhere, "-posang_max", "inputRawExp.posang", "<"); 1323 PXOPT_COPY_F32(config->args, selectWhere, "-sun_angle_min", "inputRawExp.sun_angle", ">="); 1324 PXOPT_COPY_F32(config->args, selectWhere, "-sun_angle_max", "inputRawExp.sun_angle", "<"); 1325 PXOPT_COPY_STR(config->args, selectWhere, "-comment", "inputRawExp.comment", "LIKE"); 1326 1290 1327 // Haversine formula for great circle distance 1291 1328 PXOPT_COPY_F32(config->args, selectWhere, "-distance", -
branches/eam_branches/20090715/ippTools/src/difftoolConfig.c
r24174 r25022 133 133 psMetadataAddStr(revertdiffskyfileArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL); 134 134 psMetadataAddS16(revertdiffskyfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 135 psMetadataAddBool(revertdiffskyfileArgs, PS_LIST_TAIL, "-all", 0, "allow no search terms", 0); 135 136 136 137 // -definepoprun … … 189 190 psMetadataAddBool(definewarpwarpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 190 191 psMetadataAddBool(definewarpwarpArgs, PS_LIST_TAIL, "-pretend", 0, "list results but to not queue", false); 192 psMetadataAddTime(definewarpwarpArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL); 193 psMetadataAddTime(definewarpwarpArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL); 194 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-ra_min", 0, "search by min RA (degrees) ", NAN); 195 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-ra_max", 0, "search by max RA (degrees) ", NAN); 196 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-decl_min", 0, "search by min DEC (degrees)", NAN); 197 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-decl_max", 0, "search by max DEC (degrees)", NAN); 198 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-airmass_min", 0, "search by min airmass", NAN); 199 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-airmass_max", 0, "search by max airmass", NAN); 200 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-exp_time_min", 0, "search by min exposure time", NAN); 201 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-exp_time_max", 0, "search by max exposure time", NAN); 202 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, "search by min fraction of saturated pixels", NAN); 203 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, "search by max fraction of saturated pixels", NAN); 204 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-bg_min", 0, "search by min background", NAN); 205 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-bg_max", 0, "search by max background", NAN); 206 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, "search by min background standard deviation", NAN); 207 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, "search by max background standard deviation", NAN); 208 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, "search by min background mean standard deviation (across imfiles)", NAN); 209 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, "search by max background mean standard deviation (across imfiles)", NAN); 210 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-alt_min", 0, "search by min altitude", NAN); 211 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-alt_max", 0, "search by max altitude", NAN); 212 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-az_min", 0, "search by min azimuth ", NAN); 213 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-az_max", 0, "search by max azimuth ", NAN); 214 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "search by min ccd tempature", NAN); 215 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "search by max ccd tempature", NAN); 216 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-posang_min", 0, "search by min rotator position angle", NAN); 217 psMetadataAddF64(definewarpwarpArgs, PS_LIST_TAIL, "-posang_max", 0, "search by max rotator position angle", NAN); 218 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "search by min solar angle", NAN); 219 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "search by max solar angle", NAN); 220 psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-comment", 0, "search by comment field (LIKE comparison)", NULL); 191 221 192 222 // -pendingcleanuprun -
branches/eam_branches/20090715/ippTools/src/faketool.c
r24733 r25022 157 157 PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<"); 158 158 PXOPT_COPY_STR(config->args, where, "-object", "object", "=="); 159 PXOPT_COPY_F32(config->args, where, "-s olang_min", "solang", ">=");160 PXOPT_COPY_F32(config->args, where, "-s olang_max", "solang", "<");159 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "sun_angle", ">="); 160 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "sun_angle", "<"); 161 161 PXOPT_COPY_STR(config->args, where, "-comment", "comment", "LIKE"); 162 162 … … 325 325 PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<"); 326 326 PXOPT_COPY_STR(config->args, where, "-object", "object", "=="); 327 PXOPT_COPY_F32(config->args, where, "-s olang_min", "solang", ">=");328 PXOPT_COPY_F32(config->args, where, "-s olang_max", "solang", "<");327 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "sun_angle", ">="); 328 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "sun_angle", "<"); 329 329 PXOPT_COPY_STR(config->args, where, "-label", "fakeRun.label", "=="); 330 330 … … 669 669 PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<"); 670 670 PXOPT_COPY_STR(config->args, where, "-object", "object", "=="); 671 PXOPT_COPY_F32(config->args, where, "-s olang_min", "solang", ">=");672 PXOPT_COPY_F32(config->args, where, "-s olang_max", "solang", "<");671 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "sun_angle", ">="); 672 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "sun_angle", "<"); 673 673 674 674 if (!psListLength(where->list) -
branches/eam_branches/20090715/ippTools/src/faketoolConfig.c
r24733 r25022 84 84 psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 85 85 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 86 psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-s olang_min", 0, "define min solar angle", NAN);87 psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-s olang_max", 0, "define max solar angle", NAN);86 psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 87 psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 88 88 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); 89 89 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_label", 0, "define label", NULL); … … 137 137 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 138 138 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 139 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-s olang_min", 0, "define min solar angle", NAN);140 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-s olang_max", 0, "define max solar angle", NAN);139 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 140 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 141 141 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL); 142 142 … … 235 235 psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 236 236 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 237 psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-s olang_min", 0, "define min solar angle", NAN);238 psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-s olang_max", 0, "define max solar angle", NAN);237 psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 238 psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 239 239 240 240 psMetadataAddBool(revertprocessedimfileArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); -
branches/eam_branches/20090715/ippTools/src/magicdstool.c
r24709 r25022 2 2 * magicdstool.c 3 3 * 4 * Copyright (C) 2006-200 7IfA4 * Copyright (C) 2006-2009 IfA 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify it … … 27 27 #include <math.h> 28 28 #include <ippdb.h> 29 #include <ippStages.h> 29 30 30 31 #include "pxtools.h" … … 97 98 static bool definebyqueryMode(pxConfig *config) 98 99 { 99 PS_ASSERT_PTR_NON_NULL(config, false);100 psError(PS_ERR_UNKNOWN, true, "definebyquery not implelmented yet");101 102 return false;103 #ifdef notyet104 100 105 101 // Required 102 PXOPT_LOOKUP_STR(stage, config->args, "-stage", true, false); 103 104 // Optional 106 105 PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", false, false); 107 108 // Optional109 PXOPT_LOOKUP_STR( label, config->args, "-label", false, false);110 PXOPT_LOOKUP_ STR(dvodb, config->args, "-dvodb", false, false);111 PXOPT_LOOKUP_ TIME(registered, config->args, "-registered", false, false);106 PXOPT_LOOKUP_STR(recoveryroot, config->args, "-recoveryroot", false, false); 107 PXOPT_LOOKUP_BOOL(re_place, config->args, "-replace", false); 108 PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false); 109 PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false); 110 PXOPT_LOOKUP_BOOL(dry_run, config->args, "-dry_run", false); 112 111 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 113 114 // Create temporary table of the best diffs 115 { 116 psString query = pxDataGet("magictool_definebyquery_temp_create.sql"); 117 if (!query) { 118 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 119 return false; 120 } 121 122 if (!p_psDBRunQuery(config->dbh, query)) { 112 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 113 114 // search args 115 psMetadata *where = psMetadataAlloc(); 116 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 117 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 118 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 119 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 120 PXOPT_COPY_S64(config->args, where, "-diff_id", "diff_id", "=="); 121 PXOPT_COPY_S64(config->args, where, "-magic_id","magic_id", "=="); 122 PXOPT_COPY_S32(config->args, where, "-streaks_max","streaks", "<="); 123 124 pxAddLabelSearchArgs (config, where, "-label", "magicRun.label", "=="); 125 126 ippStage stageNum = ippStringToStage(stage); 127 128 psString query = NULL; 129 switch (stageNum) { 130 case IPP_STAGE_RAW: 131 query = pxDataGet("magicdstool_definebyquery_raw.sql"); 132 break; 133 case IPP_STAGE_CHIP: 134 query = pxDataGet("magicdstool_definebyquery_chip.sql"); 135 break; 136 case IPP_STAGE_CAMERA: 137 query = pxDataGet("magicdstool_definebyquery_camera.sql"); 138 break; 139 case IPP_STAGE_WARP: 140 query = pxDataGet("magicdstool_definebyquery_warp.sql"); 141 break; 142 case IPP_STAGE_DIFF: 143 query = pxDataGet("magicdstool_definebyquery_diff.sql"); 144 break; 145 case IPP_STAGE_FAKE: 146 case IPP_STAGE_STACK: 147 psError(PXTOOLS_ERR_DATA, true, "%sRuns do not need to be destreaked", stage); 148 return false; 149 case IPP_STAGE_NONE: 150 psError(PXTOOLS_ERR_DATA, true, "%s is not a valid stage", stage); 151 return false; 152 default: 153 psError(PXTOOLS_ERR_PROG, true, "ippStageToString returned %d for invalid stage %s", 154 stageNum, stage); 155 return false; 156 } 157 158 if (!query) { 159 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 160 return false; 161 } 162 char *rerun_flag = rerun ? "\n1 " : "\n0" ; 163 164 if (stageNum != IPP_STAGE_DIFF) { 165 if (psListLength(where->list)) { 166 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 167 psStringAppend(&query, "\nAND %s", whereClause); 168 psFree(whereClause); 169 } 170 psFree(where); 171 172 // treat limit == 0 as "no limit" 173 if (limit) { 174 psString limitString = psDBGenerateLimitSQL(limit); 175 psStringAppend(&query, " %s", limitString); 176 psFree(limitString); 177 } 178 if (!p_psDBRunQueryF(config->dbh, query, rerun_flag)) { 123 179 psError(PS_ERR_UNKNOWN, false, "database error"); 124 return false;125 }126 psFree(query);127 }128 129 // Insert list of best diffs into temporary table130 {131 psString query = pxDataGet("magictool_definebyquery_temp_insert.sql");132 if (!query) {133 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");134 return false;135 }136 137 psMetadata *where = psMetadataAlloc();138 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "==");139 PXOPT_COPY_STR(config->args, where, "-diff_label", "diffRun.label", "==");140 PXOPT_COPY_F32(config->args, where, "-good_frac", "warpSkyfile.good_frac", ">=");141 142 psString whereClause = NULL; // WHERE conditions143 if (psListLength(where->list)) {144 whereClause = psDBGenerateWhereConditionSQL(where, NULL);145 psStringPrepend(&whereClause, "\n AND ");146 }147 psFree(where);148 149 if (!p_psDBRunQueryF(config->dbh, query, whereClause)) {150 psError(PS_ERR_UNKNOWN, false, "database error");151 psFree(whereClause);152 180 psFree(query); 153 181 return false; 154 182 } 155 psFree(whereClause); 156 psFree(query); 157 } 158 159 // Get list of exposures ready to magic 160 { 161 psString query = pxDataGet("magictool_definebyquery_select.sql"); 162 if (!query) { 163 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 164 return false; 165 } 166 167 psString magicSkyCellNumsWhere = NULL; // WHERE conditions for magicSkyCellNums 168 { 169 psMetadata *where = psMetadataAlloc(); 170 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 171 PXOPT_COPY_STR(config->args, where, "-diff_label", "diffRun.label", "=="); 172 PXOPT_COPY_F32(config->args, where, "-good_frac", "warpSkyfile.good_frac", ">="); 173 174 if (psListLength(where->list)) { 175 magicSkyCellNumsWhere = psDBGenerateWhereConditionSQL(where, NULL); 176 psStringPrepend(&magicSkyCellNumsWhere, "\n AND "); 177 } 178 psFree(where); 179 } 180 181 // "available" means only concern ourselves with exposures that have all diffs completed, unless we're 182 // told to only take what's available. 183 // "new" means we want a new run even if there's already a magic run defined 184 PXOPT_LOOKUP_BOOL(available, config->args, "-available", false); 185 PXOPT_LOOKUP_BOOL(new, config->args, "-new", false); 186 187 psString queryWhere = NULL; // WHERE conditions for entire query 188 if (available) { 189 psStringAppend(&queryWhere, " WHERE num_done = num_todo"); 190 } 191 if (new) { 192 const char *newWhere = " magic_id IS NULL"; // String to add 193 if (queryWhere) { 194 psStringAppend(&queryWhere, " AND %s", newWhere); 195 } else { 196 psStringAppend(&queryWhere, " WHERE %s", newWhere); 197 } 198 } 199 if (queryWhere) { 200 psStringAppend(&query, " %s", queryWhere); 201 psFree(queryWhere); 202 } 203 204 205 if (!p_psDBRunQueryF(config->dbh, query, magicSkyCellNumsWhere ? magicSkyCellNumsWhere : "")) { 183 } else { 184 // diff stage query has two types bothways and !bothways 185 // so we need to send the rerun flag and the where data twice 186 psString whereString = psStringCopy(""); 187 if (psListLength(where->list)) { 188 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 189 psStringAppend(&whereString, "\nAND %s", whereClause); 190 psFree(whereClause); 191 } 192 psFree(where); 193 194 // treat limit == 0 as "no limit" 195 if (limit) { 196 psString limitString = psDBGenerateLimitSQL(limit); 197 psStringAppend(&query, " %s", limitString); 198 psFree(limitString); 199 } 200 201 if (!p_psDBRunQueryF(config->dbh, query, rerun_flag, whereString, rerun_flag, whereString)) { 206 202 psError(PS_ERR_UNKNOWN, false, "database error"); 207 psFree( magicSkyCellNumsWhere);203 psFree(whereString); 208 204 psFree(query); 209 205 return false; 210 206 } 211 psFree( magicSkyCellNumsWhere);212 psFree(query);213 }207 psFree(whereString); 208 } 209 psFree(query); 214 210 215 211 psArray *output = p_psDBFetchResult(config->dbh); … … 233 229 } 234 230 235 // Parse the list of exposures ready to magic 236 237 if (!psDBTransaction(config->dbh)) { 238 psError(PS_ERR_UNKNOWN, false, "database error"); 239 return false; 240 } 241 242 psString insert = pxDataGet("magictool_definebyquery_insert.sql"); // Insert query 231 // Parse the list of runs ready to be destreaked 232 233 if (!dry_run && !psDBTransaction(config->dbh)) { 234 psError(PS_ERR_UNKNOWN, false, "database error"); 235 return false; 236 } 243 237 244 238 psArray *list = psArrayAllocEmpty(16); // List of runs, to print 245 239 for (long i = 0; i < psArrayLength(output); i++) { 246 240 psMetadata *row = output->data[i]; // Row of interest 247 psS64 exp_id = psMetadataLookupS64(NULL, row, "exp_id"); // Exposure identifier 241 psS64 stage_id = psMetadataLookupS64(NULL, row, "stage_id"); 242 psS64 exp_id = psMetadataLookupS64(NULL, row, "exp_id"); 243 psS64 magic_id = psMetadataLookupS64(NULL, row, "magic_id"); 244 psS64 inv_magic_id = psMetadataLookupS64(NULL, row, "inv_magic_id"); 245 psS64 cam_id = psMetadataLookupS64(NULL, row, "cam_id"); 246 psString magicRunLabel = psMetadataLookupStr(NULL, row, "label"); 247 psString magicRunWorkdir = psMetadataLookupStr(NULL, row, "workdir"); 248 249 // if workdir is not supplied use the magicRun's 250 if (!workdir) { 251 workdir = magicRunWorkdir; 252 } 253 254 psString outroot = NULL; 255 // set outroot to workdir/exp_id/stage for example /somewhere/424242/chip 256 psStringAppend(&outroot, "%s/%" PRId64 "/%s", workdir, exp_id, stage); 248 257 249 258 // create a new magicRun for this group 250 magicRunRow *run = magicRunRowAlloc(0, exp_id, "new", workdir, "dirty", label, dvodb, registered, 0); 259 magicDSRunRow *run = magicDSRunRowAlloc( 260 0, // magic_ds_id 261 magic_id, 262 inv_magic_id, 263 "new", 264 stage, 265 stage_id, 266 cam_id, 267 set_label ? set_label : magicRunLabel, 268 outroot, 269 recoveryroot, 270 re_place, 271 0); // remove 272 273 psFree(outroot); 251 274 if (!run) { 252 psAbort("failed to alloc magicRun object"); 253 } 254 255 if (!magicRunInsertObject(config->dbh, run)) { 256 psError(PS_ERR_UNKNOWN, false, "database error"); 257 psFree(run); 258 psFree(insert); 259 psFree(output); 260 psFree(list); 261 if (!psDBRollback(config->dbh)) { 275 psAbort("failed to alloc magicDSRun object"); 276 } 277 278 if (!dry_run) { 279 if (!magicDSRunInsertObject(config->dbh, run)) { 262 280 psError(PS_ERR_UNKNOWN, false, "database error"); 281 psFree(run); 282 psFree(output); 283 psFree(list); 284 if (!psDBRollback(config->dbh)) { 285 psError(PS_ERR_UNKNOWN, false, "database error"); 286 } 287 return false; 263 288 } 264 return false; 265 } 266 267 psS64 magic_id = psDBLastInsertID(config->dbh); // Assigned identifier 268 run->magic_id = magic_id; 289 psS64 magic_ds_id = psDBLastInsertID(config->dbh); // Assigned identifier 290 run->magic_ds_id = magic_ds_id; 291 } 269 292 270 293 psArrayAdd(list, list->n, run); 271 294 psFree(run); 272 273 // Create a suitable insertion query for this run 274 psString thisInsert = psStringCopy(insert); 275 { 276 psString idString = NULL; 277 psStringAppend(&idString, "%" PRId64, magic_id); 278 psStringSubstitute(&thisInsert, idString, "@MAGIC_ID@"); 279 psFree(idString); 280 } 281 { 282 psString idString = NULL; 283 psStringAppend(&idString, "%" PRId64, exp_id); 284 psStringSubstitute(&thisInsert, idString, "@EXP_ID@"); 285 psFree(idString); 286 } 287 288 if (!p_psDBRunQueryF(config->dbh, thisInsert, magic_id, exp_id)) { 289 psError(PS_ERR_UNKNOWN, false, "database error"); 290 psFree(thisInsert); 291 psFree(insert); 292 psFree(output); 293 psFree(list); 294 if (!psDBRollback(config->dbh)) { 295 psError(PS_ERR_UNKNOWN, false, "database error"); 296 } 297 return false; 298 } 299 psFree(thisInsert); 300 } 301 302 if (!psDBCommit(config->dbh)) { 295 } 296 297 if (!dry_run && !psDBCommit(config->dbh)) { 303 298 psError(PS_ERR_UNKNOWN, false, "database error"); 304 299 return false; … … 306 301 psFree(output); 307 302 308 if (!magic RunPrintObjects(stdout, list, !simple)) {303 if (!magicDSRunPrintObjects(stdout, list, !simple)) { 309 304 psError(PS_ERR_UNKNOWN, false, "failed to print object"); 310 305 psFree(list); … … 315 310 316 311 return true; 317 #endif // notyet318 312 } 319 313 … … 344 338 0, // ID 345 339 magic_id, 340 0, // inv_magic_id 346 341 "new", // state 347 342 stage, … … 405 400 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 406 401 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 402 PXOPT_COPY_STR(config->args, where, "-stage", "stage", "=="); 407 403 408 404 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 501 497 psMetadata *row = output->data[0]; 502 498 503 psString stage = psMetadataLookupStr(NULL, row, "stage");499 psString stage= psMetadataLookupStr(NULL, row, "stage"); 504 500 psS64 stage_id = psMetadataLookupS64(NULL, row, "stage_id"); 505 501 506 if (!strcmp(stage, "camera")) { 507 // no there is no magicked column in camProcessedExp 502 ippStage stageNum = ippStringToStage(stage); 503 504 // chose the appropriate query based on the stage 505 switch (stageNum) { 506 case IPP_STAGE_RAW: 507 query = "UPDATE rawImfile SET magicked = %" PRId64 " where exp_id = %" PRId64 " AND class_id = '%s'"; 508 break; 509 case IPP_STAGE_CHIP: 510 query = "UPDATE chipProcessedImfile SET magicked = %" PRId64 " where chip_id = %" PRId64 " AND class_id = '%s'"; 511 break; 512 case IPP_STAGE_CAMERA: 513 // no there is no magicked column in camProcessedExp so we have nothing to do 508 514 psFree(output); 509 515 return true; 510 } 511 512 // chose the appropriate query based on the stage 513 if (!strcmp(stage, "raw")) { 514 query = "UPDATE rawImfile SET magicked = %" PRId64 " where exp_id = %" PRId64 " AND class_id = '%s'"; 515 } else if (!strcmp(stage, "chip")) { 516 query = "UPDATE chipProcessedImfile SET magicked = %" PRId64 " where chip_id = %" PRId64 " AND class_id = '%s'"; 517 } else if (!strcmp(stage, "warp")) { 516 case IPP_STAGE_WARP: 518 517 query = "UPDATE warpSkyfile SET magicked = %" PRId64 " where warp_id = %" PRId64 " AND skycell_id = '%s'"; 519 } else if (!strcmp(stage, "diff")) { 518 break; 519 case IPP_STAGE_DIFF: 520 520 query = "UPDATE diffSkyfile SET magicked = %" PRId64 " where diff_id = %" PRId64 " AND skycell_id = '%s'"; 521 } else { 521 break; 522 default: 522 523 psError(PS_ERR_UNKNOWN, true, "unexpected value for stage: %s found", stage); 523 524 psFree(output); 524 525 return false; 525 526 } 527 526 528 if (!p_psDBRunQueryF(config->dbh, query, magic_ds_id, stage_id, component)) { 527 529 psError(PS_ERR_UNKNOWN, false, "database error"); … … 571 573 psS64 stage_id = psMetadataLookupS64(NULL, row, "stage_id"); 572 574 575 ippStage stageNum = ippStringToStage(stage); 573 576 574 577 // chose the appropriate query based on the stage 575 if (!strcmp(stage, "raw")) { 578 switch (stageNum) { 579 case IPP_STAGE_RAW: 576 580 query = "UPDATE rawExp SET magicked = %" PRId64 " where exp_id = %" PRId64; 577 } else if (!strcmp(stage, "chip")) { 581 break; 582 case IPP_STAGE_CHIP: 578 583 query = "UPDATE chipRun SET magicked = %" PRId64 " where chip_id = %" PRId64; 579 } else if (!strcmp(stage, "camera")) { 584 break; 585 case IPP_STAGE_CAMERA: 580 586 query = "UPDATE camRun SET magicked = %" PRId64 " where cam_id = %" PRId64; 581 } else if (!strcmp(stage, "warp")) { 587 break; 588 case IPP_STAGE_WARP: 582 589 query = "UPDATE warpRun SET magicked = %" PRId64 " where warp_id = %" PRId64; 583 } else if (!strcmp(stage, "diff")) { 590 break; 591 case IPP_STAGE_DIFF: 584 592 query = "UPDATE diffRun SET magicked = %" PRId64 " where diff_id = %" PRId64; 585 } else { 593 break; 594 default: 586 595 psError(PS_ERR_UNKNOWN, true, "unexpected value for stage: %s found", stage); 587 596 psFree(output); … … 671 680 PS_ASSERT_PTR_NON_NULL(cam_id, false); 672 681 673 if (!strcmp(stage, "diff")) { 674 // don't need these ids for diff stage because diff_id is in the magicRun 675 *stage_id = 0; 676 *cam_id = 0; 677 return true; 678 } 679 680 int stageNum; 681 if (!strcmp(stage, "raw")) { 682 stageNum = 0; 683 } else if (!strcmp(stage, "chip")) { 684 stageNum = 1; 685 } else if (!strcmp(stage, "camera")) { 686 stageNum = 2; 687 } else if (!strcmp(stage, "warp")) { 688 stageNum = 3; 689 } else { 690 psError(PXTOOLS_ERR_DATA, true, "%s is not a valid value for stage", stage); 691 return false; 692 } 693 682 int stageNum = ippStringToStage(stage);; 683 if (stageNum == IPP_STAGE_NONE) { 684 psError(PXTOOLS_ERR_DATA, false, "%s is not a valid value for stage", stage); 685 return false; 686 } 694 687 695 688 psString query = pxDataGet("magicdstool_getrunids.sql"); … … 724 717 725 718 *cam_id = psMetadataLookupS64(NULL, row, "cam_id"); 726 if (stageNum == 0) { 719 switch (stageNum) { 720 case IPP_STAGE_RAW: 727 721 *stage_id = psMetadataLookupS64(NULL, row, "exp_id"); 728 } else if (stageNum == 1) { 722 break; 723 case IPP_STAGE_CHIP: 729 724 *stage_id = psMetadataLookupS64(NULL, row, "chip_id"); 730 } else if (stageNum == 2) { 725 break; 726 case IPP_STAGE_CAMERA: 731 727 *stage_id = *cam_id; 732 } else if (stageNum == 3) { 728 return true; 729 case IPP_STAGE_WARP: 733 730 *stage_id = psMetadataLookupS64(NULL, row, "warp_id"); 731 break; 732 case IPP_STAGE_DIFF: 733 *stage_id = psMetadataLookupS64(NULL, row, "diff_id"); 734 break; 734 735 } 735 736 -
branches/eam_branches/20090715/ippTools/src/magicdstoolConfig.c
r24693 r25022 49 49 // -definebyquery 50 50 psMetadata *definebyqueryArgs = psMetadataAlloc(); 51 #ifdef notyet 52 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL); 53 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 54 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-dvodb", 0, "define dvodb", NULL); 55 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 56 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search exp_id", 0); 57 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-diff_label", 0, "select diff label", NULL); 58 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-good_frac", 0, "limit good_frac", NAN); 59 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-available", 0, "process what's immediately available?", false); 60 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-new", 0, "generate new run even if existing?", false); 61 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 62 #endif 51 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-stage", 0, "define stage (required)", NULL); 52 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir", NULL); 53 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-recoveryroot", 0, "define recovery directory", NULL); 54 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-replace", 0, "replace input files with the destreaked versions", false); 55 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_label", 0, "define label", NULL); 56 57 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by magicRun.label", NULL); 58 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0); 59 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0); 60 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0); 61 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp_id", 0); 62 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-diff_id", 0, "search by diff_id", 0); 63 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic_id", 0); 64 psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-streaks_max", 0, "maximum number of streaks", 0); 65 66 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-rerun", 0, "queue a new run even if one arleady exists", false); 67 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-dry_run", 0, "don't queue runs just display what would be queued", false); 68 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 69 psMetadataAddU64(definebyqueryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 63 70 64 71 // -definerun 65 72 psMetadata *definerunArgs = psMetadataAlloc(); 66 73 psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-magic_id", 0, "define magic_id (required)", 0); 67 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-stage", 0, "define output directory(required)", NULL);74 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-stage", 0, "define stage for run (required)", NULL); 68 75 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-outroot", 0, "define output directory (required)", NULL); 69 76 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-recoveryroot", 0, "define recovery directory", NULL); … … 89 96 psMetadataAddS64(todestreakArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0); 90 97 psMetadataAddStr(todestreakArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL); 98 psMetadataAddStr(todestreakArgs, PS_LIST_TAIL, "-stage", 0, "limit query to stage", NULL); 91 99 psMetadataAddU64(todestreakArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 92 100 psMetadataAddBool(todestreakArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); -
branches/eam_branches/20090715/ippTools/src/magictool.c
r24551 r25022 47 47 static bool revertmaskMode(pxConfig *config); 48 48 static bool maskMode(pxConfig *config); 49 static bool censorrunMode(pxConfig *config); 49 50 50 51 static bool setmagicRunState(pxConfig *config, psS64 magic_id, const char *state); … … 85 86 MODECASE(MAGICTOOL_MODE_REVERTMASK, revertmaskMode); 86 87 MODECASE(MAGICTOOL_MODE_MASK, maskMode); 88 MODECASE(MAGICTOOL_MODE_CENSORRUN, censorrunMode); 87 89 default: 88 90 psAbort("invalid option (this should not happen)"); … … 580 582 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 581 583 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 584 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 582 585 583 586 psString query = psStringCopy("UPDATE magicRun SET fault = 0, state = 'new' WHERE fault != 0"); … … 801 804 // treat limit == 0 as "no limit" 802 805 if (limit) { 803 psString limitString = psDBGenerateLimitSQL(limit); 806 // cut limit in half 807 // hack to prevent pending leaf nodes from blocking branch nodes 808 psString limitString = psDBGenerateLimitSQL((limit + 1) / 2); 804 809 psStringAppend(&query, " %s", limitString); 805 810 psFree(limitString); … … 847 852 848 853 // look for tree nodes that need to be processed 849 // XXX: This gets all nodes from all magicRuns that are in 'new'state 850 // That doens't seem particularly efficient 851 query = pxDataGet("magictool_toprocess_tree.sql"); 854 query = pxDataGet("magictool_toprocess_runs.sql"); 852 855 if (!query) { 853 856 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); … … 855 858 } 856 859 860 { 861 psString limitString = psDBGenerateLimitSQL( 100 ); 862 psStringAppend(&query, " %s", limitString); 863 psFree(limitString); 864 } 857 865 858 866 if (!p_psDBRunQueryF(config->dbh, query, whereString ? whereString : "")) { … … 865 873 psFree(query); 866 874 867 psArray *magic Tree= p_psDBFetchResult(config->dbh);868 if (!magic Tree) {875 psArray *magicRuns = p_psDBFetchResult(config->dbh); 876 if (!magicRuns) { 869 877 psErrorCode err = psErrorCodeLast(); 870 878 switch (err) { … … 879 887 return false; 880 888 } 881 if (!psArrayLength(magic Tree)) {889 if (!psArrayLength(magicRuns)) { 882 890 psTrace("magictool", PS_LOG_INFO, "no rows found"); 883 psFree(magic Tree);891 psFree(magicRuns); 884 892 return true; 885 893 } 886 894 887 // entries are ordered by magic_id 888 long index = 0; 889 while (index < psArrayLength(magicTree)) { 890 bool status; 895 query = pxDataGet("magictool_toprocess_tree.sql"); 896 if (!query) { 897 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 898 return false; 899 } 900 901 for (psS64 index = 0; index < psArrayLength(magicRuns); index++) { 891 902 if (limit && (psArrayLength(output) >= limit)) { 892 903 break; 893 904 } 894 psS64 current_magic_id = psMetadataLookupS64(&status, magicTree->data[index], "magic_id"); 905 bool status; 906 psS64 magic_id = psMetadataLookupS64(&status, magicRuns->data[index], "magic_id"); 895 907 if (!status) { 896 908 psAbort("failed to lookup value for magic_id column"); 897 909 } 898 899 // find the end of this block 900 long first = index; 901 long last = index; 902 for (long i = index + 1; i < psArrayLength(magicTree); i++) { 903 psS64 magic_id = psMetadataLookupS64(&status, magicTree->data[i], "magic_id"); 904 if (!status) { 905 psAbort("failed to lookup value for magic_id column"); 910 911 whereString = NULL; 912 psStringAppend(&whereString, "\nAND (magic_id = %" PRId64 ")", magic_id); 913 if (!p_psDBRunQueryF(config->dbh, query, whereString )) { 914 psError(PS_ERR_UNKNOWN, false, "database error"); 915 psFree(whereString); 916 psFree(query); 917 return false; 918 } 919 psFree(whereString); 920 psArray *magicTree = p_psDBFetchResult(config->dbh); 921 if (!magicTree) { 922 psErrorCode err = psErrorCodeLast(); 923 switch (err) { 924 case PS_ERR_DB_CLIENT: 925 psError(PXTOOLS_ERR_SYS, false, "database error"); 926 case PS_ERR_DB_SERVER: 927 psError(PXTOOLS_ERR_PROG, false, "database error"); 928 default: 929 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 906 930 } 907 if (magic_id != current_magic_id) { 908 break; 909 } 910 last = i; 911 } 912 913 index = last + 1; 914 915 psHash *forest = psHashAlloc(last - first + 1); 931 932 return false; 933 } 934 psS64 length = psArrayLength(magicTree); 935 if (!length) { 936 psTrace("magictool", PS_LOG_INFO, "no rows found for magic_id %" PRId64, magic_id); 937 psFree(magicTree); 938 continue; 939 } 940 941 psHash *forest = psHashAlloc(length); 916 942 917 943 // convert the array of metadata into a pxTree structure 918 for (long i = first; i <= last; i++) {944 for (long i = 0; i < length; i++) { 919 945 bool status; 920 946 psString node = psMetadataLookupStr(&status, magicTree->data[i], "node"); … … 941 967 pxTreeCrawl(root, findReadyNodes, output); 942 968 psFree(root); 943 944 } 945 psFree(magicTree); 969 psFree(magicTree); 970 } 946 971 947 972 if (psArrayLength(output)) { … … 1367 1392 return true; 1368 1393 } 1394 1395 static bool censorStage(pxConfig *config, psString stage, psString whereClause) 1396 { 1397 psString queryFile = NULL; 1398 psStringAppend(&queryFile, "magictool_censor_%s.sql", stage); 1399 psString query = pxDataGet(queryFile); 1400 if (!query) { 1401 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement from %s", queryFile); 1402 psFree(queryFile); 1403 if (!psDBRollback(config->dbh)) { 1404 psError(PS_ERR_UNKNOWN, false, "database error"); 1405 } 1406 return false; 1407 } 1408 psFree(queryFile); 1409 1410 psStringAppend(&query, " WHERE %s", whereClause); 1411 1412 if (!p_psDBRunQuery(config->dbh, query)) { 1413 psError(PS_ERR_UNKNOWN, false, "database error"); 1414 psFree(query); 1415 if (!psDBRollback(config->dbh)) { 1416 psError(PS_ERR_UNKNOWN, false, "database error"); 1417 } 1418 return false; 1419 } 1420 psFree(query); 1421 1422 return true; 1423 } 1424 1425 static bool censorrunMode(pxConfig *config) 1426 { 1427 PS_ASSERT_PTR_NON_NULL(config, false); 1428 1429 psError(PS_ERR_PROGRAMMING, true, "-censorrun mode not ready yet"); 1430 return false; 1431 1432 psMetadata *where = psMetadataAlloc(); 1433 1434 // at least one of these required 1435 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 1436 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1437 1438 if (!psListLength(where->list)) { 1439 psError(PS_ERR_UNKNOWN, true, "either -exp_id or -magic_id is required"); 1440 psFree(where); 1441 return false; 1442 } 1443 1444 psString query = psStringCopy("UPDATE magicRun SET state = 'censored'"); 1445 1446 psString whereClause = psDBGenerateWhereConditionSQL(where, "magicRun"); 1447 psFree(where); 1448 psStringAppend(&query, " WHERE %s", whereClause); 1449 1450 if (!psDBTransaction(config->dbh)) { 1451 psError(PS_ERR_UNKNOWN, false, "database error"); 1452 return false; 1453 } 1454 1455 if (!p_psDBRunQuery(config->dbh, query)) { 1456 psError(PS_ERR_UNKNOWN, false, "database error"); 1457 psFree(whereClause); 1458 psFree(query); 1459 return false; 1460 } 1461 psFree(query); 1462 1463 psS32 numUpdated = psDBAffectedRows(config->dbh); 1464 if (numUpdated == 0) { 1465 psError(PS_ERR_UNKNOWN, false, "failed to censor magicRun"); 1466 psFree(whereClause); 1467 return false; 1468 } 1469 1470 // Now queue any destreaked files to be re-verted 1471 1472 // note: on failure censorStage issues the rollback 1473 if (!censorStage(config, "raw", whereClause)) { 1474 psFree(whereClause); 1475 return false; 1476 } 1477 if (!censorStage(config, "chip", whereClause)) { 1478 psFree(whereClause); 1479 return false; 1480 } 1481 if (!censorStage(config, "camera", whereClause)) { 1482 psFree(whereClause); 1483 return false; 1484 } 1485 if (!censorStage(config, "warp", whereClause)) { 1486 psFree(whereClause); 1487 return false; 1488 } 1489 if (!censorStage(config, "diff", whereClause)) { 1490 psFree(whereClause); 1491 return false; 1492 } 1493 1494 psFree(whereClause); 1495 1496 if (!psDBCommit(config->dbh)) { 1497 psError(PS_ERR_UNKNOWN, false, "database error"); 1498 return false; 1499 } 1500 1501 return true; 1502 } -
branches/eam_branches/20090715/ippTools/src/magictool.h
r20700 r25022 41 41 MAGICTOOL_MODE_REVERTMASK, 42 42 MAGICTOOL_MODE_MASK, 43 MAGICTOOL_MODE_DIFFSKYFILE, 44 MAGICTOOL_MODE_WARPSKYFILE, 45 MAGICTOOL_MODE_CHIPPROCESSEDIMFILE, 46 MAGICTOOL_MODE_RAWIMFILE, 43 MAGICTOOL_MODE_CENSORRUN, 47 44 } MAGICtoolMode; 48 45 -
branches/eam_branches/20090715/ippTools/src/magictoolConfig.c
r24551 r25022 108 108 psMetadataAddS64(reverttreeArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magictool ID", 0); 109 109 psMetadataAddS16(reverttreeArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 110 psMetadataAddStr(reverttreeArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL); 110 111 111 112 // -inputs … … 160 161 psMetadataAddBool(maskArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 161 162 162 #ifdef notdef 163 // -diffskyfile 164 psMetadata *diffskyfileArgs = psMetadataAlloc(); 165 psMetadataAddS64(diffskyfileArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID (required)", 0); 166 psMetadataAddStr(diffskyfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class identifier", NULL); 167 psMetadataAddStr(diffskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "define skycell identifier", NULL); 168 psMetadataAddBool(diffskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 169 170 // -warpskyfile 171 psMetadata *warpskyfileArgs = psMetadataAlloc(); 172 psMetadataAddS64(warpskyfileArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID (required)", 0); 173 psMetadataAddBool(warpskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 174 psMetadataAddStr(warpskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "define skycell identifier", NULL); 175 176 // -chipprocessedimfile 177 psMetadata *chipprocessedimfileArgs = psMetadataAlloc(); 178 psMetadataAddS64(chipprocessedimfileArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID (required)", 0); 179 psMetadataAddStr(chipprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class identifier", NULL); 180 psMetadataAddBool(chipprocessedimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 181 182 // -rawimfile 183 psMetadata *rawimfileArgs = psMetadataAlloc(); 184 psMetadataAddS64(rawimfileArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID (required)", 0); 185 psMetadataAddStr(rawimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class identifier", NULL); 186 psMetadataAddBool(rawimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 187 #endif // notdef 163 // -censorun 164 psMetadata *censorrunArgs = psMetadataAlloc(); 165 psMetadataAddS64(censorrunArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID", 0); 166 psMetadataAddS64(censorrunArgs, PS_LIST_TAIL, "-exp_id", 0, "define exposure ID", 0); 188 167 189 168 psFree(now); … … 208 187 PXOPT_ADD_MODE("-revertmask", "", MAGICTOOL_MODE_REVERTMASK, revertmaskArgs); 209 188 PXOPT_ADD_MODE("-mask", "", MAGICTOOL_MODE_MASK, maskArgs); 210 #ifdef notdef 211 PXOPT_ADD_MODE("-diffskyfile", "", MAGICTOOL_MODE_DIFFSKYFILE, diffskyfileArgs); 212 PXOPT_ADD_MODE("-warpskyfile", "", MAGICTOOL_MODE_WARPSKYFILE, warpskyfileArgs); 213 PXOPT_ADD_MODE("-chipprocessedimfile", "", MAGICTOOL_MODE_CHIPPROCESSEDIMFILE, chipprocessedimfileArgs); 214 PXOPT_ADD_MODE("-rawimfile", "", MAGICTOOL_MODE_RAWIMFILE, rawimfileArgs); 215 #endif 189 PXOPT_ADD_MODE("-censorrun", "", MAGICTOOL_MODE_CENSORRUN, censorrunArgs); 216 190 217 191 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/eam_branches/20090715/ippTools/src/pstamptool.c
r21412 r25022 34 34 static bool datastoreMode(pxConfig *config); 35 35 static bool moddatastoreMode(pxConfig *config); 36 static bool add ReqMode(pxConfig *config);37 static bool completed ReqMode(pxConfig *config);38 static bool list ReqMode(pxConfig *config);39 static bool pending ReqMode(pxConfig *config);40 static bool update ReqMode(pxConfig *config);41 static bool revert ReqMode(pxConfig *config);42 static bool add JobMode(pxConfig *config);43 static bool list JobMode(pxConfig *config);44 static bool pending JobMode(pxConfig *config);45 static bool update JobMode(pxConfig *config);46 static bool add ProjectMode(pxConfig *config);36 static bool addreqMode(pxConfig *config); 37 static bool completedreqMode(pxConfig *config); 38 static bool listreqMode(pxConfig *config); 39 static bool pendingreqMode(pxConfig *config); 40 static bool updatereqMode(pxConfig *config); 41 static bool revertreqMode(pxConfig *config); 42 static bool addjobMode(pxConfig *config); 43 static bool listjobMode(pxConfig *config); 44 static bool pendingjobMode(pxConfig *config); 45 static bool updatejobMode(pxConfig *config); 46 static bool addprojectMode(pxConfig *config); 47 47 static bool projectMode(pxConfig *config); 48 static bool mod ProjectMode(pxConfig *config);48 static bool modprojectMode(pxConfig *config); 49 49 50 50 # define MODECASE(caseName, func) \ … … 70 70 MODECASE(PSTAMPTOOL_MODE_DATASTORE, datastoreMode); 71 71 MODECASE(PSTAMPTOOL_MODE_MODDATASTORE, moddatastoreMode); 72 MODECASE(PSTAMPTOOL_MODE_ADDREQ, add ReqMode);73 MODECASE(PSTAMPTOOL_MODE_COMPLETEDREQ, completed ReqMode);74 MODECASE(PSTAMPTOOL_MODE_LISTREQ, list ReqMode);75 MODECASE(PSTAMPTOOL_MODE_PENDINGREQ, pending ReqMode);76 MODECASE(PSTAMPTOOL_MODE_UPDATEREQ, update ReqMode);77 MODECASE(PSTAMPTOOL_MODE_REVERTREQ, revert ReqMode);78 MODECASE(PSTAMPTOOL_MODE_ADDJOB, add JobMode);79 MODECASE(PSTAMPTOOL_MODE_LISTJOB, list JobMode);80 MODECASE(PSTAMPTOOL_MODE_PENDINGJOB, pending JobMode);81 MODECASE(PSTAMPTOOL_MODE_UPDATEJOB, update JobMode);82 MODECASE(PSTAMPTOOL_MODE_ADDPROJECT, add ProjectMode);83 MODECASE(PSTAMPTOOL_MODE_MODPROJECT, mod ProjectMode);72 MODECASE(PSTAMPTOOL_MODE_ADDREQ, addreqMode); 73 MODECASE(PSTAMPTOOL_MODE_COMPLETEDREQ, completedreqMode); 74 MODECASE(PSTAMPTOOL_MODE_LISTREQ, listreqMode); 75 MODECASE(PSTAMPTOOL_MODE_PENDINGREQ, pendingreqMode); 76 MODECASE(PSTAMPTOOL_MODE_UPDATEREQ, updatereqMode); 77 MODECASE(PSTAMPTOOL_MODE_REVERTREQ, revertreqMode); 78 MODECASE(PSTAMPTOOL_MODE_ADDJOB, addjobMode); 79 MODECASE(PSTAMPTOOL_MODE_LISTJOB, listjobMode); 80 MODECASE(PSTAMPTOOL_MODE_PENDINGJOB, pendingjobMode); 81 MODECASE(PSTAMPTOOL_MODE_UPDATEJOB, updatejobMode); 82 MODECASE(PSTAMPTOOL_MODE_ADDPROJECT, addprojectMode); 83 MODECASE(PSTAMPTOOL_MODE_MODPROJECT, modprojectMode); 84 84 MODECASE(PSTAMPTOOL_MODE_PROJECT, projectMode); 85 85 default: … … 220 220 } 221 221 222 static bool add ReqMode(pxConfig *config)222 static bool addreqMode(pxConfig *config) 223 223 { 224 224 PS_ASSERT_PTR_NON_NULL(config, false); … … 251 251 } 252 252 253 static bool pending ReqMode(pxConfig *config)253 static bool pendingreqMode(pxConfig *config) 254 254 { 255 255 PS_ASSERT_PTR_NON_NULL(config, false); … … 311 311 } 312 312 313 static bool list ReqMode(pxConfig *config)313 static bool listreqMode(pxConfig *config) 314 314 { 315 315 PS_ASSERT_PTR_NON_NULL(config, false); … … 359 359 } 360 360 361 static bool completed ReqMode(pxConfig *config)361 static bool completedreqMode(pxConfig *config) 362 362 { 363 363 PS_ASSERT_PTR_NON_NULL(config, false); … … 408 408 } 409 409 410 static bool update ReqMode(pxConfig *config)410 static bool updatereqMode(pxConfig *config) 411 411 { 412 412 PS_ASSERT_PTR_NON_NULL(config, false); … … 472 472 } 473 473 474 static bool revert ReqMode(pxConfig *config)474 static bool revertreqMode(pxConfig *config) 475 475 { 476 476 PS_ASSERT_PTR_NON_NULL(config, false); … … 493 493 } 494 494 495 static bool add JobMode(pxConfig *config)495 static bool addjobMode(pxConfig *config) 496 496 { 497 497 bool stampJob = false; … … 500 500 PS_ASSERT_PTR_NON_NULL(config, false); 501 501 502 PXOPT_LOOKUP_S64(uri, config->args, "-uri", true, false);503 502 PXOPT_LOOKUP_S64(req_id, config->args, "-req_id", true, false); 504 503 PXOPT_LOOKUP_STR(rownum, config->args, "-rownum", true, false); 505 504 PXOPT_LOOKUP_STR(job_type, config->args, "-job_type", false, false); 506 505 PXOPT_LOOKUP_STR(outputBase, config->args, "-outputBase", true, false); 507 PXOPT_LOOKUP_STR(argString, config->args, "-args", false, false);508 506 PXOPT_LOOKUP_STR(stateString, config->args, "-state", false, false); 509 507 PXOPT_LOOKUP_STR(fault, config->args, "-fault", false, false); … … 519 517 return false; 520 518 } 521 522 if (stampJob && !argString) {523 psError(PS_ERR_UNKNOWN, true, "-args is required for stamp job");524 return false;525 }526 527 519 if (stampJob) { 528 520 query = pxDataGet("pstamptool_addjob_stampjob.sql"); … … 535 527 } 536 528 537 if (!p_psDBRunQueryF(config->dbh, query, req_id, rownum, stateString, job_type, uri, exp_id, outputBase, fault, argString)) {529 if (!p_psDBRunQueryF(config->dbh, query, req_id, rownum, stateString, job_type, exp_id, outputBase, fault)) { 538 530 psError(PS_ERR_UNKNOWN, false, "database error"); 539 531 return false; … … 554 546 } 555 547 556 static bool list JobMode(pxConfig *config)548 static bool listjobMode(pxConfig *config) 557 549 { 558 550 PS_ASSERT_PTR_NON_NULL(config, false); … … 626 618 } 627 619 628 static bool pending JobMode(pxConfig *config)620 static bool pendingjobMode(pxConfig *config) 629 621 { 630 622 PS_ASSERT_PTR_NON_NULL(config, false); … … 688 680 } 689 681 690 static bool update JobMode(pxConfig *config)682 static bool updatejobMode(pxConfig *config) 691 683 { 692 684 PS_ASSERT_PTR_NON_NULL(config, false); … … 723 715 return true; 724 716 } 725 static bool add ProjectMode(pxConfig *config)717 static bool addprojectMode(pxConfig *config) 726 718 { 727 719 PS_ASSERT_PTR_NON_NULL(config, false); … … 801 793 return true; 802 794 } 803 static bool mod ProjectMode(pxConfig *config)795 static bool modprojectMode(pxConfig *config) 804 796 { 805 797 PS_ASSERT_PTR_NON_NULL(config, false); -
branches/eam_branches/20090715/ippTools/src/pstamptoolConfig.c
r20151 r25022 100 100 // -addjob 101 101 psMetadata *addjobArgs = psMetadataAlloc(); 102 psMetadataAddStr(addjobArgs, PS_LIST_TAIL, "-uri", 0, "define job file uri", NULL);103 102 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-req_id", 0, "define job req_id", 0); 104 103 psMetadataAddStr(addjobArgs, PS_LIST_TAIL, "-rownum", 0, "define job rownum", NULL); 105 104 psMetadataAddStr(addjobArgs, PS_LIST_TAIL, "-job_type", 0, "define job job_type", "stamp"); 106 105 psMetadataAddStr(addjobArgs, PS_LIST_TAIL, "-outputBase", 0, "define job outputBase", NULL); 107 psMetadataAddStr(addjobArgs, PS_LIST_TAIL, "-args", 0, "define job args", NULL);108 106 psMetadataAddStr(addjobArgs, PS_LIST_TAIL, "-state", 0, "new state", "run"); 109 107 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-exp_id", 0, "exposure id", 0); … … 128 126 psMetadataAddS64(updatejobArgs, PS_LIST_TAIL, "-job_id", 0, "req_id for which to change state", 0); 129 127 psMetadataAddStr(updatejobArgs, PS_LIST_TAIL, "-state", 0, "new state", NULL); 130 // psMetadataAddStr(updatejobArgs, PS_LIST_TAIL, "-result", 0, "new result", NULL);131 128 psMetadataAddStr(updatejobArgs, PS_LIST_TAIL, "-fault", 0, "new result", NULL); 132 129 -
branches/eam_branches/20090715/ippTools/src/pxcam.c
r24733 r25022 68 68 psMetadataAddF64(md, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 69 69 psMetadataAddStr(md, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 70 psMetadataAddF32(md, PS_LIST_TAIL, "-s olang_min", 0, "define min solar angle", NAN);71 psMetadataAddF32(md, PS_LIST_TAIL, "-s olang_max", 0, "define max solar angle", NAN);70 psMetadataAddF32(md, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 71 psMetadataAddF32(md, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 72 72 73 73 return true; … … 113 113 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<"); 114 114 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "=="); 115 PXOPT_COPY_F32(config->args, where, "-s olang_min", "rawExp.solang", ">=");116 PXOPT_COPY_F32(config->args, where, "-s olang_max", "rawExp.solang", "<");115 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "rawExp.sun_angle", ">="); 116 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "rawExp.sun_angle", "<"); 117 117 118 118 return true; -
branches/eam_branches/20090715/ippTools/src/pxchip.c
r24733 r25022 69 69 psMetadataAddF64(md, PS_LIST_TAIL, "-posang_min", 0, "search by min rotator position angle", NAN); 70 70 psMetadataAddF64(md, PS_LIST_TAIL, "-posang_max", 0, "search by max rotator position angle", NAN); 71 psMetadataAddF32(md, PS_LIST_TAIL, "-s olang_min", 0, "search by min solar angle", NAN);72 psMetadataAddF32(md, PS_LIST_TAIL, "-s olang_max", 0, "search by max solar angle", NAN);71 psMetadataAddF32(md, PS_LIST_TAIL, "-sun_angle_min", 0, "search by min solar angle", NAN); 72 psMetadataAddF32(md, PS_LIST_TAIL, "-sun_angle_max", 0, "search by max solar angle", NAN); 73 73 psMetadataAddStr(md, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 74 74 psMetadataAddStr(md, PS_LIST_TAIL, "-comment", 0, "search by comment field (LIKE comparison)", NULL); … … 122 122 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<"); 123 123 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "=="); 124 PXOPT_COPY_F32(config->args, where, "-s olang_min", "rawExp.solang", ">=");125 PXOPT_COPY_F32(config->args, where, "-s olang_max", "rawExp.solang", "<");124 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "rawExp.sun_angle", ">="); 125 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "rawExp.sun_angle", "<"); 126 126 PXOPT_COPY_STR(config->args, where, "-comment", "rawExp.comment", "LIKE"); 127 127 PXOPT_COPY_STR(config->args, where, "-obs_mode", "rawExp.obs_mode", "=="); -
branches/eam_branches/20090715/ippTools/src/regtool.c
r24733 r25022 923 923 PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<"); 924 924 PXOPT_COPY_STR(config->args, where, "-object", "object", "=="); 925 PXOPT_COPY_F32(config->args, where, "-s olang_min", "solang", ">=");926 PXOPT_COPY_F32(config->args, where, "-s olang_max", "solang", "<");925 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "sun_angle", ">="); 926 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "sun_angle", "<"); 927 927 928 928 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); -
branches/eam_branches/20090715/ippTools/src/regtoolConfig.c
r24733 r25022 138 138 ADD_OPT(Bool, processedimfileArgs, "-faulted", "only return imfiles with a fault status set", false); 139 139 ADD_OPT(Bool, processedimfileArgs, "-simple", "use the simple output format", false); 140 ADD_OPT(Bool, processedimfileArgs, "-ordered_by_date", "force output to be in DATE order", false); 140 141 141 142 // -revertprocessedimfile … … 273 274 psMetadataAddF64(processedexpArgs, PS_LIST_TAIL, "-posang_max", 0, "search by max rotator position angle", NAN); 274 275 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 275 psMetadataAddF32(processedexpArgs, PS_LIST_TAIL, "-s olang_min", 0,"define min solar angle", NAN);276 psMetadataAddF32(processedexpArgs, PS_LIST_TAIL, "-s olang_max", 0,"define max solar angle", NAN);276 psMetadataAddF32(processedexpArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "define min solar angle", NAN); 277 psMetadataAddF32(processedexpArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "define max solar angle", NAN); 277 278 278 279 psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); -
branches/eam_branches/20090715/ippTools/src/stacktool.c
r24736 r25022 133 133 PXOPT_COPY_F32(config->args, where, "-select_posang_min", "rawExp.posang", ">="); 134 134 PXOPT_COPY_F32(config->args, where, "-select_posang_max", "rawExp.posang", "<="); 135 PXOPT_COPY_F32(config->args, where, "-select_s olang_min", "rawExp.solang", ">=");136 PXOPT_COPY_F32(config->args, where, "-select_s olang_max", "rawExp.solang", "<=");135 PXOPT_COPY_F32(config->args, where, "-select_sun_angle_min", "rawExp.sun_angle", ">="); 136 PXOPT_COPY_F32(config->args, where, "-select_sun_angle_max", "rawExp.sun_angle", "<="); 137 137 PXOPT_COPY_F32(config->args, where, "-select_fwhm_major_min", "camProcessedExp.fwhm_major", ">="); 138 138 PXOPT_COPY_F32(config->args, where, "-select_fwhm_major_max", "camProcessedExp.fwhm_major", "<="); … … 857 857 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 858 858 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 859 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "=="); 860 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "=="); 859 861 860 862 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 931 933 PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "=="); 932 934 933 if (!psDBTransaction(config->dbh)) { 934 psError(PS_ERR_UNKNOWN, false, "database error"); 935 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 935 936 psFree(where); 936 return false; 937 } 938 939 int numStacks; // Number of stacks affected 940 941 // Update state to 'new' 942 { 943 psString update = pxDataGet("stacktool_revertsumskyfile_update.sql"); 944 if (!update) { 945 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 946 if (!psDBRollback(config->dbh)) { 947 psError(PS_ERR_UNKNOWN, false, "database error"); 948 } 949 return false; 950 } 951 952 if (psListLength(where->list)) { 953 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 954 psStringAppend(&update, " AND %s", whereClause); 955 psFree(whereClause); 956 } 957 958 if (!p_psDBRunQuery(config->dbh, update)) { 959 psError(PS_ERR_UNKNOWN, false, "database error"); 960 psFree(update); 961 psFree(where); 962 if (!psDBRollback(config->dbh)) { 963 psError(PS_ERR_UNKNOWN, false, "database error"); 964 } 965 return false; 966 } 967 psFree(update); 968 969 numStacks = psDBAffectedRows(config->dbh); 970 971 if (numStacks < 1) { 972 psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row"); 973 if (!psDBRollback(config->dbh)) { 974 psError(PS_ERR_UNKNOWN, false, "database error"); 975 } 976 return false; 977 } 937 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 938 return false; 978 939 } 979 940 980 941 // Delete product 981 { 982 psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql"); 983 if (!delete) { 984 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 985 if (!psDBRollback(config->dbh)) { 986 psError(PS_ERR_UNKNOWN, false, "database error"); 987 } 988 return false; 989 } 990 991 if (psListLength(where->list)) { 992 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 993 psStringAppend(&delete, " AND %s", whereClause); 994 psFree(whereClause); 995 } 996 997 if (!p_psDBRunQuery(config->dbh, delete)) { 998 psError(PS_ERR_UNKNOWN, false, "database error"); 999 psFree(delete); 1000 psFree(where); 1001 if (!psDBRollback(config->dbh)) { 1002 psError(PS_ERR_UNKNOWN, false, "database error"); 1003 } 1004 return false; 1005 } 942 psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql"); 943 if (!delete) { 944 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 945 return false; 946 } 947 948 if (psListLength(where->list)) { 949 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 950 psStringAppend(&delete, " AND %s", whereClause); 951 psFree(whereClause); 952 } 953 954 if (!p_psDBRunQuery(config->dbh, delete)) { 955 psError(PS_ERR_UNKNOWN, false, "database error"); 1006 956 psFree(delete); 1007 1008 if (psDBAffectedRows(config->dbh) != numStacks) { 1009 psError(PS_ERR_UNKNOWN, true, "Updated and deleted different number of entries!"); 1010 psFree(where); 1011 if (!psDBRollback(config->dbh)) { 1012 psError(PS_ERR_UNKNOWN, false, "database error"); 1013 } 1014 return false; 1015 } 1016 1017 } 1018 1019 if (!psDBCommit(config->dbh)) { 1020 psError(PS_ERR_UNKNOWN, false, "database error"); 1021 return false; 1022 } 957 psFree(where); 958 return false; 959 } 960 psFree(delete); 961 962 int numRows = psDBAffectedRows(config->dbh); // Number of row affected 963 psLogMsg("stacktool", PS_LOG_INFO, "Deleted %d rows", numRows); 1023 964 1024 965 psFree(where); -
branches/eam_branches/20090715/ippTools/src/stacktoolConfig.c
r24664 r25022 71 71 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min", 0, "define min rotator position angle", NAN); 72 72 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max", 0, "define max rotator position angle", NAN); 73 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_s olang_min", 0, "define min solar angle", NAN);74 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_s olang_max", 0, "define max solar angle", NAN);73 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_sun_angle_min", 0, "define min solar angle", NAN); 74 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_sun_angle_max", 0, "define max solar angle", NAN); 75 75 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_fwhm_major_min", 0, "define min fwhm (major axis)", NAN); 76 76 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_fwhm_major_max", 0, "define max fwhm (major axis)", NAN); … … 159 159 psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0, "search by stack ID", 0); 160 160 psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 161 psMetadataAddStr(sumskyfileArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID", 0); 162 psMetadataAddStr(sumskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", 0); 161 163 psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 162 164 psMetadataAddStr(sumskyfileArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exposure name", NULL); … … 169 171 psMetadataAddStr(revertsumskyfileArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0); 170 172 psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 173 psMetadataAddBool(revertsumskyfileArgs, PS_LIST_TAIL, "-all", 0, "allow no search terms", 0); 171 174 172 175 // -pendingcleanuprun -
branches/eam_branches/20090715/ippTools/src/warptool.c
r24733 r25022 234 234 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<"); 235 235 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "=="); 236 PXOPT_COPY_F32(config->args, where, "-s olang_min", "rawExp.solang",">=");237 PXOPT_COPY_F32(config->args, where, "-s olang_max", "rawExp.solang","<");236 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "rawExp.sun_angle", ">="); 237 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "rawExp.sun_angle", "<"); 238 238 PXOPT_COPY_STR(config->args, where, "-reduction", "fakeRun.reduction", "=="); 239 239 pxAddLabelSearchArgs (config, where, "-label", "fakeRun.label", "=="); … … 1190 1190 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpSkyfile.warp_id", "=="); 1191 1191 PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "=="); 1192 PXOPT_COPY_S64(config->args, where, "-warp_skyfile_id", "warpImfile.warp_skyfile_id", "=="); 1193 PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "=="); 1192 1194 PXOPT_COPY_STR(config->args, where, "-tess_id", "warpSkyfile.tess_id", "=="); 1193 1195 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); -
branches/eam_branches/20090715/ippTools/src/warptoolConfig.c
r24733 r25022 89 89 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0, "search by max rotator position angle", NAN); 90 90 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 91 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-s olang_min", 0, "search by min solar angle", NAN);92 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-s olang_max", 0, "search by max solar angle", NAN);91 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "search by min solar angle", NAN); 92 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "search by max solar angle", NAN); 93 93 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "search by fakeRun reduction class", NULL); 94 94 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search on fakeRun label", NULL); … … 208 208 // -warped 209 209 psMetadata *warpedArgs = psMetadataAlloc(); 210 psMetadataAddS64(warpedArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warptool ID", 0); 211 psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-skycell_id", 0, "define skycell ID", NULL); 212 psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-tess_id", 0, "define tessellation ID", NULL); 213 psMetadataAddS64(warpedArgs, PS_LIST_TAIL, "-exp_id", 0, "define exposure tag", 0); 214 psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure tag", 0); 215 psMetadataAddS64(warpedArgs, PS_LIST_TAIL, "-fake_id", 0, "define phase 3 version of exposure tag", 0); 210 psMetadataAddS64(warpedArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warptool ID", 0); 211 psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); 212 psMetadataAddS64(warpedArgs, PS_LIST_TAIL, "-warp_skyfile_id", 0, "search by skyfile ID", 0); 213 psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tessellation ID", NULL); 214 psMetadataAddS64(warpedArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure tag", 0); 215 psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exposure tag", 0); 216 psMetadataAddS64(warpedArgs, PS_LIST_TAIL, "-fake_id", 0, "search by phase 3 version of exposure tag", 0); 216 217 psMetadataAddU64(warpedArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 217 psMetadataAddBool(warpedArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);218 psMetadataAddBool(warpedArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 218 219 219 220 // -revertwarped
Note:
See TracChangeset
for help on using the changeset viewer.
