package Astro::Catalog::IO::UKIRTBS;
=head1 NAME
Astro::Catalog::IO::UKIRTBS - Old format used by UKIRT Bright Star catalogues
=head1 SYNOPSIS
$cat = Astro::Catalog::IO::UKIRTBS->_read_catalog( \@lines );
=head1 DESCRIPTION
This class provides a read method for catalogs written in a format
used by the old C<ukstar> web interface to the SAO and Bright Star
catalogues. It is probable that this format has a real name and is a
historical format rather than a UKIRT-specific format but the history
of C<ukstar> and the associated catalogue files is not known to the
author of this module.
=cut
use 5.006;
use warnings;
use warnings::register;
use Carp;
use strict;
use Astro::Catalog;
use Astro::Catalog::Star;
use base qw/ Astro::Catalog::IO::ASCII /;
use vars qw/ $VERSION /;
$VERSION = '4.31';
=over 4
=item B<_read_catalog>
Parses the catalogue lines and returns a new C<Astro::Catalog>
object containing the catalog entries.
$cat = Astro::Catalog::IO::JCMT->_read_catalog( \@lines );
No options are supported.
=cut
sub _read_catalog {
my $class = shift;
my $lines = shift;
croak "Must supply catalogue contents as a reference to an array"
unless ref($lines) eq 'ARRAY';
# Go through each line and parse it
my @stars;
for my $l ( @$lines ) {
# benchmarks suggest that substr is faster than an unpack
my $bs = substr($l,0,8);
my $ra = substr($l,9,12);
my $dec = substr($l,21,12);
my $rap = substr($l,34,4);
my $decp = substr($l,40,4);
my $mag = substr($l,46,4);
my $type = substr($l,50);
# Tidy the result
chomp($type);
$bs =~ s/^\s+//;
# Create coordinate object
my $c = new Astro::Coords( ra => $ra,
dec => $dec,
type => 'B1950',
name => $bs,
units => 'r',
);
my $s = new Astro::Catalog::Star( coords => $c,
id => $bs,
spectype => $type,
fluxes => new Astro::Fluxes(
new Astro::Flux( $mag, 'mag', 'V') ),
);
push(@stars, $s);
}
# Create the catalog object
return new Astro::Catalog( Stars => \@stars,
Origin => 'UKIRT BS Catalog',
);
}
=back
=head1 FORMAT
The catalog format uses fixed formatting (first column is column 1):
Columns
1-7 star id
10-20 Right Ascension (presumed B1950). Radians
21-32 Declination (presumed B1950). Radians
33-38 "rap" (unknown)
39-44 "decp" (unknown)
45-49 V Magnitude
50- Spectral type
=head1 COPYRIGHT
Copyright (C) 2004 Particle Physics and Astronomy Research Council.
All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful,but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place,Suite 330, Boston, MA 02111-1307, USA
=head1 AUTHORS
Tim Jenness E<lt>tjenness@cpan.orgE<gt>
=cut
1;