Changeset 28222
- Timestamp:
- Jun 4, 2010, 1:44:20 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
-
ippScripts/scripts/automate_stacks.pl (modified) (16 diffs)
-
ippTasks/nightly_stacks.pro (modified) (7 diffs)
-
ippconfig/recipes/nightly_science.config (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippScripts/scripts/automate_stacks.pl
r27938 r28222 20 20 my $stacktool= can_run('stacktool') or (warn "Can't find stacktool" and $missing_tools = 1); 21 21 my $difftool = can_run('difftool') or (warn "Can't find difftool" and $missing_tools = 1); 22 my $dettool = can_run('dettool') or (warn "Can't find dettool" and $missing_tools = 1); 22 23 my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1); 23 24 my $mkBTpcontrol = can_run('make_burntool_pcontrol.pl') or (warn "Can't find make_burntool_pcontrol.pl" and $missing_tools = 1); … … 59 60 my ( $check_registration, $define_burntool, $queue_burntool, $check_chips, $queue_chips); 60 61 my ( $check_stacks, $queue_stacks, $check_diffs, $queue_diffs, $clean_old); 62 my ( $check_detrends, $queue_detrends); 61 63 62 64 GetOptions( … … 81 83 'check_stacks' => \$check_stacks, 82 84 'queue_stacks' => \$queue_stacks, 85 'check_detrends' => \$check_detrends, 86 'queue_detrends' => \$queue_detrends, 83 87 'check_diffs' => \$check_diffs, 84 88 'queue_diffs' => \$queue_diffs, … … 105 109 --check_stacks Confirm that stacks can be built. 106 110 --queue_stacks Issue stacktool commands to queue stacks. 111 --check_detrends Confirm that detrend verify runs can be built. 112 --queue_detrends Issue dettool commands to queue detrend verify runs. 107 113 --check_diffs Confirm that diffs can be done. 108 114 --queue_diffs Issue difftool commands to queue diffs. … … 115 121 ) unless 116 122 defined $check_registration or defined $define_burntool or defined $queue_burntool or 117 defined $queue_chips or defined $queue_stacks or 118 defined $check_chips or defined $check_stacks or 123 defined $queue_chips or defined $queue_stacks or $queue_detrends or 124 defined $check_chips or defined $check_stacks or $check_detrends or 119 125 defined $test_mode or defined $clean_old or defined $check_mode; 120 126 … … 128 134 my %stackable_list = (); 129 135 my %reduction_class = (); 136 my @detrend_list = (); 137 my %dettype_list = (); 138 my %exptype_list = (); 139 my %refID_list = (); 140 my %refIter_list = (); 141 my %detfilter_list = (); 142 my %detmax_list = (); 130 143 my %clean_commands = (); 131 144 my %clean_retention = (); … … 158 171 } 159 172 } 160 # if (${ $entry }{name} eq 'RETENTION_TIME') {161 # $retention_time = ${ $entry }{value};162 # }163 173 elsif (${ $entry }{name} eq 'FILTERS') { 164 174 push @filter_list, ${ $entry }{value}; … … 195 205 } 196 206 } 197 } 198 199 200 207 elsif (${ $entry }{name} eq 'DETRENDS') { 208 my @detrend_data = @{ ${ $entry }{value} }; 209 my $this_detrend = ''; 210 foreach my $dentry (@detrend_data) { 211 if (${ $dentry }{name} eq 'NAME') { 212 $this_detrend = ${ $dentry }{value}; 213 push @detrend_list, $this_detrend; 214 } 215 elsif (${ $dentry }{name} eq 'DETTYPE') { 216 $dettype_list{$this_detrend} = ${ $dentry }{value}; 217 } 218 elsif (${ $dentry }{name} eq 'EXPTYPE') { 219 $exptype_list{$this_detrend} = ${ $dentry }{value}; 220 } 221 elsif (${ $dentry }{name} eq 'REF_ID') { 222 $refID_list{$this_detrend} = ${ $dentry }{value}; 223 } 224 elsif (${ $dentry }{name} eq 'REF_ITER') { 225 $refIter_list{$this_detrend} = ${ $dentry }{value}; 226 } 227 elsif (${ $dentry }{name} eq 'FILTER') { 228 $detfilter_list{$this_detrend} = ${ $dentry }{value}; 229 } 230 elsif (${ $dentry }{name} eq 'MAX') { 231 $detmax_list{$this_detrend} = ${ $dentry }{value}; 232 } 233 } 234 } 235 } 201 236 202 237 unless(defined($date)) { … … 256 291 return_metadata($date); 257 292 unless (defined($test_mode) || defined($check_mode)) { exit(0); } 293 } 294 if (defined($check_detrends) || defined($test_mode)) { 295 $metadata_out{nsState} = 'CHECKDETRENDS'; 296 &execute_detrends($date,"pretend"); 297 return_metadata($date); 298 unless (defined($test_mode) || defined($check_mode)) { exit(0); } 299 } 300 if (defined($queue_detrends)) { 301 $metadata_out{nsState} = 'QUEUEDETRENDS'; 302 &execute_detrends($date,"pretend"); 303 return_metadata($date); 304 exit(0); 258 305 } 259 306 if (defined($define_burntool) || defined($test_mode)) { … … 498 545 499 546 my $cmd = "$chiptool"; 500 $cmd .= ' -simple -dbname gpc1 -definebyquery -set_end_stage warp ';547 $cmd .= " -simple -dbname $dbname -definebyquery -set_end_stage warp "; 501 548 $cmd .= " -set_label $label "; 502 549 $cmd .= " -set_workdir $workdir -set_dist_group $dist_group "; … … 566 613 } 567 614 615 616 568 617 sub chip_queue { 569 618 my $date = shift; … … 612 661 613 662 # 663 # Detrend verification 664 ################################################################################ 665 666 sub construct_dettool_cmd { 667 my $date = shift; 668 my $target = shift; 669 670 my ($label,$workdir,$filter,$exp_type,$det_type,$ref_det_id,$ref_iter,$maxN) = get_dettool_parameters($date,$target); 671 672 my $select = "-select_dateobs_begin ${date}T00:00:00 -select_dateobs_end ${date}T23:59:59 "; 673 $date =~ s/-//g; 674 675 my $cmd = "$dettool"; 676 $cmd .= " -pretend "; 677 $cmd .= " -simple -dbname $dbname -definebyquery -det_type $det_type "; 678 $cmd .= " -mode verify -ref_det_id $ref_det_id -ref_iter $ref_iter "; 679 $cmd .= " $select "; 680 $cmd .= " -inst $camera "; 681 $cmd .= " -select_exp_type $exp_type "; 682 $cmd .= " -select_filter $filter " if defined($filter); 683 $cmd .= " -workdir $workdir "; 684 $cmd .= " -label $label "; 685 if ($maxN > 0) { 686 $cmd .= " -random_subset -random_limit $maxN "; 687 } 688 if ($debug == 1) { 689 $cmd .= ' -pretend '; 690 } 691 print STDERR "$cmd\n"; 692 return($cmd); 693 } 694 695 sub verify_uniqueness_detverify { 696 my $date = shift; 697 my $target = shift; 698 699 my ($label,$workdir,$filter,$exp_type,$det_type,$ref_det_id,$ref_iter,$maxN) = get_dettool_parameters($date,$target); 700 701 my $db = init_gpc_db(); 702 my $sth = "SELECT * FROM detRun WHERE workdir = '$workdir' AND ref_det_id = $ref_det_id AND ref_iter = $ref_iter"; 703 my $data_ref = $db->selectall_arrayref( $sth ); 704 705 return($#{ $data_ref } + 1); 706 } 707 708 sub pre_detrend_queue { 709 my $date = shift; 710 my $target = shift; 711 712 my $command = construct_dettool_cmd($date,$target) . ' -pretend '; 713 my ($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 714 run ( command => $command, verbose => $verbose); 715 unless ($success) { 716 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 717 &my_die("Unable to perform dettool: $error_code", 0,0, $date, $PS_EXIT_SYS_ERROR); 718 } 719 720 my @input_exposures = split /\n/, (join '', @$stdout_buf); 721 return($#input_exposures + 1); 722 } 723 724 sub detrend_queue { 725 my $date = shift; 726 my $target = shift; 727 728 my $command = construct_dettool_cmd($date,$target); 729 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 730 run ( command => $command, verbose => $verbose); 731 unless ($success) { 732 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 733 &my_die("Unable to perform chiptool: $error_code", 0,0,$date, $PS_EXIT_SYS_ERROR); 734 } 735 $metadata_out{nsState} = 'DETREND_QUEUED'; 736 return(0); 737 } 738 739 sub execute_detrends { 740 my $date = shift; 741 my $pretend = shift; 742 my $exposures = 0; 743 foreach my $target (@detrend_list) { 744 my ($Nexposures) = pre_detrend_queue($date,$target); 745 if ($Nexposures == 0) { 746 print STDERR "execute_detrends: Target $target on $date had no exposures.\n"; 747 next; 748 } 749 $exposures++; 750 unless(defined($pretend)) { 751 detrend_queue($date,$target); 752 } 753 } 754 if ($exposures == 0) { 755 $metadata_out{nsState} = 'DETREND_DROP'; 756 } 757 } 758 759 # 614 760 # Stacking 615 761 ################################################################################ … … 627 773 my $cmd = "$stacktool"; 628 774 # $cmd .= ' -pretend -simple -dbname gpc1 -definebyquery -min_new 4 '; # Probably silly, but I want to be safe and not overwrite 629 $cmd .= ' -simple -dbname gpc1 -definebyquery ';775 $cmd .= " -simple -dbname $dbname -definebyquery "; 630 776 $cmd .= " -set_label $label -select_label $label "; 631 777 $cmd .= " -set_workdir $workdir -set_dist_group $dist_group "; … … 779 925 my ($label,$workdir,$obs_mode,$object,$comment,$tess_id,$dist_group,$data_group,$reduction) = get_tool_parameters($cleaning_date,$target); 780 926 my $args = $command; 781 $args .= " -dbname gpc1-updaterun -set_state goto_cleaned -state full -set_label goto_cleaned -label $label -data_group $data_group ";927 $args .= " -dbname $dbname -updaterun -set_state goto_cleaned -state full -set_label goto_cleaned -label $label -data_group $data_group "; 782 928 if ($debug == 1) { 783 929 $args .= ' -pretend '; … … 826 972 827 973 my $label = "${target}.nightlyscience"; 828 my $workdir = "neb://\@HOST\@.0/ gpc1/${target}.nt/${workdir_date}";974 my $workdir = "neb://\@HOST\@.0/${dbname}/${target}.nt/${workdir_date}"; 829 975 my $obs_mode = $obsmode_list{$target}; 830 976 my $object = $object_list{$target}; … … 837 983 } 838 984 985 sub get_dettool_parameters { 986 my $date = shift; 987 my $target = shift; 988 my $workdir_date = $date; $workdir_date =~ s%-%/%g; 989 my $trunc_date = $date; $trunc_date =~ s/-//g; 990 991 my $exp_type = $exptype_list{$target}; 992 my $det_type = $dettype_list{$target}; 993 my $ref_det_id = $refID_list{$target}; 994 my $ref_iter = $refIter_list{$target}; 995 my $det_filter = $detfilter_list{$target}; 996 my $internal_filter; 997 if (defined($det_filter)) { 998 $internal_filter = $det_filter; $internal_filter =~ s/\..*//; 999 $internal_filter = '.' . $internal_filter; 1000 } 1001 else { 1002 $internal_filter = ''; 1003 } 1004 my $maxN = $detmax_list{$target}; 1005 1006 my $lc_type = lc($exp_type); 1007 my $label = "${lc_type}${internal_filter}.$trunc_date"; 1008 my $workdir = 'neb://@HOST@.0/' . $dbname . "/detverify.nt/${workdir_date}/${lc_type}${internal_filter}"; 1009 return($label,$workdir,$det_filter,$exp_type,$det_type,$ref_det_id,$ref_iter,$maxN); 1010 } 839 1011 840 1012 sub init_gpc_db { -
trunk/ippTasks/nightly_stacks.pro
r27860 r28222 5 5 macro nightly.stacks.on 6 6 ns.initday.on 7 ns.detrends.off 7 8 ns.registration.on 8 9 ns.burntool.on … … 13 14 macro nightly.stacks.off 14 15 ns.initday.off 16 ns.detrends.off 15 17 ns.registration.off 16 18 ns.burntool.off … … 21 23 macro ns.on 22 24 ns.initday.on 25 ns.detrends.off 23 26 ns.registration.on 24 27 ns.burntool.on … … 29 32 macro ns.off 30 33 ns.initday.off 34 ns.detrends.off 31 35 ns.registration.off 32 36 ns.burntool.off … … 41 45 end 42 46 47 macro ns.detrends.on 48 task ns.detrends.load 49 active true 50 end 51 end 52 43 53 macro ns.registration.on 44 54 task ns.registration.load … … 76 86 macro ns.initday.off 77 87 task ns.initday.load 88 active false 89 end 90 end 91 92 macro ns.detrends.off 93 task ns.detrends.load 78 94 active false 79 95 end … … 186 202 #operation times out? 187 203 task.exit timeout 204 showcommand timeout 205 end 206 end 207 208 # 209 # Queue off any possible detrend verification runs 210 # 211 task ns.detrends.load 212 host local 213 periods -poll $LOADPOLL 214 periods -exec $LOADEXEC 215 periods -timeout 30 216 trange 23:00:00 24:00:00 -nmax 1 217 npending 1 218 219 task.exec 220 stdout $LOGDIR/ns.detrends.log 221 stdout $LOGDIR/ns.detrends.log 222 $today = `date +%Y-%m-%d` 223 224 command automate_stacks.pl --queue_detrends --date $today 225 end 226 227 task.exit 0 228 # nothign to do here 229 end 230 # locked list 231 task.exit default 232 showcommand failure 233 end 234 task.exit crash 235 showcommand crash 236 end 237 # operation times out 238 task.exit timeout 188 239 showcommand timeout 189 240 end -
trunk/ippconfig/recipes/nightly_science.config
r28210 r28222 288 288 STACKABLE BOOL TRUE 289 289 END 290 291 # Detrend verification data 292 DETRENDS MULTI 293 DETRENDS METADATA 294 NAME STR DARK 295 DETTYPE STR DARK 296 EXPTYPE STR dark 297 REF_ID S64 299 298 REF_ITER S32 0 299 # FILTER STR 300 MAX S32 10 301 END 302 303 DETRENDS METADATA 304 NAME STR FLAT_G 305 DETTYPE STR FLAT 306 EXPTYPE STR skyflat 307 REF_ID S64 300 308 REF_ITER S32 0 309 FILTER STR g.00000 310 MAX S32 10 311 END 312 313 DETRENDS METADATA 314 NAME STR FLAT_R 315 DETTYPE STR FLAT 316 EXPTYPE STR skyflat 317 REF_ID S64 301 318 REF_ITER S32 0 319 FILTER STR r.00000 320 MAX S32 10 321 END 322 323 DETRENDS METADATA 324 NAME STR FLAT_I 325 DETTYPE STR FLAT 326 EXPTYPE STR skyflat 327 REF_ID S64 302 328 REF_ITER S32 0 329 FILTER STR i.00000 330 MAX S32 10 331 END 332 333 DETRENDS METADATA 334 NAME STR FLAT_Z 335 DETTYPE STR FLAT 336 EXPTYPE STR skyflat 337 REF_ID S64 303 338 REF_ITER S32 0 339 FILTER STR z.00000 340 MAX S32 10 341 END 342 343 DETRENDS METADATA 344 NAME STR FLAT_Y 345 DETTYPE STR FLAT 346 EXPTYPE STR skyflat 347 REF_ID S64 304 348 REF_ITER S32 0 349 FILTER STR y.00000 350 MAX S32 10 351 END 352 353 DETRENDS METADATA 354 NAME STR FLAT_W 355 DETTYPE STR FLAT 356 EXPTYPE STR skyflat 357 REF_ID S64 305 358 REF_ITER S32 0 359 FILTER STR w.00000 360 MAX S32 10 361 END 362
Note:
See TracChangeset
for help on using the changeset viewer.
