GRSS: Gauss-Radau Small-body Simulator
Project description
GRSS
GRSS (pronounced "grass"), the Gauss-Radau Small-body Simulator is a Python package with a C++ binding for propagating and fitting the orbits of small bodies in the solar system, such as asteroids and comets.
If you use GRSS in your research, please cite at least one of the following:
- Makadia et al. (2024), "Measurability of the Heliocentric Momentum Enhancement from a Kinetic Impact: The Double Asteroid Redirection Test (DART) Mission", Planetary Science Journal, 5, 38.
- Makadia et al. (2023), "GRSS: An open-source small-body science tool for planetary defense", 55th Annual Meeting of the Division for Planetary Sciences.
Getting Started
There are currently two different ways to install the GRSS library.
- Using the Python Package Index (PyPI)
- Using the source code from the GitHub repository
Install via PyPI
The GRSS library is available on PyPI and can be installed using the following command:
pip install grss
If this installation fails (i.e., you get an error when importing GRSS), you can try installing it without using the binary wheel on PyPI by using the following command:
pip install grss --no-binary grss
NOTE: The GRSS library is currently not pip-installable on Intel-based Macs. To use the library on an Intel-based Mac, please install the library using the source code from the GitHub repository (see below for instructions).
Install via source code (Python)
The source code for the GRSS library is available on GitHub and can be downloaded using the following command:
git clone https://www.github.com/rahil-makadia/grss
Once the source code has been downloaded, the library can be installed using the following command:
cd grss
source initialize.sh
python3 -m pip install .
Install via source code (C++, reduced functionality)
The source code for the GRSS library is available on GitHub and can be downloaded using the following command:
git clone https://www.github.com/rahil-makadia/grss
Once the source code has been downloaded, the library can be installed using the following command:
cd grss
source initialize.sh
source build_cpp.sh
You will need to have CMake installed on your system to build the C++ library. Once the build script has completed, you can use the resulting static/shared library from the build
directory in your C++ projects.
Keep in mind the C++ library only contains support for propagating orbits and calculating observables. If you want to use the orbit fitting functionality, you will need to install the full Python library.
Usage
Once the GRSS library has been installed, it can be imported into a Python script using the following command:
import grss
The first time the library is imported, it will download some data files such as NAIF SPICE kernels and the data needed to debias optical astrometry. This should should take a few minutes. Once these files are available to the library, you are ready to use GRSS to its full potential!
Check out the examples on the GRSS website to get started.
Acknowledgements
GRSS Development Team:
- Rahil Makadia
- Steven R. Chesley
- Siegfried Eggl
- Davide Farnocchia
The GRSS library was developed by Rahil Makadia as part of his PhD dissertation at the University of Illinois at Urbana-Champaign. This work was supported by a NASA Space Technologies Graduate Research Opportunities (NSTGRO) Fellowship, Grant #80NSSC22K1173. Rahil would like to thank his advisor, Dr. Siegfried Eggl as well as his collaborators, Dr. Steven R. Chesley, and Dr. Davide Farnocchia for their guidance and support.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for grss-4.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 252d173c642e823b2bef10167e864ea6293a68afae453da8d07c9d967b756c77 |
|
MD5 | 48cc10ee731ba4598ae03ec4f8f52661 |
|
BLAKE2b-256 | 22eaca6d9f3d35f7d4fbf120c8f4d1156843c2156e66ff3655f998009be84a7c |
Hashes for grss-4.0.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d25ef08a22a840671a37991bee40bf95176a321252bc9e9a2fa34a9a26d37788 |
|
MD5 | f906e7ac1544babe14bb3f1a1a38d912 |
|
BLAKE2b-256 | ad9c0d4c75492d82500d216e2e96f65fb6c4a4ed17076c97fa23fc0b80fa8820 |
Hashes for grss-4.0.3-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9f3ece0d8edd225dfd6d00cca5f2a698db5f6fa90e717c4eb0a62723afe386e |
|
MD5 | 6324afeff533dd0fd29c4cde8a42a900 |
|
BLAKE2b-256 | 65c6e63c2b68c6b917ef4fbf038b247691a795f264e8e51c357bd5d70a169b59 |
Hashes for grss-4.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e26d551a739bfbbd0f7474b57687b14195e67913bec4bba81cc15f68c4da6b72 |
|
MD5 | 4b70d40e2040890186cb72374817b32d |
|
BLAKE2b-256 | 51cb131b08647eb6ae4dfa671556c6211b17e94d54f266b0fe740dd830797a25 |
Hashes for grss-4.0.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc66d0a8c57bdf1232765ede02c7d0fa7a9f0bd347a7d4a74a721a69ff1d9691 |
|
MD5 | e1f66d7d1c741a39780b67bcd0aea0ce |
|
BLAKE2b-256 | 09b1a7c4048d68bef43aa7fc9dd3b14b155ece65f7382f1c3af4e0addcbaf774 |
Hashes for grss-4.0.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b2e734e65456ae11645927c55392c3d3225dd000b7e5689951d7c0f954aed86 |
|
MD5 | 36b813e0810089e8f1ce7783f3ce544f |
|
BLAKE2b-256 | 979246dd1d78871d39b22467121bbc124e2903fd6d79b103970f9fd9b9d2e111 |
Hashes for grss-4.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecf6c01a250759a744907907d0c4bc982279be810543672bbe946c1b8999bc25 |
|
MD5 | 5379c13c2716ccf2f8d8aa5be6b1df50 |
|
BLAKE2b-256 | af83c3b0c3abbc7f65a06d7fef098dc382196944eb9c84a136fa3f6f5daffd36 |
Hashes for grss-4.0.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59f6b9356241990095d54f04c16625c36c3ad041f80893adc8c293902f985652 |
|
MD5 | 9820ae063ddd78bf7148bc792199f3c1 |
|
BLAKE2b-256 | db40512ac2ab12755f209bd3f14b4ed4535c54fd88c8a51cc451ca0516093169 |
Hashes for grss-4.0.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c83a621bd5a75140d04360fa67090c20e9722962527fb548d8240d0633dcf0b |
|
MD5 | 7d9a56ea7528a6660765d827a3b2447c |
|
BLAKE2b-256 | 074ec1a6834df4488c48ee1832674099442d1f127027e5f09888ceea055cfd45 |
Hashes for grss-4.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 288c22adfd818adb3904821bc730630b8958a8e61c53e486e7a15d11cd39695e |
|
MD5 | 0899ffdfbd6cca183891098d31235081 |
|
BLAKE2b-256 | 5020f40c6d5cfde19288cdc2c7457bd0566f6cf24e1d05fd1d47301ee105c84d |
Hashes for grss-4.0.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 693640fb1a8e9d608196bca8c0693ef67a86d80b22e289afc35ecc514c791235 |
|
MD5 | 64d5238ce881ccd9d3fdd66e0a0524eb |
|
BLAKE2b-256 | 3284886c68d215c09421d4133432ed5a92c4e384fd952dd274d337c53ef7e8f4 |