# `paladin` : python library for astrodynamics
<p align="center">
<img src="./assets/paladin_sd.jpg" width="400" title="Paladin chuuni">
</p>
## Overview
This package provides tools for conducting CR3BP and ephemeris level analysis in cislunar and deep-space environments.
While the library is implemented in python, the majority of functionalities are powered by either [SPICE routines](https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/FORTRAN/spicelib/index.html) or through numpy/scipy/numba implementations, resulting in (relatively) fast computations.
For numerical integration of ODEs, `paladin` provides the option of using either `scipy` or `gsl`; the latter is recommended due to higher accuracy.
Optimization is conducted by constructing problems as [`pygmo` udp's](https://esa.github.io/pygmo2/index.html), which can then be solved through a variety of compatible solvers, including IPOPT, SNOPT, or WORHP (the latter two requires licenses).
## Dependencies
Developed on python 3.10.
Package requirements:
- `numpy`, `matplotlib`, `numba`, `scipy`, `spiceypy`, `sympy`
Optional:
- [`pygsl`](https://github.com/pygsl/pygsl/tree/main) : recommended for high-accuracy integration; requires `gsl` to be installed.
- `pygmo`, `pygmo_plugins_nonfree` : required for running trajectory construction problems
## SPICE setup
Users are responsible for downloading [the generic SPICE kernels froom the NAIF website](https://naif.jpl.nasa.gov/pub/naif/generic_kernels/). In addition, supplementary custom kernels specific to this module are stored in `paladin/assets/spice/`. The most commonly required kernels are:
- `naif0012.tls`
- `de440.bsp`
- `gm_de440.tpc`
## GSL setup
See [pygsl setup notes](./notes/pygsl_setup.md)
## Installation
This package is still in development. For now, please clone the repository and add to path.
## Capabilities
#### Roadmap
- [ ] GSL event capability
- [x] Propagation in CR3BP
- [x] Propagation in N-body problem
- [x] Transition to full-ephemeris model
- [x] Helper methods for frame transformation
## Gallery
NRHO propagation
<p align="center">
<img src="./plots/propagation_example_nrho.png" width="400" title="Propagation example">
</p>
Raw data
{
"_id": null,
"home_page": "https://github.com/Yuricst/paladin",
"name": "spacecraft-paladin",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "astrodynamics",
"author": "Yuri Shimane",
"author_email": "yuri.shimane@gatech.edu",
"download_url": "https://files.pythonhosted.org/packages/24/92/a56225e0c10ea4e10c39e345cab633af96c1c018e3af8407bdbf46c602c3/spacecraft_paladin-0.1.3.tar.gz",
"platform": null,
"description": "# `paladin` : python library for astrodynamics\n\n<p align=\"center\">\n <img src=\"./assets/paladin_sd.jpg\" width=\"400\" title=\"Paladin chuuni\">\n</p>\n\n\n## Overview\n\nThis package provides tools for conducting CR3BP and ephemeris level analysis in cislunar and deep-space environments. \n\nWhile the library is implemented in python, the majority of functionalities are powered by either [SPICE routines](https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/FORTRAN/spicelib/index.html) or through numpy/scipy/numba implementations, resulting in (relatively) fast computations. \nFor numerical integration of ODEs, `paladin` provides the option of using either `scipy` or `gsl`; the latter is recommended due to higher accuracy. \n\nOptimization is conducted by constructing problems as [`pygmo` udp's](https://esa.github.io/pygmo2/index.html), which can then be solved through a variety of compatible solvers, including IPOPT, SNOPT, or WORHP (the latter two requires licenses). \n\n\n## Dependencies\n\nDeveloped on python 3.10.\n\nPackage requirements: \n- `numpy`, `matplotlib`, `numba`, `scipy`, `spiceypy`, `sympy`\n\nOptional:\n- [`pygsl`](https://github.com/pygsl/pygsl/tree/main) : recommended for high-accuracy integration; requires `gsl` to be installed.\n- `pygmo`, `pygmo_plugins_nonfree` : required for running trajectory construction problems\n\n\n## SPICE setup\n\nUsers are responsible for downloading [the generic SPICE kernels froom the NAIF website](https://naif.jpl.nasa.gov/pub/naif/generic_kernels/). In addition, supplementary custom kernels specific to this module are stored in `paladin/assets/spice/`. The most commonly required kernels are:\n\n- `naif0012.tls`\n- `de440.bsp`\n- `gm_de440.tpc` \n\n\n## GSL setup\n\nSee [pygsl setup notes](./notes/pygsl_setup.md)\n\n\n## Installation\n\nThis package is still in development. For now, please clone the repository and add to path.\n\n\n## Capabilities\n\n#### Roadmap\n\n- [ ] GSL event capability\n- [x] Propagation in CR3BP\n- [x] Propagation in N-body problem\n- [x] Transition to full-ephemeris model\n- [x] Helper methods for frame transformation\n\n\n## Gallery\n\nNRHO propagation\n\n<p align=\"center\">\n <img src=\"./plots/propagation_example_nrho.png\" width=\"400\" title=\"Propagation example\">\n</p>\n\n\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "high-fidelity spaceraft dynamics propagator",
"version": "0.1.3",
"project_urls": {
"Homepage": "https://github.com/Yuricst/paladin"
},
"split_keywords": [
"astrodynamics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c4d9598cf2d6062a8489afb20ba9ec723f0c71eb2579caebf1dbb191e8456c2b",
"md5": "bc6119ec6ff0defa756067fee8fbe709",
"sha256": "87c86c3319d2d4ce74baf750db14007a19eeb6e8a845df9bf15b7dcd5feb7302"
},
"downloads": -1,
"filename": "spacecraft_paladin-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bc6119ec6ff0defa756067fee8fbe709",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 25755,
"upload_time": "2024-06-25T22:00:08",
"upload_time_iso_8601": "2024-06-25T22:00:08.668752Z",
"url": "https://files.pythonhosted.org/packages/c4/d9/598cf2d6062a8489afb20ba9ec723f0c71eb2579caebf1dbb191e8456c2b/spacecraft_paladin-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2492a56225e0c10ea4e10c39e345cab633af96c1c018e3af8407bdbf46c602c3",
"md5": "5578bbc610e231fa07968532f8471739",
"sha256": "070f686fe51d7fbd1f4226bbc65e23e6556dec400999b72ce7d4d3718a80da7d"
},
"downloads": -1,
"filename": "spacecraft_paladin-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "5578bbc610e231fa07968532f8471739",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25840,
"upload_time": "2024-06-25T22:00:10",
"upload_time_iso_8601": "2024-06-25T22:00:10.428902Z",
"url": "https://files.pythonhosted.org/packages/24/92/a56225e0c10ea4e10c39e345cab633af96c1c018e3af8407bdbf46c602c3/spacecraft_paladin-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-25 22:00:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Yuricst",
"github_project": "paladin",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "spacecraft-paladin"
}