IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 6, 2006, 4:32:51 PM (20 years ago)
Author:
jhoblitt
Message:

change from positional to named CLI options

File:
1 edited

Legend:

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

    r8715 r8763  
    33use warnings;
    44use strict;
     5
     6use vars qw( $VERSION );
     7$VERSION = '0.01';
    58
    69use IPC::Cmd qw( can_run run );
     
    811use PS::IPP::Metadata::List qw( parse_md_list );
    912use Statistics::Descriptive;
    10 use Data::Dumper;
     13
     14use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
     15use Pod::Usage qw( pod2usage );
     16
     17my ($det_id, $iter, $exp_id, $det_type);
     18GetOptions(
     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
     25pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
     26pod2usage(
     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;
    1133
    1234use constant RECIPE => 'PPIMAGE_J'; # Recipe to use for ppImage to make JPEGs
     
    5274
    5375
    54 # Parse command-line arguments
    55 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 ID
    59 my $iter = shift @ARGV;         # Iteration number
    60 my $expId = shift @ARGV;        # Exposure ID
    61 my $detType = shift @ARGV;      # Detrend type
    62 
    6376# Look for programs we need
    6477my $missing_tools;
     
    7285my $files;                      # Array of component files
    7386{
    74     my $command = "$dettool -residimfile -det_id $detId -iteration $iter -exp_id $expId"; # Command to run
     87    my $command = "$dettool -residimfile -det_id $det_id -iteration $iter -exp_id $exp_id"; # Command to run
    7588    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    7689        run(command => $command, verbose => 1);
     
    8295
    8396# Generate the file list, and get the statistics
    84 my $outputName = $detType . '_' . $detId . '_' . $iter; # Root output name
     97my $outputName = $det_type . '_' . $det_id . '_' . $iter; # Root output name
    8598my $list1Name = $outputName . '_jpeg1.list'; # Name for the input file list for binning 1
    8699my $list2Name = $outputName . '_jpeg2.list'; # Name for the input file list for binning 2
     
    119132
    120133# Check the existence of the required rejection levels as a function of detrend type
    121 die "Unknown expected mean for detrend type $detType\n"
    122     if not exists EXPECTED_MEAN->{$detType};
    123 die "Unknown individual mean rejection level for detrend type $detType\n"
    124     if not exists REJECT_INDIVIDUAL_MEAN->{$detType};
    125 die "Unknown individual stdev rejection level for detrend type $detType\n"
    126     if not exists REJECT_INDIVIDUAL_STDEV->{$detType};
    127 die "Unknown sample mean rejection level for detrend type $detType\n"
    128     if not exists REJECT_SAMPLE_MEAN->{$detType};
    129 die "Unknown sample stdev rejection level for detrend type $detType\n"
    130     if not exists REJECT_SAMPLE_STDEV->{$detType};
     134die "Unknown expected mean for detrend type $det_type\n"
     135    if not exists EXPECTED_MEAN->{$det_type};
     136die "Unknown individual mean rejection level for detrend type $det_type\n"
     137    if not exists REJECT_INDIVIDUAL_MEAN->{$det_type};
     138die "Unknown individual stdev rejection level for detrend type $det_type\n"
     139    if not exists REJECT_INDIVIDUAL_STDEV->{$det_type};
     140die "Unknown sample mean rejection level for detrend type $det_type\n"
     141    if not exists REJECT_SAMPLE_MEAN->{$det_type};
     142die "Unknown sample stdev rejection level for detrend type $det_type\n"
     143    if not exists REJECT_SAMPLE_STDEV->{$det_type};
    131144
    132145# Reject based on the individual stats
     
    135148for (my $i = 0; $i < scalar @means; $i++) {
    136149    my $mean = $means[$i];      # Mean for this component
    137     $mean -= EXPECTED_MEAN->{$detType} if defined EXPECTED_MEAN->{$detType};
     150    $mean -= EXPECTED_MEAN->{$det_type} if defined EXPECTED_MEAN->{$det_type};
    138151    my $stdev = $stdevs[$i];    # Stdev for this component
    139152
    140     if (defined REJECT_INDIVIDUAL_MEAN->{$detType}
     153    if (defined REJECT_INDIVIDUAL_MEAN->{$det_type}
    141154        and $stdev > 0 and
    142         $mean / $stdev > REJECT_INDIVIDUAL_MEAN->{$detType}) {
     155        $mean / $stdev > REJECT_INDIVIDUAL_MEAN->{$det_type}) {
    143156        print "Rejecting exposure based on bad individual mean for component $i: " .
    144             ($mean / $stdev) . " vs " . REJECT_INDIVIDUAL_MEAN->{$detType} . "\n";
     157            ($mean / $stdev) . " vs " . REJECT_INDIVIDUAL_MEAN->{$det_type} . "\n";
    145158        $reject = 1;
    146159        last;
    147     } elsif (defined REJECT_INDIVIDUAL_STDEV->{$detType} and
    148              $stdev > REJECT_INDIVIDUAL_STDEV->{$detType}) {
     160    } elsif (defined REJECT_INDIVIDUAL_STDEV->{$det_type} and
     161             $stdev > REJECT_INDIVIDUAL_STDEV->{$det_type}) {
    149162        print "Rejecting exposure based on bad individual stdev for component $i: " .
    150             $stdev . " vs " . REJECT_INDIVIDUAL_STDEV->{$detType} . "\n";
     163            $stdev . " vs " . REJECT_INDIVIDUAL_STDEV->{$det_type} . "\n";
    151164        $reject = 1;
    152165        last;
     
    165178}
    166179my $meanStdev = $stdevStats->mean(); # Mean of the sample of stdevs
    167 if (defined REJECT_SAMPLE_MEAN->{$detType} and
     180if (defined REJECT_SAMPLE_MEAN->{$det_type} and
    168181    $stdev != 0 and
    169     $mean / $stdev > REJECT_SAMPLE_MEAN->{$detType}) {
     182    $mean / $stdev > REJECT_SAMPLE_MEAN->{$det_type}) {
    170183    print "Rejecting exposure based on bad mean: " . ($mean / $stdev) . " vs " .
    171         REJECT_SAMPLE_MEAN->{$detType} . "\n";
     184        REJECT_SAMPLE_MEAN->{$det_type} . "\n";
    172185    $reject = 1;
    173 } elsif (defined REJECT_SAMPLE_STDEV->{$detType} and
    174          $meanStdev > REJECT_SAMPLE_STDEV->{$detType}) {
     186} elsif (defined REJECT_SAMPLE_STDEV->{$det_type} and
     187         $meanStdev > REJECT_SAMPLE_STDEV->{$det_type}) {
    175188    print "Rejecting exposure based on bad mean stdev: " . $meanStdev . " vs " .
    176         REJECT_SAMPLE_STDEV->{$detType} . "\n";
     189        REJECT_SAMPLE_STDEV->{$det_type} . "\n";
    177190    $reject = 1;
    178191}
     
    180193# Add the result into the database
    181194{
    182     my $command = "$dettool -addresidexp -det_id $detId -iteration $iter -exp_id $expId " .
     195    my $command = "$dettool -addresidexp -det_id $det_id -iteration $iter -exp_id $exp_id " .
    183196        "-recip " . RECIPE() . " -b1_uri $jpeg1Name -b2_uri $jpeg2Name -bg $mean -bg_stdev $stdev " .
    184197        "-bg_mean_stdev $meanStdev";    # Command to run
Note: See TracChangeset for help on using the changeset viewer.