package Subs::Images;
##############################################################################
#
# DESCRIPTION: Extract transform and plot images
#
# HISTORY:
# HISTORY: $Log: Images.pm,v $
# HISTORY: Revision 1.10 2005/02/08 14:33:54 apsop
# HISTORY: Just format clean up.
# HISTORY:
# HISTORY: Revision 1.9 2004/08/27 18:39:02 apsop
# HISTORY: Use swiftxform for image transformations.
# HISTORY:
# HISTORY: Revision 1.8 2004/05/06 20:02:34 dah
# HISTORY: Add version number back into the header comments.
# HISTORY:
# HISTORY: Revision 1.7 2004/04/28 13:49:15 dah
# HISTORY: Fix attitude file instrument type.
# HISTORY:
# HISTORY: Revision 1.6 2004/04/16 20:21:18 dah
# HISTORY: Begin using embedded history records
# HISTORY:
#
# VERSION: 0.0
#
#
##############################################################################
use Subs::Sub;
use Util::Xanadu;
@ISA = ("Subs::Sub");
use strict;
sub new {
my $proto=shift;
my $self=$proto->SUPER::new();
$self->{DESCRIPTION}="Extracting, merging and plotting images";
return $self;
}
##################
# METHODS:
##################
sub body {
my $self=shift;
#####################################
# extract images from the event data
#####################################
$self->extract_images();
$self->image_raw_to_det();
$self->image_raw_to_sky();
$self->plot_images();
} # end of body method
###############################################################################
# convert raw coordinate images to sky coordinates
###############################################################################
sub image_raw_to_sky {
my $self=shift;
my $inst=shift;
my $log =$self->log();
my $filename=$self->filename();
my $procpar =$self->procpar();
my $jobpar =$self->jobpar();
$log->entry("Converting raw coordinate images to sky coordinates for $inst");
######################################################
# make sure there is an attitude file
######################################################
my $attitude = $filename->get('attitude', 's');
unless(-f $attitude) {
$log->entry("No attitude data available - can't make sky images");
return;
}
####################################
# parameters needed for sky coords
####################################
my $swiftxform = Util::HEAdas->new("swiftxform")
->is_script(1);
my $teldef = $filename->fetch_cal('teldef', $inst);
$swiftxform->params({
teldeffile => $teldef,
to => 'SKY',
attfile => $attitude,
ra => $jobpar->read('ra'),
dec => $jobpar->read('dec'),
aberration => 'no',
seed => $procpar->read('seed'),
chatter => 4
});
######################
# loop over files
######################
foreach my $rawFile ($filename->get('corrimage', $inst, '*', '*') ) {
#########################################
# determine the SKY coordinate filename
#########################################
my $skyFile = $filename->corresponding("corrimage", "skyimage", $rawFile);
unlink $skyFile;
$log->entry("converting $rawFile to $skyFile");
$swiftxform->params({
infile => $rawFile,
outfile => $skyFile,
})
->run;
} # end of loop over files
} # end of image_raw_to_sky method