Astro-FITS-HdrTrans
view release on metacpan or search on metacpan
lib/Astro/FITS/HdrTrans/ESO.pm view on Meta::CPAN
=cut
sub to_AIRMASS_END {
my $self = shift;
my $FITS_headers = shift;
my $end_airmass = 1.0;
if ( exists $FITS_headers->{"HIERARCH.ESO.TEL.AIRM.END"} ) {
$end_airmass = $FITS_headers->{"HIERARCH.ESO.TEL.AIRM.END"};
} elsif ( exists $FITS_headers->{AIRMASS} ) {
$end_airmass = $FITS_headers->{AIRMASS};
}
return $end_airmass;
}
sub from_AIRMASS_END {
my $self = shift;
my $generic_headers = shift;
"HIERARCH.ESO.TEL.AIRM.END", $generic_headers->{ "AIRMASS_END" };
}
sub to_AIRMASS_START {
my $self = shift;
my $FITS_headers = shift;
my $start_airmass = 1.0;
if ( exists $FITS_headers->{"HIERARCH.ESO.TEL.AIRM.START"} ) {
$start_airmass = $FITS_headers->{"HIERARCH.ESO.TEL.AIRM.START"};
} elsif ( exists $FITS_headers->{AIRMASS} ) {
$start_airmass = $FITS_headers->{AIRMASS};
}
return $start_airmass;
}
sub from_AIRMASS_START {
my $self = shift;
my $generic_headers = shift;
"HIERARCH.ESO.TEL.AIRM.START", $generic_headers->{ "AIRMASS_START" };
}
sub to_CONFIGURATION_INDEX {
my $self = shift;
my $FITS_headers = shift;
my $instindex = 0;
if ( exists $FITS_headers->{"HIERARCH.ESO.INS.GRAT.ENC"} ) {
$instindex = $FITS_headers->{"HIERARCH.ESO.INS.GRAT.ENC"};
}
return $instindex;
}
sub to_DEC_BASE {
my $self = shift;
my $FITS_headers = shift;
my $dec = 0.0;
if ( exists ( $FITS_headers->{DEC} ) ) {
$dec = $FITS_headers->{DEC};
}
$dec = defined( $dec ) ? $dec: 0.0;
return $dec;
}
# This is guesswork at present. It's rather tied to the UKIRT names
# and we need generic names or use instrument-specific values in
# instrument-specific primitives, and pass the actual value for the
# night log. Could do with separate CHOPPING, BIAS booleans
# to indicate whether or not chopping is enabled and whether or not the
# detector mode needs a bias removed, like UKIRT's STARE mode.
sub to_DETECTOR_READ_TYPE {
my $self = shift;
my $FITS_headers = shift;
my $read_type;
my $chop = $FITS_headers->{"HIERARCH.ESO.TEL.CHOP.ST"};
$chop = defined( $chop ) ? $chop : 0;
my $detector_mode = exists( $FITS_headers->{"HIERARCH.ESO.DET.MODE.NAME"} ) ?
$FITS_headers->{"HIERARCH.ESO.DET.MODE.NAME"} : "NDSTARE";
if ( $detector_mode =~ /Uncorr/ ) {
if ( $chop ) {
$read_type = "CHOP";
} else {
$read_type = "STARE";
}
} else {
if ( $chop ) {
$read_type = "NDCHOP";
} else {
$read_type = "NDSTARE";
}
}
return $read_type;
}
# Equinox may be absent for calibrations such as darks.
sub to_EQUINOX {
my $self = shift;
my $FITS_headers = shift;
my $equinox = 0;
if ( exists $FITS_headers->{EQUINOX} ) {
$equinox = $FITS_headers->{EQUINOX};
}
return $equinox;
}
sub to_GRATING_NAME{
my $self = shift;
my $FITS_headers = shift;
my $name = "UNKNOWN";
if ( exists $FITS_headers->{"HIERARCH.ESO.INS.GRAT.NAME"} ) {
$name = $FITS_headers->{"HIERARCH.ESO.INS.GRAT.NAME"};
}
return $name;
}
sub to_GRATING_ORDER{
my $self = shift;
my $FITS_headers = shift;
my $order = 1;
if ( exists $FITS_headers->{"HIERARCH.ESO.INS.GRAT.ORDER"} ) {
$order = $FITS_headers->{"HIERARCH.ESO.INS.GRAT.ORDER"};
}
return $order;
}
( run in 1.282 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )