exoplanet-dev / exoplanet-dev/exoplanet

possible inconsistency in orbital elements

Open
#212 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
239
Forks
57
PR merge metrics
No merged PRs in 30d

Description

This a fantastic package! Playing around with it, I noticed the orientation of an eccentric orbit is not what I would expect based on the definition of the orbital elements in the documentation. An example:

```
import exoplanet as xo
import numpy as np
from matplotlib import pyplot as plt
plt.ion()

# make an edge-on highly eccentric orbit with
# 45 deg argument of periapsis
# orbital plane is the X-Z plane
orbit = xo.orbits.KeplerianOrbit(
period=200,
t_0=0.0,
incl=np.pi/2,
ecc=0.8,
omega=np.pi/4,
Omega=0.0,
m_planet=0.0,
m_star=1.0,
r_star=1.0,
)

t = np.linspace(0, 200, 200, endpoint=False)
x, y, z = orbit.get_planet_position(t)

plt.figure()
plt.scatter(x.eval(), z.eval(), c=t)
plt.xlabel('X')
plt.ylabel('Z (+Z is to observer)')
ax = plt.gca()
ax.set_aspect(1)
plt.grid()
```

Yielding this figure

Screen Shot 2021-06-22 at 11 07 03 AM

The docs state that the ascending node is defined to be the point at which the planet passes through the XY plane moving away from the observer, who is looking from the +Z axis. The colors on the plot progress from purple to yellow as time progresses, so the ascending node appears to be at X = 120ish. The argument of periastron is defined as the angle from the ascending note to the periastron in the orbital plane. From the figure it appears has been referenced against the -X axis, opposite the ascending node.

Is this an inconsistency or have I misinterpreted something?

Contributor guide

Open the contributing guide

Research direction

Start with the orbital-elements documentation and the KeplerianOrbit example using get_planet_position, then reproduce the supplied plot to compare the documented ascending-node and periastron conventions with the observed orientation. Done means determining whether the implementation or documentation is inconsistent and recording the resolved convention.

Written by the indexing model from the issue text.

Assessment

Tech stack
matplotlib, numpy, python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.