<p><strong>Edit:</strong></p>
<p>Getting the exact value winds up being simple, but it was only later in the day that the answer occurred to me. All we need to do is ask for the altitude and azimuth of the Ecliptic’s south pole! The ecliptic itself will be highest above our horizon in exactly that direction, at an altitude that is exactly 90° above its pole.</p>
<p>Thus the answer is given by the coordinates of a single vector:</p>
<pre><code>from skyfield import api, framelib
from skyfield.positionlib import Apparent

ts = api.load.timescale()
t = ts.utc(2021, 2, 16, 22, 52)
bluffton = api.Topos('40.74 N', '84.11 W')

f = framelib.ecliptic_frame
r = api.Distance([0, 0, -1])
v = api.Velocity([0, 0, 0])

p = Apparent.from_time_and_frame_vectors(t, f, r, v)
p.center = bluffton

alt, az, distance = p.altaz()

print('Altitude of highest point on ecliptic:', alt.degrees + 90.0)
print('Azimuth of highest point on ecliptic:', az.degrees)
</code></pre>
<p>The answer:</p>
<pre><code>Altitude of highest point on ecliptic: 67.54977465183501
Azimuth of highest point on ecliptic: 162.61593086793783
</code></pre>
<p>— is far more exact, and faster to compute, than my first try. Enjoy!</p>
<p><strong>Original answer:</strong></p>
<p>While it’s likely that someone will soon jump in with a closed-form solution that uses spherical trigonometry — in which case it’s likely that Skyfield or PyEphem will only be used to determine the Earth orientation — here’s a quick way to get an answer within about a degree:</p>
<ol>
<li>Generate the ecliptic as 360 points one degree apart across the sky.</li>
<li>Compute the altitude and azimuth of each one.</li>
<li>Choose the highest.</li>
</ol>
<p>The result agrees closely to what I see if I open Stellarium, turn on the ecliptic, and choose a field star right near the point where the ecliptic reaches the highest point in the sky.</p>
<pre><code>import numpy as np
from skyfield import api, framelib
from skyfield.positionlib import Apparent

 = api.tau
ts = api.load.timescale()
eph = api.load('de421.bsp')
bluffton = api.Topos('40.74 N', '84.11 W')

t = ts.utc(2021, 2, 16, 22, 52)

angle = np.arange(360) / 360.0 * 
zero = angle * 0.0

f = framelib.ecliptic_frame
d = api.Distance([np.sin(angle), np.cos(angle), zero])
v = api.Velocity([zero, zero, zero])

p = Apparent.from_time_and_frame_vectors(t, f, d, v)
p.center = bluffton

alt, az, distance = p.altaz()

i = np.argmax(alt.degrees)  # Which of the 360 points has highest altitude?
print('Altitude of highest point on ecliptic:', alt.degrees[i])
print('Azimuth of highest point on ecliptic:', az.degrees[i])
</code></pre>
<p>The result:</p>
<pre><code>Altitude of highest point on ecliptic: 67.5477569215633
Azimuth of highest point on ecliptic: 163.42529398930515
</code></pre>
<p>This is probably a computationally expensive enough approach that it won’t interest you once you or someone else does the spherical trigonometry to find an equation for the azimuth; but at the very least this might provide numbers to check possible formulae against.</p>

CC BY-SA 4.0
2021-02-18T01:50:10.613Z
I would give you 2 votes if I could. Well done!
JohnHoltz
CC BY-SA 4.0
2021-02-17T01:51:31.773Z
2021-02-18T00:08:47.877Z
2021-02-18T00:08:47.877Z
Brandon Rhodes
<p>I would like to use <a href="https://rhodesmill.org/pyephem/" rel="nofollow noreferrer">pyephem</a> or <a href="https://rhodesmill.org/skyfield/" rel="nofollow noreferrer">skyfield</a><sup>1</sup> to find the degree of the local horizon (starting from South = 0°) at which is located the highest point of the ecliptic.</p>
<p>Note that I am not trying to find the culmination of a planet. It could well be that, when looking South, there is no planet on the ecliptic by that time/latitude, but there will still be a highest point of the ecliptic. Can anyone help?</p>
<p><sup>1</sup>Skyfield is preferred over PyEphem for new projects for several reasons</p>

CC BY-SA 4.0
2021-02-17T01:31:40.700Z
I use Skyfield a lot, but only starting from ephemeris positions of objects. I think you can somehow use https://rhodesmill.org/skyfield/searches.html but I don't know how exactly. I'm a little confused though, doesn't the highest point of anything end up being exactly South at some point during a 24 hour cycle, or do you mean highest at a specified time?
uhoh
CC BY-SA 4.0
2021-02-17T13:16:52.093Z
"doesn't the highest point of anything end up being exactly South at some point during a 24 hour cycle" -- the culmination of a planet is indeed always when it crosses the meridian, i.e. South, but this culmination of a specific planet is not necessarily the highest point of the ecliptic. It can happen but, most of the time it does not. You can quickly see that with Stellarium.
Cirédérf Eniomel
CC BY-SA 4.0
2021-02-18T00:09:44.233Z
I edited my answer, after realizing several hours later that the answer is far simpler than I had imaged. No hand-written spherical trigonometry necessary, only a bit more imagination than I used the first time!
Brandon Rhodes
<ecliptic><skyfield>
How to find the local azimuth of the highest point of the ecliptic
Cirédérf Eniomel
# How to find the local azimuth of the highest point of the ecliptic

(Asked by: username_0 on 2021-02-16)

I would like to use [pyephem](https://rhodesmill.org/pyephem/) or [skyfield](https://rhodesmill.org/skyfield/)1 to find the degree of the local horizon (starting from South = 0°) at which is located the highest point of the ecliptic.

Note that I am not trying to find the culmination of a planet. It could well be that, when looking South, there is no planet on the ecliptic by that time/latitude, but there will still be a highest point of the ecliptic. Can anyone help?

1Skyfield is preferred over PyEphem for new projects for several reasons

**Tags:** ecliptic, skyfield

> **Comments:**
> **username_1**: I use Skyfield a lot, but only starting from ephemeris positions of objects. I think you can somehow use https://rhodesmill.org/skyfield/searches.html but I don't know how exactly. I'm a little confused though, doesn't the highest point of anything end up being exactly South at some point during a 24 hour cycle, or do you mean highest at a specified time?  
> **username_0**: "doesn't the highest point of anything end up being exactly South at some point during a 24 hour cycle" -- the culmination of a planet is indeed always when it crosses the meridian, i.e. South, but this culmination of a specific planet is not necessarily the highest point of the ecliptic. It can happen but, most of the time it does not. You can quickly see that with Stellarium.  
> **username_2**: I edited my answer, after realizing several hours later that the answer is far simpler than I had imaged. No hand-written spherical trigonometry necessary, only a bit more imagination than I used the first time!  

---

## 1 answers

### Answer by username_2 on 2021-02-17. Score: 8 | Accepted answer

**Edit:**

Getting the exact value winds up being simple, but it was only later in the day that the answer occurred to me. All we need to do is ask for the altitude and azimuth of the Ecliptic’s south pole! The ecliptic itself will be highest above our horizon in exactly that direction, at an altitude that is exactly 90° above its pole.

Thus the answer is given by the coordinates of a single vector:

```
from skyfield import api, framelib
from skyfield.positionlib import Apparent

ts = api.load.timescale()
t = ts.utc(2021, 2, 16, 22, 52)
bluffton = api.Topos('40.74 N', '84.11 W')

f = framelib.ecliptic_frame
r = api.Distance([0, 0, -1])
v = api.Velocity([0, 0, 0])

p = Apparent.from_time_and_frame_vectors(t, f, r, v)
p.center = bluffton

alt, az, distance = p.altaz()

print('Altitude of highest point on ecliptic:', alt.degrees + 90.0)
print('Azimuth of highest point on ecliptic:', az.degrees)

```

The answer:

```
Altitude of highest point on ecliptic: 67.54977465183501
Azimuth of highest point on ecliptic: 162.61593086793783

```

— is far more exact, and faster to compute, than my first try. Enjoy!

**Original answer:**

While it’s likely that someone will soon jump in with a closed-form solution that uses spherical trigonometry — in which case it’s likely that Skyfield or PyEphem will only be used to determine the Earth orientation — here’s a quick way to get an answer within about a degree:

1. Generate the ecliptic as 360 points one degree apart across the sky.
2. Compute the altitude and azimuth of each one.
3. Choose the highest.

The result agrees closely to what I see if I open Stellarium, turn on the ecliptic, and choose a field star right near the point where the ecliptic reaches the highest point in the sky.

```
import numpy as np
from skyfield import api, framelib
from skyfield.positionlib import Apparent

 = api.tau
ts = api.load.timescale()
eph = api.load('de421.bsp')
bluffton = api.Topos('40.74 N', '84.11 W')

t = ts.utc(2021, 2, 16, 22, 52)

angle = np.arange(360) / 360.0 * 
zero = angle * 0.0

f = framelib.ecliptic_frame
d = api.Distance([np.sin(angle), np.cos(angle), zero])
v = api.Velocity([zero, zero, zero])

p = Apparent.from_time_and_frame_vectors(t, f, d, v)
p.center = bluffton

alt, az, distance = p.altaz()

i = np.argmax(alt.degrees)  # Which of the 360 points has highest altitude?
print('Altitude of highest point on ecliptic:', alt.degrees[i])
print('Azimuth of highest point on ecliptic:', az.degrees[i])

```

The result:

```
Altitude of highest point on ecliptic: 67.5477569215633
Azimuth of highest point on ecliptic: 163.42529398930515

```

This is probably a computationally expensive enough approach that it won’t interest you once you or someone else does the spherical trigonometry to find an equation for the azimuth; but at the very least this might provide numbers to check possible formulae against.

> **Comments:**
> **username_3**: I would give you 2 votes if I could. Well done!  

---

