Separate `poliastro.core` from the rest
See original GitHub issueIn today’s community call, @jorgepiloto and I discussed the possibility to separate poliastro.core from the rest. This is somewhat related to #168, but uses a different method: by recognizing that poliastro.core is interesting and useful on its own, we split it off as a separate project, and make poliastro depend on it.
Luckily, poliastro.core only depends on NumPy and numba:
$ grep import src/poliastro/core/ -rh --exclude=*.pyc | grep -v '>' | sort | uniq
from ..angles import (
from .angles import E_to_nu, F_to_nu
from astropy import units as u
from ..elements import coe2rv, rv2coe
from .farnocchia import farnocchia, farnocchia_coe
from math import gamma
from numba import njit as jit
from numba import njit as jit, prange
from numpy import cos, cross, sin, sqrt
from numpy import cos, sin
from numpy import cross
from numpy import cross, pi
from numpy.linalg import norm
from poliastro.core.elements import coe_rotation_matrix, rv2coe, rv_pqw
from poliastro.core.hyper import hyp2f1b
from poliastro.core.stumpff import c2, c3
from poliastro.core.util import circular_velocity
from ..stumpff import c2, c3
from .util import rotation_matrix
import numpy as np
Advantages:
- Easier to contribute “raw algorithms” (see also our recent efforts in #1189)
- Users that just want the core functionality can just use the new project
- Users that prefer alternatives to
astropy.unitscan bring their own (for example https://pypi.org/project/Pint/ and possibly others)
All of this is possible by installing poliastro and just ignoring the safe API, but the disadvantage is that it requires a lot of heavy dependencies (SciPy, Astropy, Plotly, matplotlib, others).
Disadvantages:
- More overhead
- We need coordination between the two projects
Thoughts?
Issue Analytics
- State:
- Created 2 years ago
- Comments:10 (10 by maintainers)
Top Results From Across the Web
What's new — poliastro 0.17.0 documentation
Now poliastro.core.util.alinspace() accepts angle differences beyond $2\pi$ ... Issue #824: Properly plot orbits in different planes.
Read more >poliastro.core.events
Calculates the line of sight condition between two position vectors, r1 and r2. elevation_function (k, u_, phi, theta, R, R_p, H).
Read more >Related software — poliastro 0.17.0 documentation
A truly inspiring project. Skyfield: Another Astronomy Python package focused on computing observations of planetary bodies and Earth satellites written by ...
Read more >API reference — poliastro 0.17.0 documentation
Among the different sub-packages and modules, we might differentiate two big categories: core utilities and high-level ones.
Read more >poliastro Documentation
orbital: Yet another orbital mechanics Python library written by Frazer McLean. ... The core of poliastro are the Orbit objects inside the ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Just some homework and an overview of all the places where
poliastrocurrently, as of d85c9bd1e2e8c19765d34e6ee3d672cb51da22cc, talks to its core.https://github.com/pleiszenburg/bulk_propagate/blob/3d132ace90cdb28252620fc2b5eee5cfed42cb20/core_interface_01.ipynb
We’re not doing this before 1.0.