IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 33967


Ignore:
Timestamp:
May 31, 2012, 8:45:53 AM (14 years ago)
Author:
bills
Message:

changes to make the program compatiable with non-stack cmfs.
Accept zero point, filter, and exposure time as options in case
they aren't found in the header

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/listcmf

    r33939 r33967  
    5858
    5959
    60 my ( $cmf, $out, $opihi_read_file, $append, $save_temps, $verbose);
     60my ( $cmf, $out, $opihi_read_file, $append, $help, $verbose);
     61
     62my ($exp_time, $filter, $zero_point);
    6163
    6264GetOptions(
    6365            'opihi-read-file|r=s'   => \$opihi_read_file,
    6466            'append'                => \$append,
    65             'save-temps'            => \$save_temps,
     67            'zero-point|z=s'        => \$zero_point,
     68            'exptime|e=s'           => \$exp_time,
     69            'filter|e=s'            => \$filter,
     70            'help|h'                => \$help,
    6671            'verbose|v'             => \$verbose,
    6772) or pod2usage( 2 );
     
    7580my $input = $cmf;
    7681
    77 die "usage: listcmf <cmf_filename> [<listfile> <ext>]\n" unless defined($cmf);
     82if ($help or !defined $cmf) {
     83    print STDERR "usage: listcmf <cmf_filename> [<listfile>] [--opihi-read-file <filename>]\n";
     84    die "usage: listcmf <cmf_filename> [<listfile>] [--append] [--opihi-read-file <filename>] [--zero-point <zp>] [--exptime <exptime>] [--filter <filter>]\n";
     85}
    7886
    7987# output file handle
     
    8795
    8896
    89 my ($exp_time, $zero_point, $filter);
    9097my %extensions;
    9198# read the keywords and list of extensions from the header
    9299{
    93     my $header_data = `ftlist $cmf kh include=EXPTIME,FPA.ZP,FPA.FILTERID`;
     100    my $header_data = `ftlist $cmf kh include=EXPTIME,FPA.ZP,FPA.FILTERID,FILTER,EXPOTIME`;
    94101
    95102    die "failed to extract header information form $cmf\n" if !$header_data;
     
    106113
    107114            if (! ($hdu_name =~ /SkyChip/) ) {
    108                 print STDERR "unexpected extension name found: $hdu_name\n";
    109                 die "expected SkyChip.*\n";
     115#                print STDERR "unexpected extension name found: $hdu_name\n";
     116#                die "expected SkyChip.*\n";
    110117            }
    111118            my (undef, $ext) = split '\.', $hdu_name;
     119            $ext = $hdu_name if !defined $ext;
    112120            if ($type eq 'BinTable') {
    113121                printf STDERR "HDU %2d %4s  %-12s %4d cols %7d rows\n", $hdu_num, $ext, $type, $cols, $rows if $verbose;
    114122                # save extension offset (number - 1) in extensions hash
    115123                $extensions{$ext} = $hdu_num - 1;
    116             } elsif ($ext eq 'hdr') {
     124            } elsif ($ext and $ext eq 'hdr') {
    117125                # primary header
    118126                printf STDERR "HDU %2d %4s  %-12s\n", $hdu_num, $ext, "$type $cols" if $verbose;
     
    120128        } elsif ($line =~ /=/) {
    121129            # keyword line
     130            $line =~ s/=//;
    122131            my ($key, $value);
    123132            if ($line =~ /HIERARCH/) {
    124                 (undef, $key, undef, $value) = split " ", $line;
     133                (undef, $key, $value) = split " ", $line;
    125134                # print STDERR "$key $value\n" if $verbose;
    126135            } else {
    127                 ($key, undef, $value) = split " ", $line;
     136                ($key, $value) = split " ", $line;
    128137                # print STDERR "$key $value\n" if $verbose;
    129138            }
    130139            if ($key eq 'EXPTIME') {
    131                 $exp_time = $value;
     140                $exp_time = $value unless ((lc($value) =~ /nan/) or $exp_time);
     141            } elsif ($key eq 'EXPOTIME') {
     142                $exp_time = $value unless $exp_time;
    132143            } elsif ($key eq 'FPA.FILTERID') {
    133                 $filter = substr $value, 1, 1;
     144                $filter = substr $value, 1, 1 unless $filter;
     145            } elsif ($key eq 'FILTER') {
     146                $filter = substr $value, 1, 1 unless $filter;
     147                if (!$filter) {
     148                    $filter = undef;
     149#                    print STDERR "Null value for filter setting to r\n";
     150#                    $filter = "r";
     151                }
    134152            } elsif ($key eq 'FPA.ZP') {
    135                 $zero_point = $value;
     153                $zero_point = $value unless $zero_point;
    136154            }
    137155        }
     
    139157    die "failed to find filter in header" unless defined $filter;
    140158    die "failed to find exposure time in header" unless defined $exp_time;
    141     die "failed to find zero point in header" unless defined $zero_point;
     159    if (!defined $zero_point) {
     160        print STDERR "failed to find zero point in header using 25\n";
     161        $zero_point = 25.0;
     162    }
    142163    printf STDERR "$cmf: %2d extensions filter: $filter zpt: $zero_point exposure_time: $exp_time\n", scalar (keys %extensions) if $verbose;
    143164}
     
    235256    printf OUT '$EXPTIME_%s = %f' .  "\n", $filter, $exp_time;
    236257    printf OUT '$ZPT_%s = %f' . "\n", $filter, $zero_point;
     258    printf OUT '$FILTER = %s' . "\n", $filter;
    237259    print OUT "read IPP_IDET 1";
    238260    my $n = 2;
Note: See TracChangeset for help on using the changeset viewer.