kepler equation solver in c for python
Project description
fast_kepler
A c implementation for solving kepler's equation in c. Made for astroemperor, put in a different library for public use.
Dependencies
This code makes use of:
- numpy
- cython
Installation
In the console type in your work folder
pip install fast_kepler
Usage
Solution to Kepler's equation. Given mean anomaly, M, and eccentricity, e, solve for E, the eccentric anomaly, which must satisfy:
$$E - e sin(E) - M = 0$$
For a given eccentricity, and an M array, we use:
import fast_kepler
M = np.sort(np.random.uniform(0, 100, size=100))
ecc = 0.11
E = fast_kepler.kepler_array(M, ecc)
More on usage
We can calculate RVs:
# time array of our observations
x = np.sort(np.random.uniform(0, 100, size=100))
# keplerian parameters
period = 4.1 # in days
semi_amplitude = 55 # in m/s
M0 = np.pi/3 # in rad
ecc = 0.23 # from 0 to 1
om = 3*np.pi/5 # in rad
theta = [period, semi_amplitude, M0, ecc, om]
def calc_RV(theta):
per, K, M0, ecc, om = theta
freq = 2. * np.pi / per
M = freq * x + M0
E = fast_kepler.kepler_array(M, ecc)
f = np.arctan(((1. + ecc)/(1. - ecc)) ** 0.5 * np.tan(E / 2.)) * 2.
return K * (np.cos(f + om) + ecc * np.cos(om))
# or simply:
def get_RV(theta):
per, K, M0, ecc, om = theta
return fast_kepler.calc_rv0(x, per, K, M0, ecc, om)
Additional Options
You can also use a different parameterization to retrieve RVs, with time of periastron passage $T_p$ instead of the mean anomaly $M_0$:
fast_kepler.calc_rv1(x, per, A, tp, ecc, w)
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
fast_kepler-0.5.1.tar.gz
(154.7 kB
view details)
File details
Details for the file fast_kepler-0.5.1.tar.gz
.
File metadata
- Download URL: fast_kepler-0.5.1.tar.gz
- Upload date:
- Size: 154.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8462086925b65413472d8fa9784c36a5fc04dabe2d9ff6aa39a575beccf51499 |
|
MD5 | d14cb3361dc9cbcbdf91676dc6c433d7 |
|
BLAKE2b-256 | 8de795627ea58987f9e4522562e28e5e038507b14999ebbeaed7bf55ab643961 |