package Subs::AddGTI2Att; ############################################################################## # # DESCRIPTION: This module has he simple functionality of appending # DESCRIPTION: an extension that contains the GTIsto all existing # DESCRIPTION: attitude files # # HISTORY: $Log: AddGTI2Att.pm,v $ # HISTORY: Revision 1.4 2012/08/15 06:10:46 apsop # HISTORY: Append the GTI extensions from ALL files to the attitude # HISTORY: file (*sat.fits). [Bob W.] # HISTORY: # HISTORY: Revision 1.3 2012/01/12 06:52:03 apsop # HISTORY: Changes going to proc3.15.03 # HISTORY: # # VERSION: 0.0 # ############################################################################## use Subs::Sub; use Util::Log; @ISA = ("Subs::Sub"); use strict; sub new { my $proto=shift; my $self=$proto->SUPER::new(); $self->{DESCRIPTION}="Adding GTI\'s to spacecraft attitude file"; return $self; } sub body { my $self=shift; my $log =$self->log(); my $filename=$self->filename(); my $jobpar =$self->jobpar(); my $attitude = $filename->get('attitude', 's'); if (!-e $attitude) { $log->error(1, "Spacecraft attitude file does not exist, unable to add GTI's to file"); return; } my @gti = ( { TAG => 'ss', OUT => 'GTI', DESC => 'Snapshots' }, { TAG => 'at', IN => 'STDGTI', OUT => 'STDGTI', DESC => 'Good attitude' }, { TAG => 'st', DESC => 'Settling' }, { TAG => 'po', DESC => 'Pointing' }, { TAG => 'np', IN => 'STDGTI', DESC => 'Not pointing' }, { TAG => 'ot', DESC => 'On target' }, { TAG => 'nf', DESC => 'Narrow field instruments' }, { TAG => 'tp', DESC => 'Target pointing' }, { TAG => 'ng', DESC => 'No gap' }, { TAG => 'ra', DESC => 'Retried input to aspect' }, { TAG => 'to', DESC => 'Total' }, { TAG => 'im', INST => 'b', DESC => 'BAT images' }, { TAG => 'im', INST => 'u', DESC => 'UVOT images' }, { TAG => 'im', INST => 'x', DESC => 'XRT images' }, ); my $ftappend = Util::HEAdas->new('ftappend') ->params({ outfile => $attitude, }); my $appended = 0; foreach my $gti (@gti) { my $inst = $gti->{INST} || 's'; if (not $gti->{IN}) { $gti->{IN} = 'GTI'; } if (not $gti->{OUT}) { my $tmp = $inst ne 's' ? $inst : ''; $gti->{OUT} = "\U$tmp$gti->{TAG}_GTI"; } my $path = $filename->get('gti', $inst, $gti->{TAG}); if (-f $path) { my $input = "$path\[$gti->{IN}]"; my @card; if ($gti->{IN} ne $gti->{OUT}) { push(@card, "#EXTNAME='$gti->{OUT}'"); } if ($gti->{DESC}) { push(@card, "#GTI-DESC='$gti->{DESC}'"); } if (@card) { $input .= '[col ' . join(';', @card) . ']'; } $ftappend->params({ infile => $input })->run(); ++$appended; } else { $log->entry("$inst/$gti->{TAG} GTI file not available"); } } if (not $appended) { $log->error(1, "NO GTI file available, unable to add GTI's to attitude file"); } return; } # end of body method