Skip to main content

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


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)

Uploaded Source

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

Hashes for fast_kepler-0.5.1.tar.gz
Algorithm Hash digest
SHA256 8462086925b65413472d8fa9784c36a5fc04dabe2d9ff6aa39a575beccf51499
MD5 d14cb3361dc9cbcbdf91676dc6c433d7
BLAKE2b-256 8de795627ea58987f9e4522562e28e5e038507b14999ebbeaed7bf55ab643961

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page