[](https://github.com/SETI/rms-starcat/releases)
[](https://github.com/SETI/rms-starcat/releases)
[](https://github.com/SETI/rms-starcat/actions)
[](https://rms-starcat.readthedocs.io/en/latest/?badge=latest)
[](https://codecov.io/gh/SETI/rms-starcat)
<br />
[](https://pypi.org/project/rms-starcat)
[](https://pypi.org/project/rms-starcat)
[](https://pypi.org/project/rms-starcat)
[](https://pypi.org/project/rms-starcat)
<br />
[](https://github.com/SETI/rms-starcat/commits/main/)
[](https://github.com/SETI/rms-starcat/commits/main/)
[](https://github.com/SETI/rms-starcat/commits/main/)
<br />
[](https://github.com/SETI/rms-starcat/issues)
[](https://github.com/SETI/rms-starcat/issues)
[](https://github.com/SETI/rms-starcat/pulls)
[](https://github.com/SETI/rms-starcat/pulls)
<br />

[](https://github.com/SETI/rms-starcat/stargazers)

# 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](https://pds-rings.seti.org).
# Installation
The `starcat` module is available via the `rms-starcat` package on PyPI and can be installed with:
```sh
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`](https://rms-filecache.readthedocs.io/en/latest/),
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](https://rms-starcat.readthedocs.io/en/latest/module.html).
Basic operation is as follows:
```python
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](https://github.com/SETI/rms-starcat/blob/main/CONTRIBUTING.md).
# Links
- [Documentation](https://rms-starcat.readthedocs.io)
- [Repository](https://github.com/SETI/rms-starcat)
- [Issue tracker](https://github.com/SETI/rms-starcat/issues)
- [PyPi](https://pypi.org/project/rms-starcat)
# Licensing
This code is licensed under the [Apache License v2.0](https://github.com/SETI/rms-starcat/blob/main/LICENSE).
Raw data
{
"_id": null,
"home_page": null,
"name": "rms-starcat",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "\"Robert S. French\" <rfrench@seti.org>",
"keywords": "UCAC4, YBSC, star",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/98/e6/66176a607d0ad6b84048d17927376915addc6f361877be0c15d9336794ea/rms_starcat-1.0.1.tar.gz",
"platform": null,
"description": "[](https://github.com/SETI/rms-starcat/releases)\n[](https://github.com/SETI/rms-starcat/releases)\n[](https://github.com/SETI/rms-starcat/actions)\n[](https://rms-starcat.readthedocs.io/en/latest/?badge=latest)\n[](https://codecov.io/gh/SETI/rms-starcat)\n<br />\n[](https://pypi.org/project/rms-starcat)\n[](https://pypi.org/project/rms-starcat)\n[](https://pypi.org/project/rms-starcat)\n[](https://pypi.org/project/rms-starcat)\n<br />\n[](https://github.com/SETI/rms-starcat/commits/main/)\n[](https://github.com/SETI/rms-starcat/commits/main/)\n[](https://github.com/SETI/rms-starcat/commits/main/)\n<br />\n[](https://github.com/SETI/rms-starcat/issues)\n[](https://github.com/SETI/rms-starcat/issues)\n[](https://github.com/SETI/rms-starcat/pulls)\n[](https://github.com/SETI/rms-starcat/pulls)\n<br />\n\n[](https://github.com/SETI/rms-starcat/stargazers)\n\n\n# Introduction\n\n`starcat` is a set of classes for reading and searching star catalogs. Currently NAIF SPICE\nstar catalogs, the Yale Bright Star Catalog (YBSC), and UCAC4 are supported.\n\n`starcat` is a product of the [PDS Ring-Moon Systems Node](https://pds-rings.seti.org).\n\n# Installation\n\nThe `starcat` module is available via the `rms-starcat` package on PyPI and can be installed with:\n\n```sh\npip install rms-starcat\n```\n\n# Getting Started\n\nThe `starcat` module provides the `StarCatalog` class, which is the superclass for classes\nthat handle specific star catalogs. Each star catalog class takes an optional directory\npath to point at the root of the star catalog data; if no directory path is provided,\nthe contents of an environment variable is used instead. Each path can be a full URL\nas supported by [`rms-filecache`](https://rms-filecache.readthedocs.io/en/latest/),\nallowing the catalog data to be downloaded (and cached locally) at runtime.\n\n- `SpiceStarCatalog`\n - The `dir` argument, if specified, must point to a directory containing NAIF SPICE\n kernels.\n - Otherwise, the environment variable `SPICE_PATH`, if defined, must contain a `Stars`\n subdirectory with NAIF SPICE kernels.\n - Otherwise, the environment variable `OOPS_RESOURCES` must contain a `SPICE/Stars`\n subdirectory.\n- `YBSCStarCatalog`\n - The `dir` argument, if specified, must point to a directory containing the file\n `catalog`.\n - Otherwise, the environment variable `YBSC_PATH` must point to that directory.\n- `UCAC4StarCatalog`\n - The `dir` argument, if specified, must point to a directory containing the directory\n `u4b`.\n - Otherwise, the environment variable `UCAC4_PATH` must point to that directory.\n\nEach star catalog returns stars as a class that is a subclass of `Star`. Each subclass\ncontains the attributes provided by that star catalog, and none are guaranteed to be\nfilled in for all stars:\n\n- `SpiceStar`\n- `YBSCStar`\n- `UCAC4Star`\n\nDetails of each class are available in the [module documentation](https://rms-starcat.readthedocs.io/en/latest/module.html).\n\nBasic operation is as follows:\n\n```python\nfrom starcat import YBSCStarCatalog\nimport numpy as np\ncat = YBSCStarCatalog()\nra_vega = 279.2333\ndec_vega = 38.7836\nvega_list = list(cat.find_stars(ra_min=np.radians(ra_vega-0.1),\n ra_max=np.radians(ra_vega+0.1),\n dec_min=np.radians(dec_vega-0.1),\n dec_max=np.radians(dec_vega+0.1)))\n\nassert len(vega_list) == 1\nprint(vega_list[0])\n```\n\nyields:\n\n```\nUNIQUE ID 7001 | RA 279.2345833\u00b0 (18h36m56.300s) | DEC 38.7836111\u00b0 (+038d47m1.000s)\nVMAG 0.030 | PM RA 259.135 mas/yr | PM DEC 286.000 mas/yr\nTEMP 10800 | SCLASS A0Va\nName \"3Alp Lyr\" | Durch \"BD+38 3238\" | Draper 172167 | SAO 67174 | FK5 699\nIR 1 Ref NASA | Multiple \" \" | Aitken 11510 None | Variable \"Alp Lyr\"\nSCLASS Code | Galactic LON 67.44 LAT 19.24\nB-V 0.0 | U-B -0.01 | R-I -0.03\nParallax TRIG 0.1230000 arcsec | RadVel -14.0 km/s V | RotVel (v sin i) 15.0 km/s\nDouble mag diff 10.40 Sep 62.80 arcsec Components AB # 5\n```\n\n# Contributing\n\nInformation on contributing to this package can be found in the\n[Contributing Guide](https://github.com/SETI/rms-starcat/blob/main/CONTRIBUTING.md).\n\n# Links\n\n- [Documentation](https://rms-starcat.readthedocs.io)\n- [Repository](https://github.com/SETI/rms-starcat)\n- [Issue tracker](https://github.com/SETI/rms-starcat/issues)\n- [PyPi](https://pypi.org/project/rms-starcat)\n\n# Licensing\n\nThis code is licensed under the [Apache License v2.0](https://github.com/SETI/rms-starcat/blob/main/LICENSE).\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Star catalog database",
"version": "1.0.1",
"project_urls": {
"Documentation": "https://rms-starcat.readthedocs.io/en/latest",
"Homepage": "https://github.com/SETI/rms-starcat",
"Issues": "https://github.com/SETI/rms-starcat/issues",
"Repository": "https://github.com/SETI/rms-starcat",
"Source": "https://github.com/SETI/rms-starcat"
},
"split_keywords": [
"ucac4",
" ybsc",
" star"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b42ce90bfe4a88b79bb80f03177d017b5daa1a8b699216e715c5e192313df7db",
"md5": "bd1fa62ea8a0b7ad5dde6bda0a9aee41",
"sha256": "fceaf18a9c0eb74ebab065cb6e6b192d551172653d146353270c8b890cf932cf"
},
"downloads": -1,
"filename": "rms_starcat-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bd1fa62ea8a0b7ad5dde6bda0a9aee41",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 32510,
"upload_time": "2025-07-09T22:22:27",
"upload_time_iso_8601": "2025-07-09T22:22:27.076156Z",
"url": "https://files.pythonhosted.org/packages/b4/2c/e90bfe4a88b79bb80f03177d017b5daa1a8b699216e715c5e192313df7db/rms_starcat-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "98e666176a607d0ad6b84048d17927376915addc6f361877be0c15d9336794ea",
"md5": "183b7c3b9a7e5fe420910132998c81bc",
"sha256": "1dbd37f0a03b0958bca254a04f9ba5c63cf44bbda9d50c3c271b52de76cdda70"
},
"downloads": -1,
"filename": "rms_starcat-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "183b7c3b9a7e5fe420910132998c81bc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 41199,
"upload_time": "2025-07-09T22:22:28",
"upload_time_iso_8601": "2025-07-09T22:22:28.229080Z",
"url": "https://files.pythonhosted.org/packages/98/e6/66176a607d0ad6b84048d17927376915addc6f361877be0c15d9336794ea/rms_starcat-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 22:22:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "SETI",
"github_project": "rms-starcat",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [
{
"name": "coverage",
"specs": []
},
{
"name": "cspyce",
"specs": []
},
{
"name": "flake8",
"specs": []
},
{
"name": "mypy",
"specs": []
},
{
"name": "myst-parser",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "pytest",
"specs": []
},
{
"name": "rms-filecache",
"specs": []
},
{
"name": "sphinx",
"specs": []
},
{
"name": "sphinxcontrib-napoleon",
"specs": []
},
{
"name": "sphinx-rtd-theme",
"specs": []
}
],
"lcname": "rms-starcat"
}