<p>I suspect that the problem is in your assumption that changes in <span class="math-container">$\Delta \epsilon$</span> or <span class="math-container">$\Delta \psi$</span> lead to coordinate changes of the same size. In fact, the position of the equator and celestial pole are complex functions of those angles, notably with both positive and negative terms.  If you look at Equations (8) and (9) (for the coordinates <span class="math-container">$X$</span> and <span class="math-container">$Y$</span> of the pole) in the 2008 A&amp;A paper you linked to, you can see this dependence.  For example, in the <span class="math-container">$X$</span> equation, there is a <span class="math-container">$\Delta \psi \sin \epsilon_0$</span> term, but later there is also a <span class="math-container">$- (\psi^2_A / 2) \Delta \psi \sin \epsilon_0)$</span> term that could at least partially cancel it for a given value of <span class="math-container">$\Delta \psi$</span>.  There are also cross terms between <span class="math-container">$\Delta \psi$</span> and <span class="math-container">$\Delta \epsilon$</span>. </p>

<p>While those equations are only for an approximation to IAU 2000B, looking at <a href="https://www.aanda.org/articles/aa/abs/2006/17/aa4550-05/aa4550-05.html" rel="nofollow noreferrer">Capitaine &amp; Wallace 2006</a> for the exact equation (Eq. 36) shows the same behavior, i.e. that there are both positive and negative terms, as well as cross terms, involving those quantities. </p>

<p>So to do a comparison of accuracy, I think you would need to calculate the <span class="math-container">$X, Y$</span> coordinates of the pole and the position <span class="math-container">$s$</span> of the origin with both models, and compare those. </p>

CC BY-SA 4.0
2020-06-07T17:45:49.470Z
2020-06-07T17:45:49.470Z
Eric Jensen
<p>I am attempting to plot how the IAU 2000A nutation model degrades as its terms are omitted. As a spot-check, I decided to compare it to IAU 2000B, which includes only the 77 most important lunisolar terms. It is widely claimed that IAU 2000B only sacrifices 1 mas of accuracy. For example, in this PDF presentation from SOFA:</p>

<blockquote>
  <p>The IAU 2000B nutation series is almost as accurate (1 mas) as the full
  IAU 2000A series</p>
</blockquote>

<p><a href="http://www.iausofa.org/publications/aas04.pdf" rel="nofollow noreferrer">http://www.iausofa.org/publications/aas04.pdf</a></p>

<p>And in this published paper:</p>

<blockquote>
  <p>IAU 2000B is more than an order of magnitude smaller than IAU 2000A but achieves 1 mas accuracy throughout 1995-2050.</p>
</blockquote>

<p><a href="https://www.aanda.org/articles/aa/full/2008/04/aa8811-07/aa8811-07.right.html" rel="nofollow noreferrer">https://www.aanda.org/articles/aa/full/2008/04/aa8811-07/aa8811-07.right.html</a></p>

<p>But I have not yet succeeded in comparing them in such a way as to produce a difference that small. When I compare the angles they return each day over the two decades 2000–2020, I see a difference in the first angle — delta psi — of >2 mas. Using the USNO NOVAS implementation of the two series, because it was easier to install (<code>pip install novas</code>) than pysofa, I get:</p>

<pre><code>from math import tau
from novas.compat.nutation import iau2000a, iau2000b
T0 = 2451545.0  # Year 2000.0

dpsi_differences = []
deps_differences = []

for day in range(0, 366 * 20):  # Years 2000.0 through ~2020
    dpsi_a, deps_a = iau2000a(T0, day)
    dpsi_b, deps_b = iau2000b(T0, day)
    dpsi_differences.append(abs(dpsi_a - dpsi_b))
    deps_differences.append(abs(deps_a - deps_b))

def report_difference(name, differences):
    radians = max(differences)
    days = differences.index(radians)
    degrees = radians / tau * 360.0
    arcminutes = degrees * 60.0
    arcseconds = arcminutes * 60.0
    mas = arcseconds * 1000.0
    print('Maximum difference for {}: {:.4f} mas at T0 + {} days'
          .format(name, mas, days))

report_difference('delta psi', dpsi_differences)
report_difference('delta epsilon', deps_differences)
</code></pre>

<p>Result:</p>

<pre><code>Maximum difference for delta psi: 2.1867 mas at T0 + 1396 days
Maximum difference for delta epsilon: 0.8631 mas at T0 + 7017 days
</code></pre>

<p>Am I misinterpreting the output of the NOVAS routines? Or, alternately, am I misunderstanding the meaning of the two angles? I understand the angles as being a pair of rotations which each, in the worse case — that of a point on the great circle of the rotation — will move a coordinate through the same angle as the rotation itself. So I understand a 2.1867 mas difference in Δpsi, for example, as changing sky coordinates by a maximum of that same 2.1867 mas when the nutation matrix is used to translate coordinates into or out of the equinox-of-date.</p>

<p>My next step would be trying to get the sofa library installed locally and then running a similar routine against it in case the NOVAS implementation is simply broken, but before trying to install a library by hand, I wanted to double check in case my understanding of the angles was itself faulty.</p>

<p>Thanks for any snags that can be identified in my reasoning!</p>

CC BY-SA 4.0
2020-06-17T00:30:43.960Z
Any thoughts on [this answer](https://astronomy.stackexchange.com/a/36469/7982)?  I've added a bounty but I'm not familliar with the topic enough to judge how well it answers your question.
uhoh
CC BY-SA 4.0
2020-06-18T01:03:15.123Z
My first attempt to compare the two models for a set of representative points all around the sky suggested a 7 mas maximum difference between them, so I suspect the script is faulty. So I have not yet verified its claim that an angle of rotation can yield less than its own angle of effect on actual coordinates.
Brandon Rhodes
<coordinate><fundamental-astronomy><python><standards>
How can the IAU 2000A vs IAU 2000B nutation comparison be reproduced?
Brandon Rhodes
# How can the IAU 2000A vs IAU 2000B nutation comparison be reproduced?

(Asked by: username_0 on 2020-06-06)

I am attempting to plot how the IAU 2000A nutation model degrades as its terms are omitted. As a spot-check, I decided to compare it to IAU 2000B, which includes only the 77 most important lunisolar terms. It is widely claimed that IAU 2000B only sacrifices 1 mas of accuracy. For example, in this PDF presentation from SOFA:

> The IAU 2000B nutation series is almost as accurate (1 mas) as the full
> IAU 2000A series

<http://www.iausofa.org/publications/aas04.pdf>

And in this published paper:

> IAU 2000B is more than an order of magnitude smaller than IAU 2000A but achieves 1 mas accuracy throughout 1995-2050.

<https://www.aanda.org/articles/aa/full/2008/04/aa8811-07/aa8811-07.right.html>

But I have not yet succeeded in comparing them in such a way as to produce a difference that small. When I compare the angles they return each day over the two decades 2000–2020, I see a difference in the first angle — delta psi — of >2 mas. Using the USNO NOVAS implementation of the two series, because it was easier to install (`pip install novas`) than pysofa, I get:

```
from math import tau
from novas.compat.nutation import iau2000a, iau2000b
T0 = 2451545.0  # Year 2000.0

dpsi_differences = []
deps_differences = []

for day in range(0, 366 * 20):  # Years 2000.0 through ~2020
    dpsi_a, deps_a = iau2000a(T0, day)
    dpsi_b, deps_b = iau2000b(T0, day)
    dpsi_differences.append(abs(dpsi_a - dpsi_b))
    deps_differences.append(abs(deps_a - deps_b))

def report_difference(name, differences):
    radians = max(differences)
    days = differences.index(radians)
    degrees = radians / tau * 360.0
    arcminutes = degrees * 60.0
    arcseconds = arcminutes * 60.0
    mas = arcseconds * 1000.0
    print('Maximum difference for {}: {:.4f} mas at T0 + {} days'
          .format(name, mas, days))

report_difference('delta psi', dpsi_differences)
report_difference('delta epsilon', deps_differences)

```

Result:

```
Maximum difference for delta psi: 2.1867 mas at T0 + 1396 days
Maximum difference for delta epsilon: 0.8631 mas at T0 + 7017 days

```

Am I misinterpreting the output of the NOVAS routines? Or, alternately, am I misunderstanding the meaning of the two angles? I understand the angles as being a pair of rotations which each, in the worse case — that of a point on the great circle of the rotation — will move a coordinate through the same angle as the rotation itself. So I understand a 2.1867 mas difference in Δpsi, for example, as changing sky coordinates by a maximum of that same 2.1867 mas when the nutation matrix is used to translate coordinates into or out of the equinox-of-date.

My next step would be trying to get the sofa library installed locally and then running a similar routine against it in case the NOVAS implementation is simply broken, but before trying to install a library by hand, I wanted to double check in case my understanding of the angles was itself faulty.

Thanks for any snags that can be identified in my reasoning!

**Tags:** coordinate, fundamental-astronomy, python, standards

> **Comments:**
> **username_1**: Any thoughts on [this answer](https://astronomy.stackexchange.com/a/36469/7982)?  I've added a bounty but I'm not familliar with the topic enough to judge how well it answers your question.  
> **username_0**: My first attempt to compare the two models for a set of representative points all around the sky suggested a 7 mas maximum difference between them, so I suspect the script is faulty. So I have not yet verified its claim that an angle of rotation can yield less than its own angle of effect on actual coordinates.  

---

## 1 answers

### Answer by username_2 on 2020-06-07. Score: 2

I suspect that the problem is in your assumption that changes in $\Delta \epsilon$ or $\Delta \psi$ lead to coordinate changes of the same size. In fact, the position of the equator and celestial pole are complex functions of those angles, notably with both positive and negative terms. If you look at Equations (8) and (9) (for the coordinates $X$ and $Y$ of the pole) in the 2008 A&A paper you linked to, you can see this dependence. For example, in the $X$ equation, there is a $\Delta \psi \sin \epsilon\_0$ term, but later there is also a $- (\psi^2\_A / 2) \Delta \psi \sin \epsilon\_0)$ term that could at least partially cancel it for a given value of $\Delta \psi$. There are also cross terms between $\Delta \psi$ and $\Delta \epsilon$.

While those equations are only for an approximation to IAU 2000B, looking at [Capitaine & Wallace 2006](https://www.aanda.org/articles/aa/abs/2006/17/aa4550-05/aa4550-05.html) for the exact equation (Eq. 36) shows the same behavior, i.e. that there are both positive and negative terms, as well as cross terms, involving those quantities.

So to do a comparison of accuracy, I think you would need to calculate the $X, Y$ coordinates of the pole and the position $s$ of the origin with both models, and compare those.


---

