Calculate Date of Spring Equinox, possibly using JPL's Horizons website?

I'm familiar with orbit ephemerides and the ways to use those to plot orbits and positions. However, in all the charts I find, I can't seem to find a way to determine when an equinox on another planet occurs.

Take for an example the data one can generate from JPL HORIZONS. I can get the ephemerides and osculating for Earth and Mars. The spring equinox on Earth is easy, it's defined as the X axis. But within HORIZONS, I can't seem to find anywhere that determines the "local X axis" for Mars, to determine the first day of spring.

Now, I can easily Google "Mars seasons" to determine the answer, but if I wanted to extend this exercise for arbitrary planets, where's that data stored? What's that "offset" (angle between reference X and local X) commonly called?

• To get the equinox you need the planet's equator which means you need the orientation of its pole. The orientation of the planets are in Horizons somewhere because you can specify a geographic position on another planet and view another body from it and calculate altitude/azimuth etc. But I'm not sure how to get things out of there in such a form that you would get the JD of the planet's equinox. I have a hunch someone will be able to answer this though. Great first question! +1 – uhoh Mar 28 '19 at 23:21

I also don't know how to get an inertial frame defined on any solar system planet.

Nevertheless, the seasons can also be computed using only the pole vector, which is available in the body-fixed coordinate system available in JPL SPICE ephemerides.

To do that, one needs to compute the angle between the North pole vector (+Z in body-fixed system) and the Sun vector also expressed in the planet's body-fixed system. The seasons are then defined as the following:

• Angle = 90° and decreasing: spring equinox
• Angle = 90° and increasing: autumn equinox
• Angle at its maximum value between two equinoxes: winter solstice
• Angle at its minimum value between two equinoxes: summer solstice

I made a small script using the Orekit Python wrapper which can compute the seasons on any solar system planet within a date range: https://github.com/GorgiAstro/planetary-timemachine/blob/712fe31799faae65b319b2d7ff66685e26ced0f8/seasons-calculation.ipynb The JPL ephemerides set up in this repository allow to compute the seasons from 1957 to 2057.

The script was validated against the Earth seasons, and against the Mars' Calendar from the Planetary Society.

Here is a part of the script output for Mars in the [2020, 2024] range (the angle between North pole and Sun vector is also given):

The spring equinoxes are:

pole_sun_angle_deg
datetime_utc
2021-02-07  90.097319
2022-12-26  90.089456
2024-11-12  90.084573