Index: trunk/ippScripts/scripts/detrend_reject_imfile.pl
===================================================================
--- trunk/ippScripts/scripts/detrend_reject_imfile.pl	(revision 8715)
+++ trunk/ippScripts/scripts/detrend_reject_imfile.pl	(revision 8763)
@@ -3,4 +3,7 @@
 use warnings;
 use strict;
+
+use vars qw( $VERSION );
+$VERSION = '0.01';
 
 use IPC::Cmd qw( can_run run );
@@ -8,5 +11,24 @@
 use PS::IPP::Metadata::List qw( parse_md_list );
 use Statistics::Descriptive;
-use Data::Dumper;
+
+use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
+use Pod::Usage qw( pod2usage );
+
+my ($det_id, $iter, $exp_id, $det_type);
+GetOptions(
+    'det_id|d=s'        => \$det_id,
+    'iteration=s'       => \$iter,
+    'exp_id|e=s'        => \$exp_id,
+    'det_type|t=s'      => \$det_type,
+) or pod2usage( 2 );
+
+pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
+pod2usage(
+    -msg => "Required options: --det_id --iteration --exp_id --det_type",
+    -exitval => 3,
+) unless defined $det_id
+    and defined $iter
+    and defined $exp_id
+    and defined $det_type;
 
 use constant RECIPE => 'PPIMAGE_J'; # Recipe to use for ppImage to make JPEGs
@@ -52,13 +74,4 @@
 
 
-# Parse command-line arguments
-die "Reject exposures based on the imfile.\n\n" .
-    "Usage: $0 DET_ID ITER EXP_ID DETREND_TYPE\n\n"
-    if scalar @ARGV != 4;
-my $detId = shift @ARGV;	# Detrend ID
-my $iter = shift @ARGV;		# Iteration number
-my $expId = shift @ARGV;	# Exposure ID
-my $detType = shift @ARGV;	# Detrend type
-
 # Look for programs we need
 my $missing_tools;
@@ -72,5 +85,5 @@
 my $files;			# Array of component files
 {
-    my $command = "$dettool -residimfile -det_id $detId -iteration $iter -exp_id $expId"; # Command to run
+    my $command = "$dettool -residimfile -det_id $det_id -iteration $iter -exp_id $exp_id"; # Command to run
     my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
 	run(command => $command, verbose => 1);
@@ -82,5 +95,5 @@
 
 # Generate the file list, and get the statistics
-my $outputName = $detType . '_' . $detId . '_' . $iter; # Root output name
+my $outputName = $det_type . '_' . $det_id . '_' . $iter; # Root output name
 my $list1Name = $outputName . '_jpeg1.list'; # Name for the input file list for binning 1
 my $list2Name = $outputName . '_jpeg2.list'; # Name for the input file list for binning 2
@@ -119,14 +132,14 @@
 
 # Check the existence of the required rejection levels as a function of detrend type
-die "Unknown expected mean for detrend type $detType\n"
-    if not exists EXPECTED_MEAN->{$detType};
-die "Unknown individual mean rejection level for detrend type $detType\n"
-    if not exists REJECT_INDIVIDUAL_MEAN->{$detType};
-die "Unknown individual stdev rejection level for detrend type $detType\n"
-    if not exists REJECT_INDIVIDUAL_STDEV->{$detType};
-die "Unknown sample mean rejection level for detrend type $detType\n"
-    if not exists REJECT_SAMPLE_MEAN->{$detType};
-die "Unknown sample stdev rejection level for detrend type $detType\n"
-    if not exists REJECT_SAMPLE_STDEV->{$detType};
+die "Unknown expected mean for detrend type $det_type\n"
+    if not exists EXPECTED_MEAN->{$det_type};
+die "Unknown individual mean rejection level for detrend type $det_type\n"
+    if not exists REJECT_INDIVIDUAL_MEAN->{$det_type};
+die "Unknown individual stdev rejection level for detrend type $det_type\n"
+    if not exists REJECT_INDIVIDUAL_STDEV->{$det_type};
+die "Unknown sample mean rejection level for detrend type $det_type\n"
+    if not exists REJECT_SAMPLE_MEAN->{$det_type};
+die "Unknown sample stdev rejection level for detrend type $det_type\n"
+    if not exists REJECT_SAMPLE_STDEV->{$det_type};
 
 # Reject based on the individual stats
@@ -135,18 +148,18 @@
 for (my $i = 0; $i < scalar @means; $i++) {
     my $mean = $means[$i];	# Mean for this component
-    $mean -= EXPECTED_MEAN->{$detType} if defined EXPECTED_MEAN->{$detType};
+    $mean -= EXPECTED_MEAN->{$det_type} if defined EXPECTED_MEAN->{$det_type};
     my $stdev = $stdevs[$i];	# Stdev for this component
 
-    if (defined REJECT_INDIVIDUAL_MEAN->{$detType}
+    if (defined REJECT_INDIVIDUAL_MEAN->{$det_type}
 	and $stdev > 0 and
-	$mean / $stdev > REJECT_INDIVIDUAL_MEAN->{$detType}) {
+	$mean / $stdev > REJECT_INDIVIDUAL_MEAN->{$det_type}) {
 	print "Rejecting exposure based on bad individual mean for component $i: " .
-	    ($mean / $stdev) . " vs " . REJECT_INDIVIDUAL_MEAN->{$detType} . "\n";
+	    ($mean / $stdev) . " vs " . REJECT_INDIVIDUAL_MEAN->{$det_type} . "\n";
 	$reject = 1;
 	last;
-    } elsif (defined REJECT_INDIVIDUAL_STDEV->{$detType} and
-	     $stdev > REJECT_INDIVIDUAL_STDEV->{$detType}) {
+    } elsif (defined REJECT_INDIVIDUAL_STDEV->{$det_type} and
+	     $stdev > REJECT_INDIVIDUAL_STDEV->{$det_type}) {
 	print "Rejecting exposure based on bad individual stdev for component $i: " .
-	    $stdev . " vs " . REJECT_INDIVIDUAL_STDEV->{$detType} . "\n";
+	    $stdev . " vs " . REJECT_INDIVIDUAL_STDEV->{$det_type} . "\n";
 	$reject = 1;
 	last;
@@ -165,14 +178,14 @@
 }
 my $meanStdev = $stdevStats->mean(); # Mean of the sample of stdevs
-if (defined REJECT_SAMPLE_MEAN->{$detType} and
+if (defined REJECT_SAMPLE_MEAN->{$det_type} and
     $stdev != 0 and
-    $mean / $stdev > REJECT_SAMPLE_MEAN->{$detType}) {
+    $mean / $stdev > REJECT_SAMPLE_MEAN->{$det_type}) {
     print "Rejecting exposure based on bad mean: " . ($mean / $stdev) . " vs " .
-	REJECT_SAMPLE_MEAN->{$detType} . "\n";
+	REJECT_SAMPLE_MEAN->{$det_type} . "\n";
     $reject = 1;
-} elsif (defined REJECT_SAMPLE_STDEV->{$detType} and
-	 $meanStdev > REJECT_SAMPLE_STDEV->{$detType}) {
+} elsif (defined REJECT_SAMPLE_STDEV->{$det_type} and
+	 $meanStdev > REJECT_SAMPLE_STDEV->{$det_type}) {
     print "Rejecting exposure based on bad mean stdev: " . $meanStdev . " vs " .
-	REJECT_SAMPLE_STDEV->{$detType} . "\n";
+	REJECT_SAMPLE_STDEV->{$det_type} . "\n";
     $reject = 1;
 }
@@ -180,5 +193,5 @@
 # Add the result into the database
 {
-    my $command = "$dettool -addresidexp -det_id $detId -iteration $iter -exp_id $expId " .
+    my $command = "$dettool -addresidexp -det_id $det_id -iteration $iter -exp_id $exp_id " .
 	"-recip " . RECIPE() . " -b1_uri $jpeg1Name -b2_uri $jpeg2Name -bg $mean -bg_stdev $stdev " .
 	"-bg_mean_stdev $meanStdev";	# Command to run
