IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 10333


Ignore:
Timestamp:
Nov 30, 2006, 4:34:00 PM (20 years ago)
Author:
Paul Price
Message:

Updating rejection criteria.

Location:
trunk/ippScripts/scripts
Files:
2 edited

Legend:

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

    r9821 r10333  
    5858my @expTags;                    # Array of exposure IDs
    5959my @means;                      # Array of means
     60my @stdevs;                     # Array of standard deviations
     61my @meanStdevs;                 # Array of standard deviations of the mean
    6062my @variances;                  # Array of variances
    6163my @accept;                     # Array of accept flags
     
    7072    push @expTags, $exposure->{exp_tag};
    7173    push @means, $exposure->{bg};
     74    push @stdevs, $exposure->{bg_stdev};
     75    push @meanStdevs, $exposure->{bg_mean_stdev};
    7276    push @variances, $exposure->{bg_stdev}**2;
    7377    push @accept, $exposure->{accept};
     
    7680my $meanStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
    7781$meanStats->add_data(@means);
    78 my $varianceStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
    79 $varianceStats->add_data(@variances);
     82my $stdevStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
     83$stdevStats->add_data(@stdevs);
     84my $meanStdevStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
     85$meanStdevStats->add_data(@meanStdevs);
    8086
    8187$ipprc->define_camera($camera);
     
    8591my $reject_meanstdev = rejection_limit( 'ENSEMBLE.MEANSTDEV', $det_type, $filter );
    8692
    87 # rejections based on comparison with ensemble statistics
    88 ## these should probably be 3-sigma clipped statistics themselves...
    89 my $mean = $meanStats->mean();
    90 my $meanStdev = $meanStats->standard_deviation();
    91 if (not defined $meanStdev) { $meanStdev = 0; }
    92 
    93 my $var = $varianceStats->mean();
    94 my $varStdev = $varianceStats->standard_deviation();
    95 
    96 print "Ensemble mean $mean +/- $meanStdev, stdev " . sqrt($var) . " +/- " . sqrt($varStdev) . "\n\n";
     93print "Ensemble mean " . $meanStats->mean() . " +/- " . $meanStats->standard_deviation .
     94    ", stdev " . $stdevStats->mean() . " +/- " . $stdevStats->standard_deviation() . "\n\n";
    9795
    9896# Go through again to do rejection, and update the database for each exposure
     
    111109        goto UPDATE;
    112110    }
    113     if ($reject_mean && ($meanStdev > 0)) {
    114         my $nSigma = abs($means[$i] - $mean) / $meanStdev;
     111
     112    if ($reject_mean and defined $meanStats->standard_deviation() ) {
     113        my $nSigma = abs($means[$i] - $meanStats->mean() ) / $meanStats->standard_deviation();
    115114        if ($nSigma > $reject_mean) {
    116115            print "Rejecting $expTag based on outlier mean value: " .
    117                 "$means[$i] is $nSigma vs " . $reject_mean . "\n";
     116                "$means[$i] --> $nSigma sigma vs " . $reject_mean . "\n";
    118117            $reject = 1;
    119118            goto UPDATE;
     
    122121        print "no rejection for exposure mean\n";
    123122    }
    124     if ($reject_stdev && ($varStdev > 0)) {
    125         my $nSigma = abs($variances[$i] - $var) / $varStdev;
     123
     124    if ($reject_stdev and defined $stdevStats->standard_deviation() > 0) {
     125        my $nSigma = abs($stdevs[$i] - $stdevStats->mean() ) / $stdevStats->standard_deviation();
    126126        if ($nSigma > $reject_stdev) {
    127127            print "Rejecting $expTag based on outlier stdev: " .
    128                 sqrt($variances[$i]) . " is $nSigma vs " . $reject_stdev . "\n";
     128                $stdevs[$i] . " --> $nSigma sigma vs " . $reject_stdev . "\n";
    129129            $reject = 1;
    130130            goto UPDATE;
     
    132132    } else {
    133133        print "no rejection for exposure stdev\n";
     134    }
     135   
     136    if ($reject_meanstdev and defined $meanStdevStats->standard_deviation() > 0) {
     137        my $nSigma = abs($meanStdevs[$i] - $meanStdevStats->mean() ) / $meanStdevStats->standard_deviation();
     138        if ($nSigma > $reject_meanstdev) {
     139            print "Rejecting $expTag based on outlier mean stdev: " .
     140                $meanStdevs[$i] . " --> $nSigma sigma vs " . $reject_stdev . "\n";
     141            $reject = 1;
     142            goto UPDATE;
     143        }
     144    } else {
     145        print "no rejection for exposure mean stdev\n";
    134146    }
    135147   
     
    174186# Put the result into the database
    175187unless ($no_update) {
     188    my $varianceStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
     189    $varianceStats->add_data(@variances);
     190
    176191    my $command = "$dettool -adddetrunsummary -det_id $det_id -iteration $iter" .
    177         " -bg " . $mean . " -bg_stdev " . sqrt($var) .
    178         " -bg_mean_stdev " . $meanStdev;
     192        " -bg " . $meanStats->mean() . " -bg_stdev " . sqrt($varianceStats->mean()) .
     193        " -bg_mean_stdev " . $meanStats->standard_deviation();
    179194    $command .= " -accept" if $master;
    180195   
  • trunk/ippScripts/scripts/detrend_reject_imfile.pl

    r9892 r10333  
    125125
    126126    if ($reject_imfile_mean) {
    127         if (abs($mean) > $reject_imfile_mean) {
     127        if (abs($mean) > $reject_imfile_mean * $stdev) {
    128128            print "Rejecting exposure based on bad imfile mean for imfile $i: " .
    129129                $mean . " vs " . $reject_imfile_mean . "\n";
     
    164164# reject if the exposure ensemble mean is deviant
    165165if ($reject_exp_mean) {
    166     if (abs($mean) > $reject_exp_mean) {
     166    if (abs($mean) > $reject_exp_mean * $stdev) {
    167167        print "Rejecting exposure based on bad mean: " . ($mean / $stdev) . " vs " .
    168168            $reject_exp_mean . "\n";
Note: See TracChangeset for help on using the changeset viewer.