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;