Changeset 19621
- Timestamp:
- Sep 19, 2008, 2:11:37 PM (18 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 18 edited
-
ippScripts/scripts/detrend_resid_imfile.pl (modified) (7 diffs)
-
ippTasks/Makefile.am (modified) (1 diff)
-
ippTasks/automate.pro (modified) (2 diffs)
-
ippTasks/detrend.resid.pro (modified) (2 diffs)
-
ippTasks/simtest.detverify.auto (added)
-
ippTasks/simtest.detverify.config (added)
-
ippTasks/simtest.pro (modified) (3 diffs)
-
ippTools/share/dettool_addprocessedexp.sql (modified) (1 diff)
-
ippTools/share/dettool_childlessrun.sql (modified) (1 diff)
-
ippTools/share/dettool_stop_completed_correct_runs.sql (modified) (1 diff)
-
ippTools/share/dettool_tocorrectimfile.sql (modified) (2 diffs)
-
ippTools/share/dettool_toprocessedexp.sql (modified) (1 diff)
-
ippTools/share/dettool_toprocessedimfile.sql (modified) (1 diff)
-
ippTools/share/dettool_toresidimfile.sql (modified) (2 diffs)
-
ippTools/share/pxadmin_create_tables.sql (modified) (4 diffs)
-
ippTools/src/dettool.c (modified) (10 diffs)
-
ippTools/src/dettoolConfig.c (modified) (7 diffs)
-
ippTools/src/dettool_correction.c (modified) (2 diffs)
-
ippTools/src/dettool_processedimfile.c (modified) (4 diffs)
-
ippTools/src/dettool_residimfile.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippScripts/scripts/detrend_resid_imfile.pl
r19374 r19621 24 24 use Pod::Usage qw( pod2usage ); 25 25 26 my ( $det_id, $iter, $ exp_id, $exp_tag, $class_id, $det_type, $detrend, $input_uri, $camera, $mode, $outroot,26 my ( $det_id, $iter, $ref_det_id, $ref_iter, $exp_id, $exp_tag, $class_id, $det_type, $detrend, $input_uri, $camera, $mode, $outroot, 27 27 $dbname, $reduction, $threads, $verbose, $no_update, $no_op, $redirect ); 28 28 GetOptions( 29 29 'det_id|d=s' => \$det_id, 30 30 'iteration=s' => \$iter, 31 'ref_det_id=s' => \$ref_det_id, 32 'ref_iter=s' => \$ref_iter, 31 33 'exp_id|e=s' => \$exp_id, 32 34 'exp_tag|=s' => \$exp_tag, … … 48 50 49 51 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV; 50 pod2usage( -msg => "Required options: --det_id --iteration -- exp_id --exp_tag --class_id --det_type --camera --input_uri --mode --detrend --outroot (not for 'verify' mode)",52 pod2usage( -msg => "Required options: --det_id --iteration --ref_det_id --ref_iter --exp_id --exp_tag --class_id --det_type --camera --input_uri --mode --detrend --outroot (not for 'verify' mode)", 51 53 -exitval => 3) unless 52 defined $det_id and 53 defined $iter and 54 defined $exp_id and 55 defined $exp_tag and 56 defined $class_id and 57 defined $det_type and 58 defined $input_uri and 59 defined $camera and 60 defined $mode and 61 defined $outroot and 62 (defined $detrend or lc($mode) eq 'verify'); 54 defined $det_id and 55 defined $iter and 56 defined $ref_det_id and 57 defined $ref_iter and 58 defined $exp_id and 59 defined $exp_tag and 60 defined $class_id and 61 defined $det_type and 62 defined $input_uri and 63 defined $camera and 64 defined $mode and 65 defined $outroot and 66 defined $detrend; 63 67 64 68 $ipprc->define_camera($camera); … … 69 73 70 74 # Recipes to use as a function of detrend type and mode 75 # XXX probably can drop the distinct 'verify' recipes 71 76 $reduction = 'DETREND' unless defined $reduction; 72 77 my $recipe; # Name of recipe to use … … 78 83 &my_die("Unrecognised mode: $mode", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR); 79 84 } 85 86 print "raw recipe: $recipe\n"; 80 87 $recipe = $ipprc->reduction($reduction, $recipe); 88 print "real recipe: $recipe\n"; 81 89 82 90 # values to extract from output metadata and the stats to calculate … … 166 174 167 175 # Detrend to use in processing 168 if (lc($mode) ne 'verify') { 169 my $detFlag = DETRENDS->{lc($det_type)}; 170 &my_die("Unrecognised detrend type: $det_type", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR) unless defined $detFlag; 171 $command .= " $detFlag $detrend"; 172 } 176 my $detFlag = DETRENDS->{lc($det_type)}; 177 &my_die("Unrecognised detrend type: $det_type", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR) unless defined $detFlag; 178 $command .= " $detFlag $detrend"; 173 179 174 180 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = … … 216 222 $command .= " -det_id $det_id"; 217 223 $command .= " -iteration $iter"; 224 $command .= " -ref_det_id $ref_det_id"; 225 $command .= " -ref_iter $ref_iter"; 218 226 $command .= " -exp_id $exp_id"; 219 227 $command .= " -class_id $class_id"; … … 252 260 $command .= " -det_id $det_id"; 253 261 $command .= " -iteration $iter"; 262 $command .= " -ref_det_id $ref_det_id"; 263 $command .= " -ref_iter $ref_iter"; 254 264 $command .= " -exp_id $exp_id"; 255 265 $command .= " -class_id $class_id"; -
trunk/ippTasks/Makefile.am
r19545 r19621 28 28 simtest.basic.config \ 29 29 simtest.basic.auto \ 30 simtest.detverify.config \ 31 simtest.detverify.auto \ 30 32 simtest.flatcorr.config \ 31 33 simtest.flatcorr.auto -
trunk/ippTasks/automate.pro
r19381 r19621 264 264 end 265 265 book setword automate $pageName pantaskState INIT.LAUNCH 266 267 if ($Ncheck == 1) 268 # XXX this is a somewhat hackish way to carry information from the 'check' to the 'launch' 269 book getword tmpCheck page.000 det_id -var DET_ID 270 book getword tmpCheck page.000 iteration -var ITERATION 271 book setword automate $pageName det_id $DET_ID 272 book setword automate $pageName iteration $ITERATION 273 end 266 274 end 267 275 … … 326 334 end 327 335 336 # modify the launch command to replace certain elements from the page 337 book getword automate $pageName det_id -var DET_ID 338 if ("$DET_ID" != "NULL") 339 echo '$launchCommand' 340 strsub "$launchCommand" @det_id@ $DET_ID -var launchCommand 341 end 342 343 book getword automate $pageName iteration -var ITERATION 344 if ("$ITERATION" != "NULL") 345 echo '$launchCommand' 346 strsub "$launchCommand" @iteration@ $ITERATION -var launchCommand 347 end 348 349 echo '$launchCommand' 350 328 351 book setword automate $pageName pantaskState RUN.LAUNCH 329 352 -
trunk/ippTasks/detrend.resid.pro
r19465 r19621 153 153 154 154 book setword detPendingResidImfile $pageName pantaskState RUN 155 book getword detPendingResidImfile $pageName det_id -var DET_ID 156 book getword detPendingResidImfile $pageName exp_id -var EXP_ID 157 book getword detPendingResidImfile $pageName iteration -var ITERATION 158 book getword detPendingResidImfile $pageName det_type -var DET_TYPE 159 book getword detPendingResidImfile $pageName mode -var MODE 160 book getword detPendingResidImfile $pageName exp_tag -var EXP_TAG 161 book getword detPendingResidImfile $pageName class_id -var CLASS_ID 162 book getword detPendingResidImfile $pageName uri -var URI 163 book getword detPendingResidImfile $pageName det_uri -var DET_URI 164 book getword detPendingResidImfile $pageName camera -var CAMERA 165 book getword detPendingResidImfile $pageName workdir -var WORKDIR_TEMPLATE 166 book getword detPendingResidImfile $pageName dbname -var DBNAME 167 book getword detPendingResidImfile $pageName reduction -var REDUCTION 155 book getword detPendingResidImfile $pageName det_id -var DET_ID 156 book getword detPendingResidImfile $pageName exp_id -var EXP_ID 157 book getword detPendingResidImfile $pageName iteration -var ITERATION 158 book getword detPendingResidImfile $pageName det_type -var DET_TYPE 159 book getword detPendingResidImfile $pageName mode -var MODE 160 book getword detPendingResidImfile $pageName exp_tag -var EXP_TAG 161 book getword detPendingResidImfile $pageName class_id -var CLASS_ID 162 book getword detPendingResidImfile $pageName uri -var URI 163 book getword detPendingResidImfile $pageName det_uri -var DET_URI 164 book getword detPendingResidImfile $pageName ref_det_id -var REF_DET_ID 165 book getword detPendingResidImfile $pageName ref_iter -var REF_ITER 166 book getword detPendingResidImfile $pageName camera -var CAMERA 167 book getword detPendingResidImfile $pageName workdir -var WORKDIR_TEMPLATE 168 book getword detPendingResidImfile $pageName dbname -var DBNAME 169 book getword detPendingResidImfile $pageName reduction -var REDUCTION 168 170 169 171 # specify choice of local or remote host based on camera and chip (class_id) … … 179 181 stderr $LOGDIR/detrend.resid.imfile.log 180 182 181 $run = detrend_resid_imfile.pl --threads @MAX_THREADS@ --det_id $DET_ID --iteration $ITERATION -- exp_id $EXP_ID --exp_tag $EXP_TAG --class_id $CLASS_ID --det_type $DET_TYPE --detrend $DET_URI --input_uri $URI --camera $CAMERA --mode $MODE --outroot $outroot --redirect-output --verbose183 $run = detrend_resid_imfile.pl --threads @MAX_THREADS@ --det_id $DET_ID --iteration $ITERATION --ref_det_id $REF_DET_ID --ref_iter $REF_ITER --exp_id $EXP_ID --exp_tag $EXP_TAG --class_id $CLASS_ID --det_type $DET_TYPE --detrend $DET_URI --input_uri $URI --camera $CAMERA --mode $MODE --outroot $outroot --redirect-output --verbose 182 184 183 185 if ("$REDUCTION" != "NULL") -
trunk/ippTasks/simtest.pro
r19537 r19621 40 40 echo " SIMTEST_AUTO : define the analysis steps to perform (simtest.auto)" 41 41 echo " SIMTEST_THREADS : set the number of threads for the processing node (0)" 42 echo "" 43 echo "the following macros can be used to set up specific simtest suites:" 44 echo " simtest.setup.basic : run standard simtest suite" 45 echo " simtest.setup.detverify : run detrend creation and detrend verification" 46 echo " simtest.setup.flatcorr : run a flat-field correction demonstration" 42 47 break 43 48 end … … 109 114 # auto: simtest.basic.auto, simtest.flatcorr.auto 110 115 116 macro simtest.setup.basic 117 $PPSIM_RECIPE = default 118 $SIMTEST_SEQUENCE = simtest.basic.config 119 $SIMTEST_AUTO = simtest.basic.auto 120 end 121 122 macro simtest.setup.detverify 123 $PPSIM_RECIPE = default 124 $SIMTEST_SEQUENCE = simtest.detverify.config 125 $SIMTEST_AUTO = simtest.detverify.auto 126 end 127 111 128 macro simtest.setup.flatcorr 112 129 $PPSIM_RECIPE = FLATCORR … … 114 131 $SIMTEST_AUTO = simtest.flatcorr.auto 115 132 end 133 -
trunk/ippTools/share/dettool_addprocessedexp.sql
r19092 r19621 21 21 WHERE 22 22 detRun.state = 'run' 23 AND detRun.mode = 'master'23 AND (detRun.mode = 'master' or detRun.mode = 'verify') 24 24 AND detProcessedExp.det_id IS NULL 25 25 AND detProcessedExp.exp_id IS NULL -
trunk/ippTools/share/dettool_childlessrun.sql
r18561 r19621 5 5 FROM detRun 6 6 LEFT JOIN detRun as foo 7 ON foo.parent = detRun.det_id 7 ON foo.ref_det_id = detRun.det_id 8 -- XXX do we need to restrict to foo.ref_iter = detRun.iteration ? 8 9 WHERE 9 10 detRun.state = 'stop' -
trunk/ippTools/share/dettool_stop_completed_correct_runs.sql
r15830 r19621 8 8 FROM detRun AS det1 9 9 INNER JOIN detRun as det2 10 ON det1.parent = det2.det_id 10 ON det1.ref_det_run = det2.det_id 11 -- do we need to restrict by iteration? not clear this logic below is right or tested 11 12 JOIN detNormalizedImfile as imfile 12 13 ON det2.det_id = imfile.det_id -
trunk/ippTools/share/dettool_tocorrectimfile.sql
r15828 r19621 1 -- select imfiles from detRun 1 (the reference detRun) that match the desired correction in detRun 2 1 2 SELECT 2 3 det1.*, … … 14 15 imfile.fault 15 16 FROM detRun AS det1 16 INNERJOIN detRun as det217 ON det1. parent= det2.det_id17 JOIN detRun as det2 18 ON det1.ref_det_id = det2.det_id 18 19 JOIN detNormalizedImfile as imfile 19 ON det 2.det_id = imfile.det_id20 AND det 2.iteration= imfile.iteration20 ON det1.ref_det_id = imfile.det_id 21 AND det1.ref_iter = imfile.iteration 21 22 LEFT JOIN detRegisteredImfile 22 23 ON det1.det_id = detRegisteredImfile.det_id -
trunk/ippTools/share/dettool_toprocessedexp.sql
r15769 r19621 48 48 WHERE 49 49 detRun.state = 'run' 50 AND detRun.mode = 'master'50 AND (detRun.mode = 'master' or detRun.mode = 'verify') 51 51 AND detProcessedExp.det_id IS NULL 52 52 AND detProcessedExp.exp_id IS NULL -
trunk/ippTools/share/dettool_toprocessedimfile.sql
r14045 r19621 19 19 WHERE 20 20 detRun.state = 'run' 21 AND detRun.mode = 'master'21 AND (detRun.mode = 'master' or detRun.mode = 'verify') 22 22 AND detProcessedImfile.det_id IS NULL 23 23 AND detProcessedImfile.exp_id IS NULL -
trunk/ippTools/share/dettool_toresidimfile.sql
r18561 r19621 14 14 detProcessedImfile.uri, 15 15 detNormalizedImfile.uri AS det_uri, 16 detRun.det_id AS ref_det_id, 17 detRun.iteration AS ref_iter, 16 18 rawExp.camera, 17 19 rawExp.exp_tag … … 53 55 detRun.workdir, 54 56 detRun.reduction, 55 rawImfile.exp_id, 56 rawImfile.class_id, 57 rawImfile.uri, 58 'NULL' AS det_uri, 57 detProcessedImfile.exp_id, 58 detProcessedImfile.class_id, 59 detProcessedImfile.uri, 60 detNormalizedImfile.uri AS det_uri, 61 detRun.ref_det_id, 62 detRun.ref_iter, 59 63 rawExp.camera, 60 64 rawExp.exp_tag 61 65 FROM detRun 66 JOIN detRun AS detRunRef 67 ON detRunRef.det_id = detRun.ref_det_id 62 68 JOIN detInputExp 63 USING(det_id, iteration) 69 ON detInputExp.det_id = detRun.det_id 70 AND detInputExp.iteration = detRun.iteration 64 71 JOIN rawExp 65 ON detInputExp.exp_id = rawExp.exp_id 66 JOIN rawImfile 67 ON detInputExp.exp_id = rawImfile.exp_id 72 ON rawExp.exp_id = detInputExp.exp_id 73 JOIN detProcessedImfile 74 ON detProcessedImfile.det_id = detRun.det_id 75 AND detProcessedImfile.exp_id = detInputExp.exp_id 76 JOIN detNormalizedImfile 77 ON detNormalizedImfile.det_id = detRun.ref_det_id 78 AND detNormalizedImfile.iteration = detRun.ref_iter 79 AND detNormalizedImfile.class_id = detProcessedImfile.class_id 68 80 LEFT JOIN detResidImfile 69 ON detRun.det_id = detResidImfile.det_id70 AND detRun.iteration = detResidImfile.iteration71 AND rawImfile.exp_id = detResidImfile.exp_id72 AND rawImfile.class_id = detResidImfile.class_id81 ON detResidImfile.det_id = detRun.det_id 82 AND detResidImfile.iteration = detRun.iteration 83 AND detResidImfile.exp_id = detProcessedImfile.exp_id 84 AND detResidImfile.class_id = detProcessedImfile.class_id 73 85 WHERE 74 detRun.state = 'run'75 AND detRun.mode = 'verify'76 -- AND detNormalizedImfile.fault = 077 -- AND detNormalizedExp.fault = 078 AND detResidImfile.det_id IS NULL79 AND detResidImfile.iteration IS NULL80 AND detResidImfile.exp_id IS NULL81 AND detResidImfile.class_id IS NULL86 detRun.state = 'run' 87 AND detRun.mode = 'verify' 88 AND detRunRef.state = 'stop' 89 AND detNormalizedImfile.fault = 0 90 AND detResidImfile.det_id IS NULL 91 AND detResidImfile.iteration IS NULL 92 AND detResidImfile.exp_id IS NULL 93 AND detResidImfile.class_id IS NULL 82 94 ORDER BY exp_id -
trunk/ippTools/share/pxadmin_create_tables.sql
r19558 r19621 444 444 solang_max FLOAT, 445 445 label VARCHAR(64), 446 parent INT, 446 ref_det_id BIGINT, 447 ref_iter INT, 448 -- parent INT, :: dropping this 447 449 PRIMARY KEY(det_id), 448 450 KEY(det_id), … … 452 454 KEY(state), 453 455 KEY(label), 454 KEY(parent),456 -- KEY(parent), :: dropping this 455 457 INDEX(det_id, iteration)) 456 458 ENGINE=innodb DEFAULT CHARSET=latin1; … … 616 618 det_id BIGINT, 617 619 iteration INT, 620 ref_det_id BIGINT, 621 ref_iter INT, 618 622 exp_id BIGINT, 619 623 class_id VARCHAR(64), … … 647 651 FOREIGN KEY (det_id, exp_id, class_id) 648 652 REFERENCES detProcessedImfile(det_id, exp_id, class_id), 649 FOREIGN KEY ( det_id, iteration)653 FOREIGN KEY (ref_det_id, ref_iter) 650 654 REFERENCES detNormalizedExp(det_id, iteration) 651 655 ) ENGINE=innodb DEFAULT CHARSET=latin1; -
trunk/ippTools/src/dettool.c
r19092 r19621 234 234 // optional 235 235 PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false); 236 PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false); 236 237 237 // check mode 238 if (mode && !isValidMode(config, mode)) { 239 psError(PS_ERR_UNKNOWN, false, "invalud mode"); 240 return false; 241 } 238 PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied 239 if (!isValidMode(config, mode)) { 240 psError(PS_ERR_UNKNOWN, false, "invalid mode"); 241 return false; 242 } 243 244 // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise 245 PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false); 246 PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false); 247 if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) { 248 psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter"); 249 return false; 250 } 251 if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) { 252 psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set"); 253 return false; 254 } 255 242 256 PXOPT_LOOKUP_STR(camera, config->args, "-inst", false, false); 243 257 PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false); … … 368 382 solang_max, 369 383 label, 370 0 // parent 384 ref_det_id, 385 ref_iter 371 386 ); 372 387 psS64 det_id = psDBLastInsertID(config->dbh); … … 469 484 PXOPT_LOOKUP_STR(camera, config->args, "-inst", true, false); 470 485 471 // optional472 PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false);473 486 // check mode 474 if (mode && !isValidMode(config, mode)) { 487 PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied 488 if (!isValidMode(config, mode)) { 475 489 psError(PS_ERR_UNKNOWN, false, "invalid mode"); 476 490 return false; 477 491 } 492 493 // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise 494 PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false); 495 PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false); 496 if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) { 497 psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter"); 498 return false; 499 } 500 if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) { 501 psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set"); 502 return false; 503 } 504 478 505 PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false); 479 506 PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false); … … 623 650 solang_max, 624 651 label, 625 0 // parent 652 ref_det_id, 653 ref_iter 626 654 ); 627 655 psS64 det_id = psDBLastInsertID(config->dbh); … … 692 720 { 693 721 PS_ASSERT_PTR_NON_NULL(config, false); 694 695 722 723 // XXX this mode is not well-tested: probably need to specify iteration here 724 // XXX pass the supplied det_id and iteration as ref_det_id, or get from command line? 696 725 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required 697 726 PXOPT_LOOKUP_STR(det_type, config->args, "-set_det_type", false, false); // optional … … 745 774 746 775 // pull the detRun object out the result array 776 // XXX need to assign or re-assign the ref_det_id and ref_iter values 747 777 detRunRow *detRun = psMemIncrRefCounter(detRuns->data[0]); 748 778 … … 962 992 963 993 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 994 PXOPT_COPY_STR(config->args, where, "-mode", "mode", "=="); 964 995 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 965 996 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); … … 1541 1572 PXOPT_LOOKUP_TIME(use_begin, config->args, "-use_begin", false, false); 1542 1573 PXOPT_LOOKUP_TIME(use_end, config->args, "-use_end", false, false); 1543 PXOPT_LOOKUP_S64(parent, config->args, "-parent", false, false); 1574 PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false); 1575 PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false); 1544 1576 PXOPT_LOOKUP_STR(label, config->args, "-label", false, false); 1545 1577 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 1578 1610 solang_min, 1579 1611 solang_max, 1580 label, // label 1581 parent 1612 label, 1613 ref_det_id, 1614 ref_iter 1582 1615 )) { 1583 1616 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1751 1784 1752 1785 // check that state is a valid string value 1753 if (!( 1754 (strncmp(mode, "master", 7) == 0) 1755 || (strncmp(mode, "verify", 7) == 0) 1756 ) 1757 ) { 1758 psError(PS_ERR_UNKNOWN, false, 1759 "invalid detRun mode: %s", mode); 1760 return false; 1761 } 1762 1763 return true; 1786 if (!strncmp(mode, "master", 7)) return true; 1787 if (!strncmp(mode, "verify", 7)) return true; 1788 1789 psError(PS_ERR_UNKNOWN, false, "invalid detRun mode: %s", mode); 1790 return false; 1764 1791 } 1765 1792 -
trunk/ippTools/src/dettoolConfig.c
r19092 r19621 78 78 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-label", 0, "define detrun label", NULL); 79 79 psMetadataAddBool(definebytagArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 80 81 psMetadataAddS64(definebytagArgs, PS_LIST_TAIL, "-ref_det_id", 0, "define reference detrend (verify mode only)", 0); 82 psMetadataAddS32(definebytagArgs, PS_LIST_TAIL, "-ref_iter", 0, "define reference detrend (verify mode only)", -1); 80 83 81 84 // -definebyquery … … 129 132 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset", 0, "use a random subset of elements", false); 130 133 psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit", 0, "use this number of random elements", 20); 134 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-ref_det_id", 0, "define reference detrend (verify mode only)", 0); 135 psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-ref_iter", 0, "define reference detrend (verify mode only)", -1); 131 136 132 137 // -definebydetrun … … 163 168 // -makecorrection 164 169 psMetadata *makecorrectionArgs = psMetadataAlloc(); 165 psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id", 0, "det ID to be corrected (required)", 0); 170 psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id", 0, "detRun det_id to be corrected (required)", 0); 171 psMetadataAddS32(makecorrectionArgs, PS_LIST_TAIL, "-iteration", 0, "detRun iteration to be corrected (required)", -1);; 166 172 psMetadataAddBool(makecorrectionArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 167 173 … … 203 209 psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-ccd_temp", 0, "match ccd temp", NAN); 204 210 psMetadataAddF64(runsArgs, PS_LIST_TAIL, "-posang", 0, "match posang", NAN); 211 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-mode", 0, "search for det run by mode", NULL); 205 212 psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 206 213 psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-active", 0, "only return active detRuns", false); … … 216 223 psMetadata *inputArgs = psMetadataAlloc(); 217 224 psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", 0); 218 psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration", 0, " define iteration number", 0);225 psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration", 0, "search for iteration number (default 0)", 0); 219 226 psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-exp_id", 0, "search for exp ID", 0); 220 227 psMetadataAddBool(inputArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 591 598 592 599 // -addresidimfile 600 // XXX does a default value of 0 mean the entry is not instatiated? what about a supplied value of 0? 593 601 psMetadata *addresidimfileArgs = psMetadataAlloc(); 594 602 psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", 0); 595 psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 603 psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 604 psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-ref_det_id", 0, "define reference detrend ID (required)", 0); 605 psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-ref_iter", 0, "define reference iteration number (required)", -1); 596 606 psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "define detrend ID (required)", 0); 597 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL);598 psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0);599 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri", 0, "define resid file URI", NULL);600 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL);601 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN);607 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 608 psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 609 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri", 0, "define resid file URI", NULL); 610 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 611 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 602 612 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 603 613 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); … … 815 825 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_begin", 0, "start of detrend run applicable period", NULL); 816 826 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_end", 0, "end of detrend run applicable period", NULL); 817 psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-parent", 0, "define parent det_id", 0); 827 psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-ref_det_id", 0, "define reference det_id", 0); 828 psMetadataAddS32(register_detrendArgs, PS_LIST_TAIL, "-ref_iter", 0, "define reference iteration", -1); 818 829 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-label", 0, "define detrun label", NULL); 819 830 psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); -
trunk/ippTools/src/dettool_correction.c
r19092 r19621 24 24 PS_ASSERT_PTR_NON_NULL(config, false); 25 25 26 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required 26 PXOPT_LOOKUP_S64(ref_det_id, config->args, "-det_id", true, false); // required 27 PXOPT_LOOKUP_S32(ref_iter, config->args, "-iteration", true, false); // required 27 28 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); // optional 28 29 29 30 // build the needed where 30 31 psMetadata *where = psMetadataAlloc(); 31 psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", det_id); 32 psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", ref_det_id); 33 psMetadataAddS32(where, PS_LIST_TAIL, "iteration", 0, "==", ref_iter); 32 34 psArray *runs = detRunSelectRowObjects(config->dbh, where, 1); 33 35 psFree (where); … … 74 76 detRun->solang_max, 75 77 detRun->label, 76 detRun->det_id // parent 78 detRun->det_id, // ref_det_id 79 detRun->iteration // ref_iter 77 80 ); 78 81 -
trunk/ippTools/src/dettool_processedimfile.c
r19092 r19621 165 165 PS_ASSERT_PTR_NON_NULL(config, false); 166 166 167 char *value = NULL;167 bool hasWhere = false; 168 168 169 169 PXOPT_LOOKUP_BOOL(included, config->args, "-included", false); … … 173 173 174 174 psMetadata *where = psMetadataAlloc(); 175 PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "=="); 176 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 177 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 175 PXOPT_COPY_S64(config->args, where, "-det_id", "detProcessedImfile.det_id", "=="); 176 PXOPT_COPY_S64(config->args, where, "-exp_id", "detProcessedImfile.exp_id", "=="); 177 PXOPT_COPY_STR(config->args, where, "-class_id", "detProcessedImfile.class_id", "=="); 178 PXOPT_COPY_STR(config->args, where, "-select_state", "detRun.state", "=="); 179 PXOPT_COPY_STR(config->args, where, "-select_mode", "detRun.mode", "=="); 178 180 179 181 psString query = pxDataGet("dettool_processedimfile.sql"); … … 184 186 } 185 187 186 // add the two required restrictions: detRun.state and detRun.mode187 // NOTE the above query requires one of the following two WHERE statements188 {189 bool status;190 if ((value = psMetadataLookupStr(&status, config->args, "-select_state"))) {191 psStringAppend(&query, " WHERE detRun.state = '%s'", value);192 } else {193 psStringAppend(&query, " WHERE detRun.state = 'run'");194 }195 if ((value = psMetadataLookupStr(&status, config->args, "-select_mode"))) {196 psStringAppend(&query, " AND detRun.mode = '%s'", value);197 } else {198 psStringAppend(&query, " AND detRun.mode = 'master'");199 }200 }201 202 188 if (psListLength(where->list)) { 203 psString whereClause = psDBGenerateWhere ConditionSQL(where, "detProcessedImfile");204 psStringAppend(&query, " AND%s", whereClause);189 psString whereClause = psDBGenerateWhereSQL(where, NULL); 190 psStringAppend(&query, " %s", whereClause); 205 191 psFree(whereClause); 192 hasWhere = true; 206 193 } 207 194 psFree (where); … … 209 196 // restrict search to included imfiles 210 197 if (included) { 211 psStringAppend(&query, " AND detInputExp.include = 1"); 198 if (hasWhere) { 199 psStringAppend(&query, " AND detInputExp.include = 1"); 200 } else { 201 psStringAppend(&query, " WHERE detInputExp.include = 1"); 202 } 203 hasWhere = true; 204 } 205 206 if (hasWhere) { 207 psStringAppend(&query, " AND"); 208 } else { 209 psStringAppend(&query, " WHERE"); 212 210 } 213 211 214 212 if (faulted) { 215 // list only faulted rows 216 psStringAppend(&query, " %s", "AND detProcessedImfile.fault != 0"); 213 psStringAppend(&query, " %s", " detProcessedImfile.fault != 0"); 217 214 } else { 218 215 // don't list faulted rows 219 psStringAppend(&query, " %s", " ANDdetProcessedImfile.fault = 0");216 psStringAppend(&query, " %s", " detProcessedImfile.fault = 0"); 220 217 } 221 218 -
trunk/ippTools/src/dettool_residimfile.c
r19092 r19621 78 78 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required 79 79 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false); 80 81 PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false); // required 82 PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false); 83 80 84 PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", true, false); // required 81 85 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); // required … … 106 110 det_id, 107 111 iteration, 112 ref_det_id, 113 ref_iter, 108 114 exp_id, 109 115 class_id,
Note:
See TracChangeset
for help on using the changeset viewer.
