Skip to content

Commit 9e55aaf

Browse files
committed
Issue #39: Wrong Earth rotation measure in tod_to_itrs() (changelog update)
1 parent b206f6e commit 9e55aaf

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

CHANGELOG.md

+11
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,23 @@ available on the `main` branch.
1414

1515
### Fixed
1616

17+
- `tod_to_itrs()` used wrong Earth rotation measure (`NOVAS_ERA` instead of `NOVAS_GST`).
18+
1719
- `gcrs_to_j2000` transformed in the wrong direction.
1820

1921
- `gcrs_to_cirs()` did not handle well if input and output vectors were the same.
2022

2123
- `tt2tdb()` Had a wrong scaling in sinusoidal period, resulting in an error of up to +/- 1.7 ms.
2224

25+
- Fix portability to non-Intel x86 platforms (see Issue #29). Previously, SuperNOVAS used `char` for storing integer
26+
coefficients, assuming `char` was a signed. However, on some platforms like ARM and PowerPC `char` is unsigned,
27+
which broke many calculations badly for such platforms. As of now, we use the explicit platform-independent
28+
`int8_t` storage type for these coefficients.
29+
30+
- Division by zero bug in `d_light()` (since NOVAS C 3.1) if the first position argument is the ephemeris reference
31+
position (e.g. the Sun for `solsys3.c`). The bug affects for example `grav_def()`, where it effectively results in
32+
the gravitational deflection due to the Sun being skipped. See Issue #28.
33+
2334
- Radial velocity calculation to precede aberration and gravitational bending in `place()`, since the radial velocity
2435
that is observed is in the geometric direction towards the source (unaffected by aberration). A proper accounting
2536
for the gravitational bending around some intermediate mass would require calculating the direction of light that

src/novas.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3021,7 +3021,7 @@ int cirs_to_itrs(double jd_tt_high, double jd_tt_low, double ut1_to_tt, enum nov
30213021
*/
30223022
int tod_to_itrs(double jd_tt_high, double jd_tt_low, double ut1_to_tt, enum novas_accuracy accuracy, double xp,
30233023
double yp, const double *in, double *out) {
3024-
prop_error("tod_to_itrs", cel2ter(jd_tt_high, jd_tt_low - ut1_to_tt / DAY, ut1_to_tt, EROT_ERA, accuracy, NOVAS_DYNAMICAL_CLASS, xp, yp, in,
3024+
prop_error("tod_to_itrs", cel2ter(jd_tt_high, jd_tt_low - ut1_to_tt / DAY, ut1_to_tt, EROT_GST, accuracy, NOVAS_DYNAMICAL_CLASS, xp, yp, in,
30253025
out), 0);
30263026
return 0;
30273027
}

0 commit comments

Comments
 (0)