Changeset 8763 for trunk/ippScripts/scripts/detrend_reject_imfile.pl
- Timestamp:
- Sep 6, 2006, 4:32:51 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/ippScripts/scripts/detrend_reject_imfile.pl (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippScripts/scripts/detrend_reject_imfile.pl
r8715 r8763 3 3 use warnings; 4 4 use strict; 5 6 use vars qw( $VERSION ); 7 $VERSION = '0.01'; 5 8 6 9 use IPC::Cmd qw( can_run run ); … … 8 11 use PS::IPP::Metadata::List qw( parse_md_list ); 9 12 use Statistics::Descriptive; 10 use Data::Dumper; 13 14 use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt ); 15 use Pod::Usage qw( pod2usage ); 16 17 my ($det_id, $iter, $exp_id, $det_type); 18 GetOptions( 19 'det_id|d=s' => \$det_id, 20 'iteration=s' => \$iter, 21 'exp_id|e=s' => \$exp_id, 22 'det_type|t=s' => \$det_type, 23 ) or pod2usage( 2 ); 24 25 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV; 26 pod2usage( 27 -msg => "Required options: --det_id --iteration --exp_id --det_type", 28 -exitval => 3, 29 ) unless defined $det_id 30 and defined $iter 31 and defined $exp_id 32 and defined $det_type; 11 33 12 34 use constant RECIPE => 'PPIMAGE_J'; # Recipe to use for ppImage to make JPEGs … … 52 74 53 75 54 # Parse command-line arguments55 die "Reject exposures based on the imfile.\n\n" .56 "Usage: $0 DET_ID ITER EXP_ID DETREND_TYPE\n\n"57 if scalar @ARGV != 4;58 my $detId = shift @ARGV; # Detrend ID59 my $iter = shift @ARGV; # Iteration number60 my $expId = shift @ARGV; # Exposure ID61 my $detType = shift @ARGV; # Detrend type62 63 76 # Look for programs we need 64 77 my $missing_tools; … … 72 85 my $files; # Array of component files 73 86 { 74 my $command = "$dettool -residimfile -det_id $det Id -iteration $iter -exp_id $expId"; # Command to run87 my $command = "$dettool -residimfile -det_id $det_id -iteration $iter -exp_id $exp_id"; # Command to run 75 88 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 76 89 run(command => $command, verbose => 1); … … 82 95 83 96 # Generate the file list, and get the statistics 84 my $outputName = $det Type . '_' . $detId . '_' . $iter; # Root output name97 my $outputName = $det_type . '_' . $det_id . '_' . $iter; # Root output name 85 98 my $list1Name = $outputName . '_jpeg1.list'; # Name for the input file list for binning 1 86 99 my $list2Name = $outputName . '_jpeg2.list'; # Name for the input file list for binning 2 … … 119 132 120 133 # Check the existence of the required rejection levels as a function of detrend type 121 die "Unknown expected mean for detrend type $det Type\n"122 if not exists EXPECTED_MEAN->{$det Type};123 die "Unknown individual mean rejection level for detrend type $det Type\n"124 if not exists REJECT_INDIVIDUAL_MEAN->{$det Type};125 die "Unknown individual stdev rejection level for detrend type $det Type\n"126 if not exists REJECT_INDIVIDUAL_STDEV->{$det Type};127 die "Unknown sample mean rejection level for detrend type $det Type\n"128 if not exists REJECT_SAMPLE_MEAN->{$det Type};129 die "Unknown sample stdev rejection level for detrend type $det Type\n"130 if not exists REJECT_SAMPLE_STDEV->{$det Type};134 die "Unknown expected mean for detrend type $det_type\n" 135 if not exists EXPECTED_MEAN->{$det_type}; 136 die "Unknown individual mean rejection level for detrend type $det_type\n" 137 if not exists REJECT_INDIVIDUAL_MEAN->{$det_type}; 138 die "Unknown individual stdev rejection level for detrend type $det_type\n" 139 if not exists REJECT_INDIVIDUAL_STDEV->{$det_type}; 140 die "Unknown sample mean rejection level for detrend type $det_type\n" 141 if not exists REJECT_SAMPLE_MEAN->{$det_type}; 142 die "Unknown sample stdev rejection level for detrend type $det_type\n" 143 if not exists REJECT_SAMPLE_STDEV->{$det_type}; 131 144 132 145 # Reject based on the individual stats … … 135 148 for (my $i = 0; $i < scalar @means; $i++) { 136 149 my $mean = $means[$i]; # Mean for this component 137 $mean -= EXPECTED_MEAN->{$det Type} if defined EXPECTED_MEAN->{$detType};150 $mean -= EXPECTED_MEAN->{$det_type} if defined EXPECTED_MEAN->{$det_type}; 138 151 my $stdev = $stdevs[$i]; # Stdev for this component 139 152 140 if (defined REJECT_INDIVIDUAL_MEAN->{$det Type}153 if (defined REJECT_INDIVIDUAL_MEAN->{$det_type} 141 154 and $stdev > 0 and 142 $mean / $stdev > REJECT_INDIVIDUAL_MEAN->{$det Type}) {155 $mean / $stdev > REJECT_INDIVIDUAL_MEAN->{$det_type}) { 143 156 print "Rejecting exposure based on bad individual mean for component $i: " . 144 ($mean / $stdev) . " vs " . REJECT_INDIVIDUAL_MEAN->{$det Type} . "\n";157 ($mean / $stdev) . " vs " . REJECT_INDIVIDUAL_MEAN->{$det_type} . "\n"; 145 158 $reject = 1; 146 159 last; 147 } elsif (defined REJECT_INDIVIDUAL_STDEV->{$det Type} and148 $stdev > REJECT_INDIVIDUAL_STDEV->{$det Type}) {160 } elsif (defined REJECT_INDIVIDUAL_STDEV->{$det_type} and 161 $stdev > REJECT_INDIVIDUAL_STDEV->{$det_type}) { 149 162 print "Rejecting exposure based on bad individual stdev for component $i: " . 150 $stdev . " vs " . REJECT_INDIVIDUAL_STDEV->{$det Type} . "\n";163 $stdev . " vs " . REJECT_INDIVIDUAL_STDEV->{$det_type} . "\n"; 151 164 $reject = 1; 152 165 last; … … 165 178 } 166 179 my $meanStdev = $stdevStats->mean(); # Mean of the sample of stdevs 167 if (defined REJECT_SAMPLE_MEAN->{$det Type} and180 if (defined REJECT_SAMPLE_MEAN->{$det_type} and 168 181 $stdev != 0 and 169 $mean / $stdev > REJECT_SAMPLE_MEAN->{$det Type}) {182 $mean / $stdev > REJECT_SAMPLE_MEAN->{$det_type}) { 170 183 print "Rejecting exposure based on bad mean: " . ($mean / $stdev) . " vs " . 171 REJECT_SAMPLE_MEAN->{$det Type} . "\n";184 REJECT_SAMPLE_MEAN->{$det_type} . "\n"; 172 185 $reject = 1; 173 } elsif (defined REJECT_SAMPLE_STDEV->{$det Type} and174 $meanStdev > REJECT_SAMPLE_STDEV->{$det Type}) {186 } elsif (defined REJECT_SAMPLE_STDEV->{$det_type} and 187 $meanStdev > REJECT_SAMPLE_STDEV->{$det_type}) { 175 188 print "Rejecting exposure based on bad mean stdev: " . $meanStdev . " vs " . 176 REJECT_SAMPLE_STDEV->{$det Type} . "\n";189 REJECT_SAMPLE_STDEV->{$det_type} . "\n"; 177 190 $reject = 1; 178 191 } … … 180 193 # Add the result into the database 181 194 { 182 my $command = "$dettool -addresidexp -det_id $det Id -iteration $iter -exp_id $expId " .195 my $command = "$dettool -addresidexp -det_id $det_id -iteration $iter -exp_id $exp_id " . 183 196 "-recip " . RECIPE() . " -b1_uri $jpeg1Name -b2_uri $jpeg2Name -bg $mean -bg_stdev $stdev " . 184 197 "-bg_mean_stdev $meanStdev"; # Command to run
Note:
See TracChangeset
for help on using the changeset viewer.
