IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 28222


Ignore:
Timestamp:
Jun 4, 2010, 1:44:20 PM (16 years ago)
Author:
watersc1
Message:

Updates to nightly science processing to queue detrend verify runs for a sampling of the detrend data for that date. It's set to off for the time being, until the config file information is finalized.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippScripts/scripts/automate_stacks.pl

    r27938 r28222  
    2020my $stacktool= can_run('stacktool') or (warn "Can't find stacktool" and $missing_tools = 1);
    2121my $difftool = can_run('difftool') or (warn "Can't find difftool" and $missing_tools = 1);
     22my $dettool = can_run('dettool') or (warn "Can't find dettool" and $missing_tools = 1);
    2223my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    2324my $mkBTpcontrol = can_run('make_burntool_pcontrol.pl') or (warn "Can't find make_burntool_pcontrol.pl" and $missing_tools = 1);
     
    5960my ( $check_registration, $define_burntool, $queue_burntool, $check_chips, $queue_chips);
    6061my ( $check_stacks, $queue_stacks, $check_diffs, $queue_diffs, $clean_old);
     62my ( $check_detrends, $queue_detrends);
    6163
    6264GetOptions(
     
    8183    'check_stacks'         => \$check_stacks,
    8284    'queue_stacks'         => \$queue_stacks,
     85    'check_detrends'          => \$check_detrends,
     86    'queue_detrends'          => \$queue_detrends,
    8387    'check_diffs'          => \$check_diffs,
    8488    'queue_diffs'          => \$queue_diffs,
     
    105109           --check_stacks         Confirm that stacks can be built.
    106110           --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.
    107113           --check_diffs          Confirm that diffs can be done.
    108114           --queue_diffs          Issue difftool commands to queue diffs.
     
    115121          ) unless
    116122    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
    119125    defined $test_mode or defined $clean_old or defined $check_mode;
    120126
     
    128134my %stackable_list = ();
    129135my %reduction_class = ();
     136my @detrend_list = ();
     137my %dettype_list = ();
     138my %exptype_list = ();
     139my %refID_list = ();
     140my %refIter_list = ();
     141my %detfilter_list = ();
     142my %detmax_list = ();
    130143my %clean_commands = ();
    131144my %clean_retention = ();
     
    158171        }
    159172    }
    160 #    if (${ $entry }{name} eq 'RETENTION_TIME') {
    161 #        $retention_time = ${ $entry }{value};
    162 #    }
    163173    elsif (${ $entry }{name} eq 'FILTERS') {
    164174        push @filter_list, ${ $entry }{value};
     
    195205        }
    196206    }
    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}
    201236
    202237unless(defined($date)) {
     
    256291    return_metadata($date);
    257292    unless (defined($test_mode) || defined($check_mode)) { exit(0); }
     293}
     294if (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}
     300if (defined($queue_detrends)) {
     301    $metadata_out{nsState} = 'QUEUEDETRENDS';
     302    &execute_detrends($date,"pretend");
     303    return_metadata($date);
     304    exit(0);
    258305}
    259306if (defined($define_burntool) || defined($test_mode)) {
     
    498545
    499546    my $cmd = "$chiptool";
    500     $cmd .= ' -simple -dbname gpc1 -definebyquery -set_end_stage warp ';
     547    $cmd .= " -simple -dbname $dbname -definebyquery -set_end_stage warp ";
    501548    $cmd .= " -set_label $label ";
    502549    $cmd .= " -set_workdir $workdir -set_dist_group $dist_group ";
     
    566613}
    567614
     615
     616
    568617sub chip_queue {
    569618    my $date = shift;
     
    612661
    613662#
     663# Detrend verification
     664################################################################################
     665
     666sub 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
     695sub 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
     708sub 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
     724sub 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
     739sub 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#
    614760# Stacking
    615761################################################################################
     
    627773    my $cmd = "$stacktool";
    628774#    $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 ";
    630776    $cmd .= " -set_label $label -select_label $label ";
    631777    $cmd .= " -set_workdir $workdir -set_dist_group $dist_group ";
     
    779925    my ($label,$workdir,$obs_mode,$object,$comment,$tess_id,$dist_group,$data_group,$reduction) = get_tool_parameters($cleaning_date,$target);
    780926    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 ";
    782928    if ($debug == 1) {
    783929        $args .= ' -pretend ';
     
    826972
    827973    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}";
    829975    my $obs_mode = $obsmode_list{$target};
    830976    my $object   = $object_list{$target};
     
    837983}
    838984
     985sub 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}
    8391011
    8401012sub init_gpc_db {
  • trunk/ippTasks/nightly_stacks.pro

    r27860 r28222  
    55macro nightly.stacks.on
    66    ns.initday.on
     7    ns.detrends.off
    78    ns.registration.on
    89    ns.burntool.on
     
    1314macro nightly.stacks.off
    1415    ns.initday.off
     16    ns.detrends.off
    1517    ns.registration.off
    1618    ns.burntool.off
     
    2123macro ns.on
    2224    ns.initday.on
     25    ns.detrends.off
    2326    ns.registration.on
    2427    ns.burntool.on
     
    2932macro ns.off
    3033    ns.initday.off
     34    ns.detrends.off
    3135    ns.registration.off
    3236    ns.burntool.off
     
    4145end
    4246
     47macro ns.detrends.on
     48  task ns.detrends.load
     49    active true
     50  end
     51end
     52
    4353macro ns.registration.on
    4454  task ns.registration.load
     
    7686macro ns.initday.off
    7787  task ns.initday.load
     88    active false
     89  end
     90end
     91
     92macro ns.detrends.off
     93  task ns.detrends.load
    7894    active false
    7995  end
     
    186202  #operation times out?
    187203  task.exit    timeout
     204    showcommand timeout
     205  end
     206end
     207
     208#
     209# Queue off any possible detrend verification runs
     210#
     211task              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
    188239    showcommand timeout
    189240  end
  • trunk/ippconfig/recipes/nightly_science.config

    r28210 r28222  
    288288  STACKABLE BOOL TRUE
    289289END
     290
     291# Detrend verification data
     292DETRENDS MULTI
     293DETRENDS 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
     301END
     302
     303DETRENDS 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
     311END
     312
     313DETRENDS 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
     321END
     322
     323DETRENDS 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
     331END
     332
     333DETRENDS 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
     341END
     342
     343DETRENDS 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
     351END
     352
     353DETRENDS 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
     361END
     362
Note: See TracChangeset for help on using the changeset viewer.