Skip to content

SETI/rms-starcat

Repository files navigation

GitHub release; latest by date GitHub Release Date Test Status Documentation Status Code coverage
PyPI - Version PyPI - Format PyPI - Downloads PyPI - Python Version
GitHub commits since latest release GitHub commit activity GitHub last commit
Number of GitHub open issues Number of GitHub closed issues Number of GitHub open pull requests Number of GitHub closed pull requests
GitHub License Number of GitHub stars GitHub forks

Introduction

starcat is a set of classes for reading and searching star catalogs. Currently NAIF SPICE star catalogs, the Yale Bright Star Catalog (YBSC), and UCAC4 are supported.

starcat is a product of the PDS Ring-Moon Systems Node.

Installation

The starcat module is available via the rms-starcat package on PyPI and can be installed with:

pip install rms-starcat

Getting Started

The starcat module provides the StarCatalog class, which is the superclass for classes that handle specific star catalogs. Each star catalog class takes an optional directory path to point at the root of the star catalog data; if no directory path is provided, the contents of an environment variable is used instead. Each path can be a full URL as supported by rms-filecache, allowing the catalog data to be downloaded (and cached locally) at runtime.

  • SpiceStarCatalog
    • The dir argument, if specified, must point to a directory containing NAIF SPICE kernels.
    • Otherwise, the environment variable SPICE_PATH, if defined, must contain a Stars subdirectory with NAIF SPICE kernels.
    • Otherwise, the environment variable OOPS_RESOURCES must contain a SPICE/Stars subdirectory.
  • YBSCStarCatalog
    • The dir argument, if specified, must point to a directory containing the file catalog.
    • Otherwise, the environment variable YBSC_PATH must point to that directory.
  • UCAC4StarCatalog
    • The dir argument, if specified, must point to a directory containing the directory u4b.
    • Otherwise, the environment variable UCAC4_PATH must point to that directory.

Each star catalog returns stars as a class that is a subclass of Star. Each subclass contains the attributes provided by that star catalog, and none are guaranteed to be filled in for all stars:

  • SpiceStar
  • YBSCStar
  • UCAC4Star

Details of each class are available in the module documentation.

Basic operation is as follows:

from starcat import YBSCStarCatalog
import numpy as np
cat = YBSCStarCatalog()
ra_vega = 279.2333
dec_vega = 38.7836
vega_list = list(cat.find_stars(ra_min=np.radians(ra_vega-0.1),
                                ra_max=np.radians(ra_vega+0.1),
                                dec_min=np.radians(dec_vega-0.1),
                                dec_max=np.radians(dec_vega+0.1)))

assert len(vega_list) == 1
print(vega_list[0])

yields:

UNIQUE ID 7001 | RA 279.2345833° (18h36m56.300s) | DEC 38.7836111° (+038d47m1.000s)
VMAG  0.030  | PM RA 259.135 mas/yr  | PM DEC 286.000 mas/yr
TEMP 10800 | SCLASS A0Va
Name "3Alp Lyr" | Durch "BD+38 3238" | Draper 172167 | SAO 67174 | FK5 699
IR 1 Ref NASA | Multiple " " | Aitken 11510 None | Variable "Alp Lyr"
SCLASS Code   | Galactic LON 67.44 LAT 19.24
B-V 0.0 | U-B -0.01 | R-I -0.03
Parallax TRIG 0.1230000 arcsec | RadVel -14.0 km/s V  | RotVel (v sin i) 15.0 km/s
Double mag diff 10.40 Sep 62.80 arcsec Components AB # 5

Contributing

Information on contributing to this package can be found in the Contributing Guide.

Links

Licensing

This code is licensed under the Apache License v2.0.