mirror of
https://github.com/cosinekitty/astronomy.git
synced 2026-05-19 14:27:52 -04:00
PY: Added PlanetOrbitalPeriod function.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -1265,24 +1265,12 @@ def Refraction():
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
PlanetOrbitalPeriod = {
|
||||
astronomy.Body.Mercury: 87.969,
|
||||
astronomy.Body.Venus: 224.701,
|
||||
astronomy.Body.Earth: 365.256,
|
||||
astronomy.Body.Mars: 686.980,
|
||||
astronomy.Body.Jupiter: 4332.589,
|
||||
astronomy.Body.Saturn: 10759.22,
|
||||
astronomy.Body.Uranus: 30685.4,
|
||||
astronomy.Body.Neptune: 60189.0,
|
||||
astronomy.Body.Pluto: 90560.0
|
||||
}
|
||||
|
||||
def PlanetApsis():
|
||||
start_time = astronomy.Time.Make(1700, 1, 1, 0, 0, 0)
|
||||
body = astronomy.Body.Mercury
|
||||
while body.value <= astronomy.Body.Pluto.value:
|
||||
count = 1
|
||||
period = PlanetOrbitalPeriod[body]
|
||||
period = astronomy.PlanetOrbitalPeriod(body)
|
||||
filename = os.path.join('apsides', 'apsis_{}.txt'.format(body.value))
|
||||
min_interval = -1.0
|
||||
max_diff_days = 0.0
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user