
=pod

=head1 NAME

Astro::Hipparcos::Record - Represents a single Hipparcos record

=head1 SYNOPSIS

  use Astro::Hipparcos;
  my $catalog = Astro::Hipparcos->new("thefile.dat");
  while (defined(my $record = $catalog->get_record())) {
    print $record->get_HIP(), "\n"; # print record id
  }

=head1 DESCRIPTION

Represents a single Hipparcos record. The code is auto-generated from the C-level structure.
Thus the funny member names.

=head1 METHODS

=head2 new

Returns a new record object.

=head2 ParseRecord

Sort of internal method that may SEGFAULT if you use it wrong.

Given a string that MUST contain a full line from the record file,
fills the object with data from that line.

=head1 ACCESSOR METHODS

Each of these methods descriptions have the following format:

    Bytes Format Units   Label     Explanations

=over 2

=item * get_Catalog() set_Catalog

          1  A1    ---     Catalog   [H] Catalogue (H=Hipparcos)               (H0)

=item * get_HIP() set_HIP

      9- 14  I6    ---     HIP       Identifier (HIP number)                   (H1)

=item * get_Proxy() set_Proxy

         16  A1    ---     Proxy     [HT] Proximity flag                       (H2)

=item * get_RAhms() set_RAhms

     18- 28  A11   ---     RAhms    *Right ascension in h m s, ICRS (Eq=J2000) (H3)

=item * get_DEdms() set_DEdms

     30- 40  A11   ---     DEdms    *Declination in deg ' ", ICRS (Eq=J2000)   (H4)

=item * get_Vmag() set_Vmag

     42- 46  F5.2  mag     Vmag      ? Magnitude in Johnson V                  (H5)

=item * get_VarFlag() set_VarFlag

         48  I1    ---     VarFlag  *[1,3]? Coarse variability flag            (H6)

=item * get_r_Vmag() set_r_Vmag

         50  A1    ---   r_Vmag     *[GHT] Source of magnitude                 (H7)

=item * get_RAdeg() set_RAdeg

     52- 63  F12.8 deg     RAdeg    *? alpha, degrees (ICRS, Eq=J2000)         (H8)

=item * get_DEdeg() set_DEdeg

     65- 76  F12.8 deg     DEdeg    *? delta, degrees (ICRS, Eq=J2000)         (H9)

=item * get_AstroRef() set_AstroRef

         78  A1    ---     AstroRef *[*+A-Z] Reference flag for astrometry    (H10)

=item * get_Plx() set_Plx

     80- 86  F7.2  mas     Plx       ? Trigonometric parallax                 (H11)

=item * get_pmRA() set_pmRA

     88- 95  F8.2 mas/yr   pmRA      ? Proper motion mu_alpha.cos(delta), ICRS(H12)

=item * get_pmDE() set_pmDE

     97-104  F8.2 mas/yr   pmDE      ? Proper motion mu_delta, ICRS           (H13)

=item * get_e_RAdeg() set_e_RAdeg

    106-111  F6.2  mas   e_RAdeg     ? Standard error in RA*cos(DEdeg)        (H14)

=item * get_e_DEdeg() set_e_DEdeg

    113-118  F6.2  mas   e_DEdeg     ? Standard error in DE                   (H15)

=item * get_e_Plx() set_e_Plx

    120-125  F6.2  mas   e_Plx       ? Standard error in Plx                  (H16)

=item * get_e_pmRA() set_e_pmRA

    127-132  F6.2 mas/yr e_pmRA      ? Standard error in pmRA                 (H17)

=item * get_e_pmDE() set_e_pmDE

    134-139  F6.2 mas/yr e_pmDE      ? Standard error in pmDE                 (H18)

=item * get_DE_RA() set_DE_RA

    141-145  F5.2  ---     DE:RA     [-1/1]? Correlation, DE/RA*cos(delta)    (H19)

=item * get_Plx_RA() set_Plx_RA

    147-151  F5.2  ---     Plx:RA    [-1/1]? Correlation, Plx/RA*cos(delta)   (H20)

=item * get_Plx_DE() set_Plx_DE

    153-157  F5.2  ---     Plx:DE    [-1/1]? Correlation, Plx/DE              (H21)

=item * get_pmRA_RA() set_pmRA_RA

    159-163  F5.2  ---     pmRA:RA   [-1/1]? Correlation, pmRA/RA*cos(delta)  (H22)

=item * get_pmRA_DE() set_pmRA_DE

    165-169  F5.2  ---     pmRA:DE   [-1/1]? Correlation, pmRA/DE             (H23)

=item * get_pmRA_Plx() set_pmRA_Plx

    171-175  F5.2  ---     pmRA:Plx  [-1/1]? Correlation, pmRA/Plx            (H24)

=item * get_pmDE_RA() set_pmDE_RA

    177-181  F5.2  ---     pmDE:RA   [-1/1]? Correlation, pmDE/RA*cos(delta)  (H25)

=item * get_pmDE_DE() set_pmDE_DE

    183-187  F5.2  ---     pmDE:DE   [-1/1]? Correlation, pmDE/DE             (H26)

=item * get_pmDE_Plx() set_pmDE_Plx

    189-193  F5.2  ---     pmDE:Plx  [-1/1]? Correlation, pmDE/Plx            (H27)

=item * get_pmDE_pmRA() set_pmDE_pmRA

    195-199  F5.2  ---     pmDE:pmRA [-1/1]? Correlation, pmDE/pmRA           (H28)

=item * get_F1() set_F1

    201-203  I3    %       F1        ? Percentage of rejected data            (H29)

=item * get_F2() set_F2

    205-209  F5.2  ---     F2       *? Goodness-of-fit parameter              (H30)

=item * get_BTmag() set_BTmag

    218-223  F6.3  mag     BTmag     ? Mean BT magnitude                      (H32)

=item * get_e_BTmag() set_e_BTmag

    225-229  F5.3  mag   e_BTmag     ? Standard error on BTmag                (H33)

=item * get_VTmag() set_VTmag

    231-236  F6.3  mag     VTmag     ? Mean VT magnitude                      (H34)

=item * get_e_VTmag() set_e_VTmag

    238-242  F5.3  mag   e_VTmag     ? Standard error on VTmag                (H35)

=item * get_m_BTmag() set_m_BTmag

        244  A1    ---   m_BTmag    *[A-Z*-] Reference flag for BT and VTmag  (H36)

=item * get_B_V() set_B_V

    246-251  F6.3  mag     B-V       ? Johnson B-V colour                     (H37)

=item * get_e_B_V() set_e_B_V

    253-257  F5.3  mag   e_B-V       ? Standard error on B-V                  (H38)

=item * get_r_B_V() set_r_B_V

        259  A1    ---   r_B-V       [GT] Source of B-V from Ground or Tycho  (H39)

=item * get_V_I() set_V_I

    261-264  F4.2  mag     V-I       ? Colour index in Cousins' system        (H40)

=item * get_e_V_I() set_e_V_I

    266-269  F4.2  mag   e_V-I       ? Standard error on V-I                  (H41)

=item * get_r_V_I() set_r_V_I

        271  A1    ---   r_V-I      *[A-T] Source of V-I                      (H42)

=item * get_CombMag() set_CombMag

        273  A1    ---     CombMag   [*] Flag for combined Vmag, B-V, V-I     (H43)

=item * get_Hpmag() set_Hpmag

    275-281  F7.4  mag     Hpmag    *? Median magnitude in Hipparcos system   (H44)

=item * get_e_Hpmag() set_e_Hpmag

    283-288  F6.4  mag   e_Hpmag    *? Standard error on Hpmag                (H45)

=item * get_Hpscat() set_Hpscat

    290-294  F5.3  mag     Hpscat    ? Scatter on Hpmag                       (H46)

=item * get_o_Hpmag() set_o_Hpmag

    296-298  I3    ---   o_Hpmag     ? Number of observations for Hpmag       (H47)

=item * get_m_Hpmag() set_m_Hpmag

        300  A1    ---   m_Hpmag    *[A-Z*-] Reference flag for Hpmag         (H48)

=item * get_Hpmax() set_Hpmax

    302-306  F5.2  mag     Hpmax     ? Hpmag at maximum (5th percentile)      (H49)

=item * get_HPmin() set_HPmin

    308-312  F5.2  mag     HPmin     ? Hpmag at minimum (95th percentile)     (H50)

=item * get_Period() set_Period

    314-320  F7.2  d       Period    ? Variability period (days)              (H51)

=item * get_HvarType() set_HvarType

        322  A1    ---     HvarType *[CDMPRU]? variability type               (H52)

=item * get_moreVar() set_moreVar

        324  A1    ---     moreVar  *[12] Additional data about variability   (H53)

=item * get_morePhoto() set_morePhoto

        326  A1    ---     morePhoto [ABC] Light curve Annex                  (H54)

=item * get_CCDM() set_CCDM

    328-337  A10   ---     CCDM      CCDM identifier                          (H55)

=item * get_n_CCDM() set_n_CCDM

        339  A1    ---   n_CCDM     *[HIM] Historical status flag             (H56)

=item * get_Nsys() set_Nsys

    341-342  I2    ---     Nsys      ? Number of entries with same CCDM       (H57)

=item * get_Ncomp() set_Ncomp

    344-345  I2    ---     Ncomp     ? Number of components in this entry     (H58)

=item * get_MultFlag() set_MultFlag

        347  A1    ---     MultFlag *[CGOVX] Double/Multiple Systems flag     (H59)

=item * get_Source() set_Source

        349  A1    ---     Source   *[PFILS] Astrometric source flag          (H60)

=item * get_Qual() set_Qual

        351  A1    ---     Qual     *[ABCDS] Solution quality                 (H61)

=item * get_m_HIP() set_m_HIP

    353-354  A2    ---   m_HIP       Component identifiers                    (H62)

=item * get_theta() set_theta

    356-358  I3    deg     theta     ? Position angle between components      (H63)

=item * get_rho() set_rho

    360-366  F7.3  arcsec  rho       ? Angular separation between components  (H64)

=item * get_e_rho() set_e_rho

    368-372  F5.3  arcsec  e_rho     ? Standard error on rho                  (H65)

=item * get_dHp() set_dHp

    374-378  F5.2  mag     dHp       ? Magnitude difference of components     (H66)

=item * get_e_dHp() set_e_dHp

    380-383  F4.2  mag   e_dHp       ? Standard error on dHp                  (H67)

=item * get_Survey() set_Survey

        385  A1    ---     Survey    [S] Flag indicating a Survey Star        (H68)

=item * get_Chart() set_Chart

        387  A1    ---     Chart    *[DG] Identification Chart                (H69)

=item * get_Notes() set_Notes

        389  A1    ---     Notes    *[DGPWXYZ] Existence of notes             (H70)

=item * get_HD() set_HD

    391-396  I6    ---     HD        [1/359083]? HD number <III/135>          (H71)

=item * get_BD() set_BD

    398-407  A10   ---     BD        Bonner DM <I/119>, <I/122>               (H72)

=item * get_CoD() set_CoD

    409-418  A10   ---     CoD       Cordoba Durchmusterung (DM) <I/114>      (H73)

=item * get_CPD() set_CPD

    420-429  A10   ---     CPD       Cape Photographic DM <I/108>             (H74)

=item * get__V_I_red() set__V_I_red

    431-434  F4.2  mag     (V-I)red  V-I used for reductions                  (H75)

=item * get_SpType() set_SpType

    436-447  A12   ---     SpType    Spectral type                            (H76)

=item * get_r_SpType() set_r_SpType

        449  A1    ---   r_SpType   *[1234GKSX]? Source of spectral type      (H77)


=back

=head1 SEE ALSO

L<Astro::Hipparcos>

L<http://en.wikipedia.org/wiki/Hipparcos_Catalogue>

At the time of this writing, you could obtain a copy of the Hipparcos catalogue
from L<ftp://adc.gsfc.nasa.gov/pub/adc/archives/catalogs/1/1239/> (hip_main.dat.gz).

=head1 AUTHOR

Steffen Mueller, E<lt>smueller@cpan.orgE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2009 by Steffen Mueller

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.0 or,
at your option, any later version of Perl 5 you may have available.

=cut

