package Subs::UvotTdrss;
##############################################################################
#
# DESCRIPTION: Does processing of uvot tdrss messages
#
# HISTORY:
# HISTORY: $Log: UvotTdrss.pm,v $
# HISTORY: Revision 1.1 2006/03/06 17:09:30 apsop
# HISTORY: First production version
# HISTORY:
# HISTORY:
#
# VERSION: 0.0
#
##############################################################################
use Subs::Sub;
use Util::SwiftTags;
@ISA = ("Subs::Sub");
use strict;
sub new {
my $proto=shift;
my $self=$proto->SUPER::new();
$self->{DESCRIPTION}="Process UVOT tdrss messages";
return $self;
}
##################
# METHODS:
##################
sub body {
my $self=shift;
my $log =$self->log();
my $filename=$self->filename();
my $procpar =$self->procpar();
my $jobpar =$self->jobpar();
###############################################
# Check it we need to reformat the image files
###############################################
my $tempim = 'xrttdrss_fits.tmp';
my $create = Util::Ftool->new('fimgcreate')
->params({bitpix => 8,
naxes => '0',
datafile => 'none',
outfile => $tempim});
my $append = Util::HEAdas->new('ftappend');
my $cphead = Util::Ftool->new('cphead');
foreach my $mode ('fc', 'ni'){
my @images = sort( $filename->get('tdmess', 'u', $mode, '*') );
if(@images){
my $image = $images[0];
$create->run();
foreach $image (@images){
$append->params({infile => $image .'[1]',
outfile => $tempim})
->run();
}
unlink @images;
if($mode eq 'ni'){
$image =~ s/\.fits/_rw.img/;
}
rename $tempim, $image;
my $imfits = Util::FITSfile->new($image);
my ($tstart, $tstop) = (1E10, 0);
for(my $ext=1; $ext < $imfits->nhdus(); $ext++){
$imfits->ext($ext);
my ($start, $stop) = ($imfits->keyword('TSTART'), $imfits->keyword('TSTOP'));
$tstart = $start if $start < $tstart;
$tstop = $stop if $stop > $tstop;
}
my $start_date = Util::Date->new($tstart);
my $stop_date = Util::Date->new($tstop);
$imfits->ext(0);
$imfits->begin_many_keywords();
$imfits->keyword('INSTRUME', 'UVOT');
$imfits->keyword('TSTART', $tstart);
$imfits->keyword('TSTOP', $tstop);
$imfits->keyword('DATE-OBS', $start_date->date().'T'.$start_date->time() );
$imfits->keyword('DATE-END', $stop_date->date().'T'.$stop_date->time() );
$imfits->end_many_keywords();
}
}
}
1;