PY: Added PlanetOrbitalPeriod function.

This commit is contained in:
Don Cross
2022-11-01 17:30:48 -04:00
parent fd49c25ae3
commit 23fd95a53f
5 changed files with 66 additions and 13 deletions

View File

@@ -2345,6 +2345,20 @@ A pivoted matrix object.
---
<a name="PlanetOrbitalPeriod"></a>
### PlanetOrbitalPeriod(body)
**Returns the average number of days it takes for a planet to orbit the Sun.**
| Type | Parameter | Description |
| --- | --- | --- |
| [`Body`](#Body) | `body` | One of the planets: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, or Pluto. |
**Returns**: `float`
The mean orbital period of the body in days.
---
<a name="RefractionAngle"></a>
### RefractionAngle(refraction, altitude)

View File

@@ -420,6 +420,23 @@ class NoConvergeError(Error):
def __init__(self):
Error.__init__(self, 'Numeric solver did not converge - please report issue at https://github.com/cosinekitty/astronomy/issues')
def PlanetOrbitalPeriod(body):
"""Returns the average number of days it takes for a planet to orbit the Sun.
Parameters
----------
body : Body
One of the planets: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, or Pluto.
Returns
-------
float
The mean orbital period of the body in days.
"""
if isinstance(body, Body) and (0 <= body.value < len(_PlanetOrbitalPeriod)):
return _PlanetOrbitalPeriod[body.value]
raise InvalidBodyError()
def _SynodicPeriod(body):
if body == Body.Earth:
raise EarthNotAllowedError()